VB 如何读取DataGrid中指定的单元格的数据
VB6.0.将DataGrid1与ADODC绑定之后,DataGrid1显示了数据表中的内容,现在如何将DataGrid1中指定的行列数对应的单元格数据读出来,以及如何获...
VB6.0. 将DataGrid1与ADODC绑定之后,DataGrid1显示了数据表中的内容,现在如何将DataGrid1中指定的行列数对应的单元格数据读出来,以及如何获取该DataGrid1表中的最大行数和列数。
自己琢磨出来了一种方法:
1.读取字段名
For i = 0 To 100
On Error GoTo Endfor
Combo1.AddItem Adodc1.Recordset.Fields(i).Name
Next i
2. 读取字段数及最大列数,第1步中所得的i值即为字段数即列数
3. 读取指定的单元格数据
Adodc1.Recordset.AbsolutePosition = n '将记录指针移到指定的行
text1.text= Adodc1.Recordset.Fields(m).Value '将第n行第m-1列对应的单元格数据读出来赋给文本框,这里的m不能大于第一步中的i值
4. 最大记录数=Adodc1.Recordset.RecordCount 展开
自己琢磨出来了一种方法:
1.读取字段名
For i = 0 To 100
On Error GoTo Endfor
Combo1.AddItem Adodc1.Recordset.Fields(i).Name
Next i
2. 读取字段数及最大列数,第1步中所得的i值即为字段数即列数
3. 读取指定的单元格数据
Adodc1.Recordset.AbsolutePosition = n '将记录指针移到指定的行
text1.text= Adodc1.Recordset.Fields(m).Value '将第n行第m-1列对应的单元格数据读出来赋给文本框,这里的m不能大于第一步中的i值
4. 最大记录数=Adodc1.Recordset.RecordCount 展开
1个回答
展开全部
给你一个例子
Dim Conn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Rs.Open "SELECT * FROM 报警记录 where " & Te.Tag & "='" & Text1.Text & "'", Conn
If Rs.RecordCount = 0 Then
MsgBox vbCrLf & "“" & Rs.Fields(0) & "”查找失败!", vbInformation, " 提 示"
Rs.Close
Rs.Open "select * from 报警记录", Conn, adOpenStatic, adLockOptimistic
End If
Set DataGrid1.DataSource = Rs
For Each Col In DataGrid1.Columns '修改列表
If Col.DataField = "序号" Or Col.DataField = "备注" Then Col.Visible = False '隐藏不想显示的字段
Next Col
DataGrid1.Columns(11).Caption = "电压"‘替换显示将数据库里的字段
if Rs.Fields(4)="10" then msgbox "数值过低!"'第5(从0开始)个单元格数值
For I = 0 To 14
DataGrid1.Columns(I).Caption = Space(((DataGrid1.Columns(I).Width - Len(DataGrid1.Columns(I).Caption) * 150) \ 2) \ 150) & DataGrid1.Columns(I).Caption '标题居中
DataGrid1.Columns(I).Alignment = dbgCenter
Next
DataGrid1.Refresh
Me.Caption = "工作记录[信息总数:" & Rs.RecordCount & "]"’最大行数
Dim Conn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Rs.Open "SELECT * FROM 报警记录 where " & Te.Tag & "='" & Text1.Text & "'", Conn
If Rs.RecordCount = 0 Then
MsgBox vbCrLf & "“" & Rs.Fields(0) & "”查找失败!", vbInformation, " 提 示"
Rs.Close
Rs.Open "select * from 报警记录", Conn, adOpenStatic, adLockOptimistic
End If
Set DataGrid1.DataSource = Rs
For Each Col In DataGrid1.Columns '修改列表
If Col.DataField = "序号" Or Col.DataField = "备注" Then Col.Visible = False '隐藏不想显示的字段
Next Col
DataGrid1.Columns(11).Caption = "电压"‘替换显示将数据库里的字段
if Rs.Fields(4)="10" then msgbox "数值过低!"'第5(从0开始)个单元格数值
For I = 0 To 14
DataGrid1.Columns(I).Caption = Space(((DataGrid1.Columns(I).Width - Len(DataGrid1.Columns(I).Caption) * 150) \ 2) \ 150) & DataGrid1.Columns(I).Caption '标题居中
DataGrid1.Columns(I).Alignment = dbgCenter
Next
DataGrid1.Refresh
Me.Caption = "工作记录[信息总数:" & Rs.RecordCount & "]"’最大行数
追问
我将 Rs.Open "SELECT * FROM 报警记录 where " & Te.Tag & "='" & Text1.Text & "'", Conn
修改为 Rs.Open "SELECT * FROM c:\a.dbf",Conn
运行时报告出错了。
追答
呵呵 当然报错了 你那个"SELECT * FROM c:\a.dbf",是想加载文件吧 那需要在CONN里打开 这句我是把那段放在form_load里了 参看下面的
Conn.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DPath & DSource & ";Jet OLEDB:Database Password='dafengkui'"
Rs.CursorLocation = adUseClient
Rs.Open "select * from 报警记录", Conn, adOpenStatic, adLockOptimistic
Set DataGrid1.DataSource = Rs
DSource = "XFData.Mdb"
DPath = App.Path & IIf(Right$(S, 1) = "\", "", "\")
'DPath 是数据库路径 DSource 是数据库文件名称
'Password='dafengkui'"就是数据库密码=dafengkui
'"select * from 报警记录" 这是指数据连接到数据库里 名称为报警记录的表单
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询