VB 如何读取DataGrid中指定的单元格的数据

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个回答  推荐于2016-02-15
给你一个例子

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 报警记录" 这是指数据连接到数据库里 名称为报警记录的表单

本回答被提问者采纳

VB 如何读取DataGrid中指定的单元格的数据
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)...

VB中读取DataGrid控件指定单元格的数据
你要注明你的VB版本,VB6跟后面版本(.net)是不一样的。你的指定单元格是怎么指定的?行列号?对于绑定操作的DATAGRID,行号在大多数情况下是没有意义的,通常通过查找记录的方式将游标定位到你要的记录上,然后读取指定列的文本:str = DataGrid1.Columns(2).Text 如果是用户选择那条记录,那么可以...

vb中如何获取datagrid选中行的值?
DataGrid1.Columns("ProductID").CellText(DataGrid1.Bookmark)返回当前行中字段为‘ProductID’的值。在 DataGrid 被连接到一个数据库后,可能想要监视用户单击了哪一个单元。可以使用 RowColChange 事件——而不是 Click 事件。如;Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCo...

在VB6.0中如何获取DataGrid中一个单元格的行值和列值,使得该单元格等于...
假设你的鼠标或键盘的焦点在DG控件的一个单元格上 那么DataGrid.Col就可以返回这个单元格的列值 DataGrid.Row就可以返回这个单元格的行值

如何让vb中的datagrid显示数据库中某表中指定行的数据,而不是全部数...
您是说显示指定"字段"的数据么,如果是,那么在datagrid的属性中选择您要显示的列值即可

VB6.0 怎样取出DataGrid中单元格的内容,并把它赋值给变量a?
a = DataGrid1.Columns(Index).CellText(Bookmark)或者是:datagrid1.Row=ROW '选中某一行 datagrid1.col=COL '选中某一列 a=datagrid1.text

vb中如何统计 DataGrid中的行数,需要根据DataGrid的,而不是通过数据源...
Adodc + DataGrid + Text (暂为Adodc1、DataGrid1和Text1)Set DataGrid1.DataSource = Adodc1 Adodc1.Refresh Text1.Text =“记录数为:” Adodc1.Recordset.RecordCount '--用来显示记录数

vb.net中如何获得DataGridView单元格内容
当前单元格指的是 DataGridView 焦点所在的单元格,它可以通过 DataGridView 对象的 CurrentCell 属性取得。如果当前单元格不存在的时候,返回Nothing(C#是null)[VB.NET]' 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value)' 取得当前单元格的列 Index Console.WriteLine(DataGridView1....

VB.net中 datagridview控件如何读取框选区域内的行数和区域内的数据总和...
End If End If Next Label1.Text = "选中的单元格个数为: " & SelectedCellCount.ToString() Label2.Text = "单元格里数据之和为: " & SelectedCellTotal.ToString() Label3.Text = "选中的单元格行数为:" & DataGridView1....

在VB中如何复制datagrid里选中的一整行或列数据,然后可粘贴到excel或记 ...
Dim sql, biao As String conn.CursorLocation = adUseClient sql = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\\数据库名.mdb;Persist Security Info = False"conn.Open sql biao = "select * from 表名 where 字段名字='" & Combo1.Text & "'"Re.Open biao, ...

相似回答