展开全部
List1.AddItem values(i, 0) 改为:
List1.AddItem values(0,i) 先列 后行
请读一下下面的资料
使用 GetRows 方法将从 rdoResultset 中的一个或多个整行复制到一个二维数组。数组的第一维标识列,第二维指示行数,如下所示:
avarRows(intColumn)(intRow)
为了得到第二行的第一列,使用如下方法:
col1 = avarRows(0,1)
为了得到第一行的第二列,使用如下方法:
col2 = avarRows(1,0)
如果需要的行比可用的行还大,就只返回可用行。使用 Ubound 确定实际可取得多少行,并根据返回的行数重新调整数组。例如,将结果返回到名为 varA 的 Variant 中,可以确定可实际返回多少行供使用:
numReturned = Ubound(varA,2) + 1
使用 "+ 1" 是因为返回的第一个数据是在数组的第 0 个元素中。可以取得的行数受限于可用的内存,应选用适合应用程序的行数-如果表很大,不要希望使用 GetRows 将整个表或结果集都放入数组。
................................
张志晨:下面是我的代码:
Private Sub Command1_Click()
Dim Conn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim mdbPath As String
mdbPath = getFilePathName(CommonDialog1, "mdb") '调用我写的对话框函数
If mdbPath = "" Then Exit Sub
Dim i As Integer
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
mdbPath & ";Persist Security Info=False"
Conn.CursorLocation = adUseClien '我加上了这行!!!
Rs.Open "select * from [user]", Conn, adOpenKeyset, adLockOptimistic '以上连接数据库,应该没什么问题
If Conn.State = adStateOpen Then
MsgBox "连接成功"
Else
MsgBox "连接失败"
End If
Set DataGrid1.DataSource = Rs
DataGrid1.Refresh
values = Rs.GetRows(, , "姓名") '取线路编号列的数据存入values数组中
For i = 0 To UBound(values, 2)
List1.AddItem values(0, i)
Next
'Rs.Close
'Conn.Close
End Sub
Function getFilePathName(dlgObj As Object, setFilter As String) As String
'添加 commondialog1
'On Error GoTo err
With dlgObj
.DialogTitle = "请指定文件夹"
.Filter = "文本文件(*." & setFilter & ")|*." & setFilter
.ShowOpen
getFilePathName = .FileName
End With
Exit Function
err:
MsgBox "您没有选择文件或者文件夹中没有" & setFilter & "文件"
End Function
............
List1.AddItem values(0,i) 先列 后行
请读一下下面的资料
使用 GetRows 方法将从 rdoResultset 中的一个或多个整行复制到一个二维数组。数组的第一维标识列,第二维指示行数,如下所示:
avarRows(intColumn)(intRow)
为了得到第二行的第一列,使用如下方法:
col1 = avarRows(0,1)
为了得到第一行的第二列,使用如下方法:
col2 = avarRows(1,0)
如果需要的行比可用的行还大,就只返回可用行。使用 Ubound 确定实际可取得多少行,并根据返回的行数重新调整数组。例如,将结果返回到名为 varA 的 Variant 中,可以确定可实际返回多少行供使用:
numReturned = Ubound(varA,2) + 1
使用 "+ 1" 是因为返回的第一个数据是在数组的第 0 个元素中。可以取得的行数受限于可用的内存,应选用适合应用程序的行数-如果表很大,不要希望使用 GetRows 将整个表或结果集都放入数组。
................................
张志晨:下面是我的代码:
Private Sub Command1_Click()
Dim Conn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim mdbPath As String
mdbPath = getFilePathName(CommonDialog1, "mdb") '调用我写的对话框函数
If mdbPath = "" Then Exit Sub
Dim i As Integer
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
mdbPath & ";Persist Security Info=False"
Conn.CursorLocation = adUseClien '我加上了这行!!!
Rs.Open "select * from [user]", Conn, adOpenKeyset, adLockOptimistic '以上连接数据库,应该没什么问题
If Conn.State = adStateOpen Then
MsgBox "连接成功"
Else
MsgBox "连接失败"
End If
Set DataGrid1.DataSource = Rs
DataGrid1.Refresh
values = Rs.GetRows(, , "姓名") '取线路编号列的数据存入values数组中
For i = 0 To UBound(values, 2)
List1.AddItem values(0, i)
Next
'Rs.Close
'Conn.Close
End Sub
Function getFilePathName(dlgObj As Object, setFilter As String) As String
'添加 commondialog1
'On Error GoTo err
With dlgObj
.DialogTitle = "请指定文件夹"
.Filter = "文本文件(*." & setFilter & ")|*." & setFilter
.ShowOpen
getFilePathName = .FileName
End With
Exit Function
err:
MsgBox "您没有选择文件或者文件夹中没有" & setFilter & "文件"
End Function
............
展开全部
使用 GetRows 方法将从 rdoResultset 中的一个或多个整行复制到一个二维数组。数组的第一维标识列,第二维指示行数,如下所示:
avarRows(intColumn)(intRow)
为了得到第二行的第一列,使用如下方法:
col1 = avarRows(0,1)为了得到第一行的第二列使用如下方法:col2 = avarRows(1,0)如果需要的行比可用的行还大,就只返回可用行使用 Ubound 确定实际可取得多少行,并根据返回的行数重新调整数组。例如,将结果返回到名为 varA 的 Variant 中,可以确定可实际返回多少行供使用:numReturned = Ubound(varA,2) + 1使用 "+ 1" 是因为返回的第一个数据是在数组的第 0 个元素中。可以取得的行数受限于可用的内存,应选用适合应用程序的行数-如果表很大不要希望使用 GetRows 将整个表或结果集都放入数组。
avarRows(intColumn)(intRow)
为了得到第二行的第一列,使用如下方法:
col1 = avarRows(0,1)为了得到第一行的第二列使用如下方法:col2 = avarRows(1,0)如果需要的行比可用的行还大,就只返回可用行使用 Ubound 确定实际可取得多少行,并根据返回的行数重新调整数组。例如,将结果返回到名为 varA 的 Variant 中,可以确定可实际返回多少行供使用:numReturned = Ubound(varA,2) + 1使用 "+ 1" 是因为返回的第一个数据是在数组的第 0 个元素中。可以取得的行数受限于可用的内存,应选用适合应用程序的行数-如果表很大不要希望使用 GetRows 将整个表或结果集都放入数组。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询