我想在一个窗口中实现点击一个“查找”按钮,如果在数据库中找到此记录,则在相应的文本框中:例:(text text2 text3 text4) 把找到数据库的此记录在这些文本框中显示出来!请问如何才能实现?请详细给出代码和说明!小弟刚学不久!谢谢!以下是我的代码,但运行时出错,请帮改正!如有更好方法,请回复。谢谢!
在模块中写了代码如下:
Public Function executesql(ByVal a As String) As Object
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Provider = "microsoft.jet.oledb.4.0"
cnn.Open App.Path & "\UserMessage.mdb"
Set rs = New Recordset
rs.Open a, cnn, adOpenDynamic, adLockOptimistic, adCmdText
Set executesql = rs
End Function
然后又在一个穷窗体的按钮单击了以下代码:
Private Sub cmdFind_Click()
  Dim rs As ADODB.Recordset
 Set rs = executesql("select * from StudentElective where studnetID='" &_ 
 Trim(txtID.Text) & "'")
 txtID.Text = rs!Fields(0)     '0代表数据库中表的第一个字段
 txtname.Text = rs!Fields(1)
End Sub
为什么在运行中调试时总是总是跑到“模块”一条代码上说: 
rs.Open a, cnn, adOpenDynamic, adLockOptimistic, adCmdText
实时错误 至少一个参数没有被指定值!
请问是那里错误,帮帮小弟!

解决方案 »

  1.   


    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\UserMessage.mdb;Persist Security Info=False"
    a="select * from StudentElective where studnetID='"& Trim(txtID.Text) & "'"
    Set rs = New Recordset
    rs.Open a, cnn, adOpenKeyset, adLockOptimistic
      

  2.   

    一种是以上的方法,打开记录时只查找定条件的数据
    还有一种是:打开记录时全部查出来,用客户端方式,后在本地机上过滤查询
    可用rs.Filter="查询条件",具体可参照MSDN中ADO中帮助
      

  3.   

    还有 a  是什么?这里应该跟source,也就是指定的表
      

  4.   

    Public Function executesql(ByVal a As String) As Object'这里是不是应该改成RecordsetDim cnn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Set cnn = New ADODB.Connection
    cnn.Provider = "microsoft.jet.oledb.4.0"
    cnn.Open App.Path & "\UserMessage.mdb"
    Set rs = New ADODB.Recordset
    rs.Open a, cnn, adOpenDynamic, adLockOptimistic, adCmdText 'a是什么?
    Set executesql = rs
    End Function
    然后又在一个穷窗体的按钮单击了以下代码:
    Private Sub cmdFind_Click()
      Dim rs As ADODB.Recordset
     Set rs = executesql("select * from StudentElective where studnetID='" &_ 
     Trim(txtID.Text) & "'")
     txtID.Text = rs!Fields(0)     '0代表数据库中表的第一个字段
     txtname.Text = rs!Fields(1)
    End Sub
      

  5.   

    Dim cnn As new ADODB.Connection
    Dim rs As new ADODB.Recordset
    Dim a as String
    cnn.Provider = "microsoft.jet.oledb.4.0"
    cnn.Open App.Path & "\UserMessage.mdb"
    a="select * from 表名 where=" & 条件表达式 
    rs.Open a, cnn, adOpenDynamic, adLockOptimistic, adCmdText
    if rs.eof=false then          '如果有多条记录就用do while循环
         msgbox "没有找到记录"
    else
       text1.text=rs!字段名
        ........
    end if