回 帖 发 新 帖 刷新版面

主题:菜鸟求助:VB6.0如何实现用text框输入达到查询access数据库?

小弟刚报了VB二级看,也没有看明白,困扰多日,请高手指点:

access 数据库 cs.mdb,里面的表cs1,表的内容:
编码     车辆         标号        大写字母       小写字母
1       汽车         122       QC           qc
2       摩托车       111        MTC          mtc
3       施工车       211       SGC          sgc

想实现:在窗体上text1.text内输入122,点查询命令按钮,text2.text中显示汽车

       在窗体上text1.text内输入QC或者qc或者汽车,点查询命令按钮,text2.text中显示122

烦请解答的高手,将详细的操作步骤和代码告知,非常感谢!

菜到不能菜,别笑话!

回复列表 (共6个回复)

沙发

以下为代码
如需要程序文件及最后效果示例,[url=http://www.oulihua1.tk]请单击自行去查看下载[/url]
[em2]
先引用ADO
如果你用ADO控件做,那就更简单,我这个只是通用方法,对所有与数据库相关的查询基本适用

Public conn As New ADODB.Connection         '建立新连接
Public rst As New ADODB.Recordset           '建立新记录集
Public tmprst As String                     '用于存储查询语句
Dim constr As String                        '连接字符串
Private Sub Command1_Click()                '查询
On Error GoTo err3                          '错误跳转
    If Text1.Text <> "" And Text2.Text = "" Then
        tmprst = "select * from cs1 where 标号='" & Text1.Text & "'"
    ElseIf Text1.Text = "" And Text2.Text <> "" Then
        tmprst = "select * from cs1 where 小写字母='" & LCase(Text2.Text) & "'"
    ElseIf Text1.Text <> "" And Text2.Text <> "" Then
        tmprst = "select * from cs1 where 小写字母='" & LCase(Text2.Text) & "' and 标号='" & Text1.Text & "'"
    Else
        MsgBox "请输入查询条件", vbOKOnly, "提示"
        Exit Sub
    End If
    Set DataGrid1.DataSource = queryrst(tmprst)         '显示数据
    If queryrst(tmprst).RecordCount = 0 Then            '当记录集为空时,提示
        MsgBox "没有查询到你要的数据", vbOKOnly, "提示"
        Form1.Height = 2925                             '记录集为空时不显示数据表
    Else
        Form1.Height = 3990                             '查询到记录时,显示数据表
    End If
Exit Sub
err3:

End Sub

Private Sub Command2_Click()
On Error GoTo err1
    Set Form1.DataGrid1.DataSource = queryrst(Text3.Text)       '用SQL语句查询数据库
    If queryrst(Text3.Text).RecordCount = 0 Then
        Form1.Height = 2925
    Else
        Form1.Height = 3990                                     '有数据时显示数据表
    End If
Exit Sub
err1:
    Form1.Height = 2925
    MsgBox "输入的SQL查询命令有误" & vbCrLf & "请输入正确的查询命令", vbOKOnly, "错误"
End Sub
Private Sub Form_Load()
constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\CS.mdb;Persist Security Info=False" '数据库连接字符串
End Sub

Function queryrst(sqltxt As String) As ADODB.Recordset
On Error GoTo err2
    Set conn = New ADODB.Connection                     '设置新连接
    Set rst = New ADODB.Recordset                       '设置新记录集
    conn.Open constr                                    '打开数据库
    rst.CursorLocation = adUseClient                    '设置记录集为客户端文件打开
    rst.Open sqltxt, conn, adOpenDynamic, adLockOptimistic  '打开记录集,注意后两个参数,选择错误会导入记录集不能显示在数据表中
    Set queryrst = rst                                  '设置函数返回记录集
    Set rst = Nothing                                   '释放原记录集
Exit Function
err2:
    MsgBox "请查看程序文件夹下是否有CS.MDB" & vbCrLf & "是否有表CS1" & vbCrLf & "本程序仅为测试,数据库为固定的", vbOKOnly, "提示"
End Function

板凳

楼上正解!

3 楼

菜鸟蛮多,这些问题都不想说了!

4 楼

谢谢1楼分享。3楼,谁不是从菜鸟开始的啊,肯问肯学才是优秀的。

5 楼

1、开始做数据库的问题了,应该可以帮助到很多人。希望你的专家分不在是0
2、既然“谢谢1楼分享。”,为什么不予评分?
有索取不奇怪,多少要给予一点,不要连虚拟的评分都舍不得!

6 楼

俺一般都给分,嘿嘿

我来回复

您尚未登录,请登录后再回复。点此登录或注册