我用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.   


     ...................
    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
      

  2.   

    sqlstr=sqlstr&" where[name]='"&searchstr$&"'"
    系统提示这句有语法错误啊
      

  3.   

    sqlstr=sqlstr &" where [name]='" & searchstr$ & "'"
      

  4.   

    sqlstr=sqlstr & "where [name]='" & searchstr$ & "'"
    这句有语法错误没错啊!!!
      

  5.   

    你的程序要改成:
      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。
      

  6.   

    sqlstr=sqlstr &" where [name]='" & searchstr$ & "'",注意where前面有空格