小小一个查询问题!SOS!!!

ChinaKable 2003-12-24 09:34:04
我想在一个窗口中实现点击一个“查找”按钮,如果在数据库中找到此记录,则在

相应的文本框中:例:(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
实时错误 至少一个参数没有被指定值!
请问是那里错误,帮帮小弟!
...全文
30 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
icepoint2003 2003-12-25
  • 打赏
  • 举报
回复
解决了,为什么不结贴???呵呵
ChinaKable 2003-12-25
  • 打赏
  • 举报
回复
问题已解决,谢谢各位!
ddsty 2003-12-25
  • 打赏
  • 举报
回复
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
icepoint2003 2003-12-25
  • 打赏
  • 举报
回复
Public Function executesql(ByVal a As String) As Object'这里是不是应该改成Recordset

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 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
icepoint2003 2003-12-25
  • 打赏
  • 举报
回复
还有 a 是什么?这里应该跟source,也就是指定的表
icepoint2003 2003-12-25
  • 打赏
  • 举报
回复
set rs=new adodb.recordset
qffhq 2003-12-24
  • 打赏
  • 举报
回复
一种是以上的方法,打开记录时只查找定条件的数据
还有一种是:打开记录时全部查出来,用客户端方式,后在本地机上过滤查询
可用rs.Filter="查询条件",具体可参照MSDN中ADO中帮助
vbman2003 2003-12-24
  • 打赏
  • 举报
回复

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

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧