第一个方法:
在VB中Recordset有个游标位置属性,你用过没有BookMark,他是只读的,Move函数就是找游标的,结合Move就是做你这个事情的。
Dim hang as Integer
If Not Adodc1.Recordset.EOF And hang>0
Adodc1.Recordset.Move hang-1
MsgBox Adodc1.Recordset.Fields("字段列名"), vbOkOnly, "指定行指定列的值"
End If
第二个办法是通过SQL语句,查询的时候直接解决了:
Dim hang as Integer
Adodc1.RecordSource="Select Top 1 * From 表 in (Select top " + Cstr(hang) + "from 字段名) Order By 字段名 DESC"
抽取所选行数,倒叙排列,取整理后的第一行数据。这样整个数据就只有一行了,你要取哪一列就哪一列,比起上面速度当然慢一点,每次都要查数据库。
VB.NET的ADO就修正了找游标的缺陷,这就是为什么大家有摈弃VB6.0去用VB.NET写更冗繁的ADO过程,ADO把Dateset类似小型数据库,他就象数组一样。
DataSet ds =New DataSet()
ds.Tables[0].Rows[行][列]
这样是不是更清晰
'Ctrl+t找Microsoft DataGrid Control....
'菜单"工程"->"引用" 找 Microsoft ActiveX Data Object....
Dim cn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim SqlStr As String
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Mode=ReadWrite"
SqlStr = "Select 列名 From 某个表"
rst.CursorLocation = adUseClient
rst.Open SqlStr, cn, adOpenDynamic, adLockOptimistic, adCmdText '打开记录集
Set DataGrid1.DataSource = rst '给DataGrid修改数据源