sqlStr = "select * from SQLS where strtype=" & Combo1.Text 改为
sqlStr = "select * from SQLS where strtype='" & Combo1.Text & "'"试试看

解决方案 »

  1.   

    再sql中,字符串要用“’”括起来,就象楼上写的那样
      

  2.   

    不会吧,你把下面的句子复制一次
    sqlStr = "select * from SQLS where strtype='" & Combo1.Text & "'"
      

  3.   

    检查你的代码,
    sqlStr = "select * from SQLS where strtype='" & Combo1.Text & "'"
                                              ~~~~在“”中        ~~~~在另一个“”中
      

  4.   

    Sorry! 是我的错.加上'就可以了!
    但出了一个小问题!
    "多步OLE DB操作产生错误.请检查每个OLE DB状态值.没有工作被完成."
    是不是有其他的连接没关闭?
      

  5.   

    Option Explicit
    Public SQLTables As String
    Public SQLFields As String
    下面是一个ODBC FRO ORACLE的连接需要总保持它,因为当我双击LIST1的项目时,总要通过它来刷新LIST2的项目
    Public cnn2
    Public cnn2str
    Private Sub addS_Click()
    Dim selec1 As String
    Dim selec2 As String
    Dim list1LI As Integer
    Dim list2LI As Integer
    Dim addStr As String
    Dim selectB As IntegerIf List2.Text = "" Then
    selectB = MsgBox("¶ÔÕÕ×ֶβ»ÄÜΪ¿Õ!", vbOKOnly, "ϵͳÌáʾ", "0", "0")
    Else
    selec1 = List1.Text
    selec2 = List2.Text
    list1LI = List1.ListIndex
    list2LI = List2.ListIndex
    addStr = selec1 & "." & selec2
    List5.AddItem addStr
    List2.SetFocus
    End If
    End SubPrivate Sub button_ok_Click()  '根据选项生成SQL语句Dim i As Integer
    Dim listcounts As IntegerList5.SetFocus
    TextBox1.Text = ""
    listcounts = List5.ListCount
    If listcounts <> 0 Then
       For i = 0 To listcounts - 1
          If i <> listcounts - 1 Then
          SQLTables = SQLTables & Left$(List5.List(i), findDot(List5.List(i))) & ","
          SQLFields = SQLFields & List5.List(i) & ","
          Else
          SQLTables = SQLTables & Left$(List5.List(i), findDot(List5.List(i)))
          SQLFields = SQLFields & List5.List(i)
          End If
       Next i
       TextBox1.Text = "select " & SQLFields & " from " & SQLTables
    Else
      MsgBox "&Aring;&auml;&Ouml;&Atilde;&ETH;&Aring;&Iuml;&cent;&Icirc;&ordf;&iquest;&Otilde;!", , "&Iuml;&micro;&Iacute;&sup3;&ETH;&Aring;&Iuml;&cent;!"
      Exit Sub
    End If
    End SubPrivate Sub button_save_Click()
    Dim cnn7
    Dim rst7 As New ADODB.Recordset
    Dim sqlStrs As String
    Dim FirstOrNot As Boolean
    YinHao = Chr(39)
    Set cnn7 = CreateObject("ADODB.Connection")
    cnn7.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=e:\vb_wbm\DataPump.mdb"
    sqlStrs = "select * from SQLS where strtype='" & Combo1.Text & "'"
    rst7.Open sqlStrs, cnn7, adOpenKeyset, adLockOptimistic'First or not
    If rst7.RecordCount = 0 Then
    FirstOrNot = True
    Else
    FirstOrNot = False
    End If
    'Save it
    If FirstOrNot = True Then
    rst7.AddNew
    rst7.Update rst7.Fields(1).Name, Combo1.Text
    rst7.Update rst7.Fields(2).Name, TextBox1.Text   ''''*******在这里报错
    rst7.Update
    rst7.Close
    cnn7.Close
    Else
    rst7.Update rst7.Fields(1).Name, Combo1.Text
    rst7.Update rst7.Fields(2).Name, TextBox1.Text
    rst7.Close
    cnn7.Close
    End If
    List4.Clear
    List5.Clear
    End SubPrivate Sub Command1_Click()
    Load frm_MakeSql
    End SubPrivate Sub delectS_Click()
    If List5.Text <> "" Then
    List5.SetFocus
    List5.RemoveItem List5.ListIndex
    Else
    Exit Sub
    End If
    End SubPrivate Sub Form_Load()
    Dim rstSchema
    Dim cnn1, cnn1str
    Dim i As Integer
    Dim msg As String
     SQLTables = ""
     SQLFields = ""
     Combo1.AddItem "&Eacute;&Igrave;&AElig;·&ETH;&Aring;&Iuml;&cent;"
     Combo1.AddItem "&Iuml;ú&Ecirc;&Ucirc;&ETH;&Aring;&Iuml;&cent;"
     Combo1.AddItem "&Eacute;ú&sup2;ú&Eacute;&Igrave;&ETH;&Aring;&Iuml;&cent;"
    Set cnn2 = CreateObject("ADODB.Connection")
    cnn2str = "User ID=" & userIDS & ";Password=" & pwdS & ";Data Source=" & dsnS
    cnn2.Open cnn2str
    db_initi.List1.Clear
    On Error GoTo errormsg
    Set cnn1 = CreateObject("ADODB.Connection")
    cnn1str = "User ID=" & userIDS & ";Password=" & pwdS & ";Data Source=" & dsnS
    cnn1.Open cnn1strSet rstSchema = cnn1.OpenSchema(adSchemaTables)
    Do Until rstSchema.EOF
             List1.AddItem rstSchema!TABLE_NAME
             rstSchema.MoveNext
             
    Loop
    rstSchema.Close
    cnn1.Close
    errormsg:
    Select Case Err.Number
           Case -2147217843
           msg = "&acute;í&Icirc;ó&micro;&Auml;&Oacute;&Atilde;&raquo;§&Atilde;&ucirc;&ordm;&Iacute;&Atilde;&Uuml;&Acirc;&euml;!" & Err.Number
           MsgBox (msg)
           Exit Sub
        Case Else
    End Select
    End Sub
    Private Sub List1_DblClick()     '刷新LIST2newfieldsEnd SubPrivate Sub newfields()
    Dim i As Integer
    Dim strTbName As String
    Dim strFldName As String
    Dim rslist2 As New ADODB.Recordset
    Dim strsql As String
    Dim errstr As String
       
    On Error GoTo errmsg3
    db_initi.List2.Clear
    strTbName = List1.Text
    strsql = "select * from " & strTbName & " where 0=1"
    rslist2.Open strsql, cnn2
    For i = 0 To rslist2.Fields.Count - 1
        strFldName = rslist2.Fields(i).Name
        List2.AddItem strFldName
    Next i
    List2.ListIndex = 0
    Set rslist2 = Nothingerrmsg3:
    Select Case Err.Number
       Case -2147217911
         errstr = "&sup2;&raquo;&Auml;&Uuml;&para;&Aacute;&Egrave;&iexcl;&frac14;&Ccedil;&Acirc;&frac14;&pound;&raquo;&Ocirc;&Uacute;'" & List1.Text & "'&Eacute;&Iuml;&Atilde;&raquo;&Oacute;&ETH;&para;&Aacute;&Egrave;&iexcl;&Ecirc;&yacute;&frac34;&Yacute;&Egrave;¨&Iuml;&THORN;"
         MsgBox (errstr)
         Exit Sub
       Case -2147217900
         errstr = "FROM ×&Oacute;&frac34;&auml;&Oacute;&iuml;·¨&acute;í&Icirc;ó,&iquest;&Eacute;&Auml;&Uuml;&Ecirc;&Ccedil;&Auml;ú&Ntilde;&iexcl;&Ocirc;&ntilde;&micro;&Auml;±í&Atilde;&ucirc;&acute;&acute;&frac12;¨&micro;&Auml;&Oacute;&ETH;&Icirc;&Ecirc;&Igrave;&acirc;&iexcl;&pound;&Agrave;&yacute;&Egrave;&ccedil;&pound;&ordm;&Ouml;&ETH;&frac14;&auml;&Oacute;&ETH;&iquest;&Otilde;&cedil;&ntilde;..."
         MsgBox (errstr)
         Exit Sub
       Case Else
         Exit Sub
    End Select
    End Sub
    Private Function findDot(listStr As String) As Long
    Dim fanhui As Long
    Dim retB
    fanhui = InStr(listStr, ".")
    If fanhui = Null Or fanhui = 0 Then
       retB = MsgBox("Sorry!×&Ouml;·&ucirc;&acute;&reg;&Euml;&Ntilde;&Euml;÷&ETH;&Aring;&Iuml;&cent;&ETH;&Aring;&Iuml;&cent;&Oacute;&ETH;&Icirc;ó!", vbQuestion, "&Agrave;&acute;×&Ocirc;ARBSS->findDot&micro;&Auml;&acute;í&Icirc;ó")
    Else:
          findDot = fanhui - 1
    End IfEnd Function
    程序挺乱的见笑了!
      

  6.   

    rst7.Update rst7.Fields(index)中index是从0开始你,你好象只有两列数据应为0,1不能为2呀
      

  7.   

    NO.表中有3个字段.ID(自动编号),strtype,sqlstr
      

  8.   

    rst7.addnew
    rst7.fields!strtype=Combo1.Text
    rst7.fields!sqlstr=TextBox1.Text  
    试试看
      

  9.   

    忘了,还有一句
    rst7.update
      

  10.   

    no.数据库中有3个字段,ID(自动编号),strtype,sqlstr
      

  11.   

    我知道了,原来是access的SQLS表的SQLSTR字段宽度不够!!!!!!
    又请问, access中哪种类型可以放置不定长的字符串? 备注?