当前位置:编程学习 > VB >>

如何将指针指向查询的那条记录?

我在FORM1里拉了个Adodc控件和DataGrid控件,三个文本框。一个CommandButton

ADODC连接的数据库里有表“计算机”

表字段有计算机名称、IP地址、MAC地址,字段类型全是字符型!

下面是Button的代码!

Private Sub ViemS_Click()
Dim Txtsel As String
Txtsel = ComputerName.Text
On Error GoTo errorhandler        '如果出现主索引重复,则跳转到错误的地方!
If ComputerName.Text <> "" Then
Adodc1.RecordSource = "select * from 客户机 where 计算机名称 ='" & Txtsel & "'"
ComputerName.Text = Adodc1.Recordset.Fields("计算机名称")
ComputerIP.Text = Adodc1.Recordset.Fields("IP地址")
ComputerMAC.Text = Adodc1.Recordset.Fields("MAC地址")
Else
MsgBox "计算机名称不能为空!", , "查询错误"
End If
Exit Sub
errorhandler: MsgBox "主索引不能为空", , "出错"
End Sub



我查询到的是不我想要的信息,而是DataGrid指针指向的那条记录的信息!这是为什么呢,

--------------------编程问答-------------------- 没明白你的意思,但
Adodc1.RecordSource = "select * from 客户机 where 计算机名称 ='" & Txtsel & "'"
后面应加Adodc1.refresh吧 --------------------编程问答-------------------- 不用adodc控件,直接用ado.recoreset对象很容易做到。 --------------------编程问答--------------------
引用 2 楼 cqq_chen 的回复:
不用adodc控件,直接用ado.recoreset对象很容易做到。

对,这个很容易做

下面的几个函数是我经常用的,使用的是ADO对象
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
'函数功能:连接指定的数据库 
'参数说明:cnnP:数据库连接对象; 
'        :adoP:数据集存储对象; 
'        :strPath:数据库路径; 
'        :strPassword:数据库密码; 
'返回说明:True:连接成功  False:连接失败 
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
Public Function funConnectDataBase(cnnP As ADODB.Connection, adoP As ADODB.Recordset, ByVal strPath As _ 
    String, ByVal strPassword As String) As Boolean 
On Error GoTo errFunction 
    Set cnnP = New ADODB.Connection 
    Set adoP = New ADODB.Recordset 
    cnnP.Provider = "Microsoft.Jet.OLEDB.4.0" 
    cnnP.Open "Data Source = " & strPath & ";jet oledb:database password=" & strPassword 
    funConnectDataBase = True 
    Exit Function 
errFunction: 
    funConnectDataBase = False 
End Function 
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
'函数功能:关闭数据库连接对象和数据文件的关联 
'参数说明:cnnP:数据库连接对象; 
'        :adoP:数据库存储对象; 
'返回说明:True:关闭连接成功  False:关闭连接失败 
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
Public Function funCloseDataBase(cnnP As ADODB.Connection, adoP As ADODB.Recordset) As Boolean 
On Error GoTo errFunction 
    Set adoP = Nothing 
    Set cnnP = Nothing 
    funCloseDataBase = True 
    Exit Function 
errFunction: 
    funCloseDataBase = False 
End Function 
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
'过程功能:对指定的对象执行指定的SQL语句 
'参数说明:cnnP:ADO连接对象 
'        :adoP:ADO记录集对象 
'        :strSql:SQL语句 
'        :bolQueryRecord:是否是查询记录集 
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Public Sub subExcuteSQL(cnnP As ADODB.Connection, adoP As ADODB.Recordset, strSql As String, bolQueryRecord _ 
    As Boolean) 
    If bolQueryRecord Then  '如果是查询记录集 
        adoP.Open strSql, cnnP, adOpenStatic, adLockBatchOptimistic 
    Else 
        cnnP.Execute strSql 
    End If 
End Sub  --------------------编程问答-------------------- 首先,把输入和输出用同一个textbox不太好吧
其次,这个ADODC感觉不需要
dim sql as string
sql = "select * from 客户机 where 计算机名称 ='" & Txtsel & "'"
   With rs
        .Source = sql
        .ActiveConnection = cnn
        .CursorType = adOpenKeyset
        .LockType = adLockOptimistic
        .Open , , , , adCmdText
   End With
ComputerName.Text = rs!计算机名称
ComputerIP.Text = rs!IP地址
ComputerMAC.Text = rs!MAC地址
(rs和cnn需要自己定义连接一下)
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,