求助!!请教用VB查询SQL的问题!!急切希望您的帮助

来源:百度知道 编辑:UC知道 时间:2024/06/23 23:30:57
我在VB中用combo控件,选择书名和作者进行分类查询,然后在text中输入相应的书名或作者,点command进行模糊查询SQL中的表 想在VB中的datagrid中显示查询的结果. 代码如下:
Private Sub Form_Load()
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "dsn=joyce", "sa", ""
Combo1.AddItem "按书名查询", 0
Combo1.AddItem "按作者查询", 1
End Sub

Private Sub Command1_Click()
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
Dim sql As String
If Combo1.Text = Combo1.List(0) Then
sql = "select * from book where 书名 like '" & Text1.Text & "%'"
rs.Open sql, cnn, adOpenKeyset, adLockOptimistic
End If
If Combo1.Text = Combo1.List(1) Then
sql = "select * from book where 作者 like '" & Text1.Text & "% '"
rs.Open sql, cnn, adOpenKeyset, adLockOptimistic
End If
result.Show
director.Hide
Set DataGrid1.DataSource = rs
End Sub
(以设置模块代码:Publ

1、可能是库的连接有问题。2、库里面的字段名称是不是你上面的“作者”“书名”?是不是其他的例如:zuozhe shuming等。3、rs要刷新下!

你把你的程序发给我,我帮你改一改
'注意这个变量应该声明成模块级变量
Dim rs As ADODB.Recordset
Private Sub Form_Load()

Set cnn = New ADODB.Connection
cnn.Open "dsn=joyce", "sa", ""
Combo1.AddItem "按书名查询", 0
Combo1.AddItem "按作者查询", 1
End Sub

Private Sub Command1_Click()
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
Dim sql As String
If Combo1.Text = Combo1.List(0) Then
sql = "select * from book where 书名 like '" & Text1.Text & "%'"
rs.Open sql, cnn, adOpenKeyset, adLockOptimistic
End If
If Combo1.Text = Combo1.List(1) Then
sql = "select * from book where 作者 like '" & Text1.Text & "% '"
rs.Open sql, cnn, adOpenKeyset, adLockOptimistic
End If
result.Show
director.Hide
Set D