我的程序内容大致如下:
Public str As String
Private Sub command1_Click()
If Trim(Text1(1).Text) <> "" Then
If str = "" Then
str = "名称='" + Trim(Text1(1).Text) + "'"
Else
str = str + "and 名称='" + Trim(Text1(1).Text) + "'"
End If
End If
If Trim(Text1(2).Text) <> "" Then
If str = "" Then
str = "报告编号='" + Trim(Text1(2).Text) + "'"
Else
str = str + "and 报告编号='" + Trim(Text1(2).Text) + "'"
End If
End If
If str <> "" Then
Adodc1.RecordSource = "select * from productcmm where " + str
Adodc1.Refresh
Else
Adodc1.RecordSource = "select * from productcmm"
Adodc1.Refresh
End If
recs = Adodc1.Recordset.RecordCount
If recs = 0 Then
MsgBox "没有任何满足条件的记录", vbOKOnly, "信息提示"
End If
Call encomm
End Sub
Private Sub Command2_Click()
Dim sqltxt As String
Dim rs As String
sqltxt = "delete temppr"
Set conn = New ADODB.Connection
conn.ConnectionString = "DSN=ylgl;UID=sa;PWD=;"
conn.Open
conn.Execute sqltxt
If str = "" Then
sqltxt = "insert into temppr select * from productcmm"
Else
sqltxt = "insert into temppr select * from productcmm where" + str
End If
conn.Execute sqltxt
conn.Close
printf2.Show vbModal
End Sub
当我运行后,按command2的时候,就会提示实时错误'-2147217900(80040e14)'[Microsoft][ODBC SQL SERVER RIVER][SQL SERVER]第一行:'='附近有语法错误。而且错误行是指在'conn.execute sqltxt'这里的。不过如果str=""的时候,就不会报错,哪位大哥教教小弟我吧,先谢谢啦

解决方案 »

  1.   

    问题是因为你的WHERE字句后面的SQL语句出错了。
    估计你后面应该接一个条件判断,这个条件判断中用是字符串或者日期类型的话就需要用''或者##将变量值括起来才可以。
    但是也有可能是其他问题,请在出错的时候在立即窗口中用 ? str 打印出STR的内容来,才能具体判断。
      

  2.   

    sqltxt = "insert into temppr select * from productcmm where" + str
    把sqltxt打印出来就知道问题的原因的
      

  3.   

    弱弱的问一句哦,sqltxt怎么打印出来啊,我是初学者,不好意思额
      

  4.   

    sqltxt = "insert into temppr select * from productcmm where " + str
    注意where后面的空格