VB问题的求救啊,大虾进来,事态紧急.不能开玩笑啊

来源:百度知道 编辑:UC知道 时间:2024/05/17 08:26:45
关于DataGrid显示查询的问题...大哥大姐们帮帮忙啊......
查询ACCESS数据库中的项目.我建立了COMBOBOX 和 TEXT 两个查询条件.
查询按扭我都改了一个星期,还没办法解决,我真的很想学这个.痛哭中.........
具体代码如下,据说其中有很多错误.哪位好心人,帮忙解决一下啊...
Private Sub begin_Click(Index As Integer)
On Error GoTo wrong
Dim dbfile As String
Dim CN As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Select Case SSTab1.Tab
Case 3
dbfile = App.Path & "\主表(学生信息).mdb"
Rs.CursorLocation = adUseClient
CN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & dbfile & "';Persist Security Info=False"
Rs.Close
Rs.Open "Select * from 学生表 where '" & Trim(Combo3.Text) & " like '*" & Trim(Text3.Text) & "%'" '", CN, adOpenDynamic, adLockBatchOptimistic
Rs.ConnectionString = CN
DataGrid1.DataSource = Rs
Rs

ADOVBS.inc文件包含进来了吗?
ADOVBS.inc是vbscript常量定义。
如果不包含这个文件,adOpenDynamic之类的是不能使用的。
Rs.Open "Select * from 学生表 where '" & Combo3.Text & " like '*" & Text3.Text & "%'" '", CN, adOpenDynamic, adLockBatchOptimistic
这句话在where后面多了一个单引号,另外就是要看ADOVBS.inc文件是否已经包含进来。如果没有包含进来,可以使用常量来代替adOpenDynamic, adLockBatchOptimistic。如下:
Rs.Open "Select * from 学生表 where " & Combo3.Text & " like '*" & Text3.Text & "%'" '", CN, 1,3

Rs.Open "Select * from 学生表 where '" & Trim(Combo3.Text) & " like '*" & Trim(Text3.Text) & "%'" '", CN, adOpenDynamic, adLockBatchOptimistic

这条SQL语句的单引号嵌套有问题.如果Combo3.text是字段名的话,应该是
Rs.Open "Select * from 学生表 where " & Trim(Combo3.Text) & " like '*" & Trim(Text3.Text) & "%'", CN, adOpenDynamic, adLockBatchOptimistic

另外Combo3.text的值不能是SQL的关键字