我用Win2000 Pro + VB6 + SQL Server2000
1.在本机中先用SQL Server建立了一个名为xlc的数据库,这个数据库中有一个表tab ,包含有name、age、sex几项。在form1中用datagri显示,这一步已经实现。我想点一下form1中的“查询”按钮,在弹出的提示框中输入姓名后,也在datagrid显示出来。数据库是连通的,主要是查找记录的问题
这是我的代码:
Private Sub Search_Click()
Dim cn As New adodb.Connection '连接对象
Dim rs As New adodb.Recordset '记录集对象
Dim strcon As String, sqlstr As String
strcon = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=船员信息" '连接字符串
cn.Open strcon '打开连接(数据库)
rs.CursorLocation = adUseClient '使用客户端游标
sqlstr = "SELECT * FROM 船员资料"
Prompt$ = "请输入要查询的船员姓名"
searchstr$ = InputBox(Prompt$, "查找姓名")
rs.Open sqlstr, strcon, 3, 3
If rs.BOF And rs.EOF Then
MsgBox ("对不起,查无此人")
Exit Sub
Else
sqlstr=sqlstr&"where[name]='"&searchstr$&"'"
Set DataGrid1.DataSource = rs '将记录集显示在datagrid控件中
DataGrid1.Refresh
End IfEnd Sub
1.在本机中先用SQL Server建立了一个名为xlc的数据库,这个数据库中有一个表tab ,包含有name、age、sex几项。在form1中用datagri显示,这一步已经实现。我想点一下form1中的“查询”按钮,在弹出的提示框中输入姓名后,也在datagrid显示出来。数据库是连通的,主要是查找记录的问题
这是我的代码:
Private Sub Search_Click()
Dim cn As New adodb.Connection '连接对象
Dim rs As New adodb.Recordset '记录集对象
Dim strcon As String, sqlstr As String
strcon = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=船员信息" '连接字符串
cn.Open strcon '打开连接(数据库)
rs.CursorLocation = adUseClient '使用客户端游标
sqlstr = "SELECT * FROM 船员资料"
Prompt$ = "请输入要查询的船员姓名"
searchstr$ = InputBox(Prompt$, "查找姓名")
rs.Open sqlstr, strcon, 3, 3
If rs.BOF And rs.EOF Then
MsgBox ("对不起,查无此人")
Exit Sub
Else
sqlstr=sqlstr&"where[name]='"&searchstr$&"'"
Set DataGrid1.DataSource = rs '将记录集显示在datagrid控件中
DataGrid1.Refresh
End IfEnd Sub
...................
sqlstr = "SELECT * FROM 船员资料"
Prompt$ = "请输入要查询的船员姓名"
searchstr$ = InputBox(Prompt$, "查找姓名")
sqlstr=sqlstr&" where[name]='"&searchstr$&"'"
rs.Open sqlstr, strcon, 3, 3
If rs.BOF And rs.EOF Then
MsgBox ("对不起,查无此人")
Exit Sub
Else
Set DataGrid1.DataSource = rs '将记录集显示在datagrid控件中
DataGrid1.Refresh
End If
系统提示这句有语法错误啊
这句有语法错误没错啊!!!
Prompt$ = "请输入要查询的船员姓名"
searchstr$ = InputBox(Prompt$, "查找姓名")
sqlstr = "SELECT * FROM 船员资料 where myname='" & searchstr$ & "'"
rs.Open sqlstr, strcon, 3, 3
If rs.BOF And rs.EOF Then
MsgBox ("对不起,查无此人")
Exit Sub
Else
Set DataGrid1.DataSource = rs '将记录集显示在datagrid控件中
DataGrid1.Refresh
End If建义你将name字段名改一下,因为name是系统关键字。你改成myname。