我想在一个窗口中实现点击一个“查找”按钮,如果在数据库中找到此记录,则在相应的文本框中:例:(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
实时错误 至少一个参数没有被指定值!
请问是那里错误,帮帮小弟!
在模块中写了代码如下:
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
实时错误 至少一个参数没有被指定值!
请问是那里错误,帮帮小弟!
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
还有一种是:打开记录时全部查出来,用客户端方式,后在本地机上过滤查询
可用rs.Filter="查询条件",具体可参照MSDN中ADO中帮助
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
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