新人求调教~~
我把ADODC属性记录源类型设为8-adcmdunknown时,在运行的时候,不管按什么查询都会显示“关键字and附近有语法错误”,然后就会跳出“对象refresh的方法iadodc失败”这句话,请问何解啊?我是基本复制了一份成功运行的代码的,但整出来就不行了~~部分代码:
Private Sub comserach_Click()
   Adodc1.RecordSource = "select * from product"
   Adodc1.Refresh    Dim sqltri As String
    Dim sqltri1 As String
    sqltri1 = "select * from "
        Dim sqltri_1 As String
        Dim sqltri_2 As String
        Dim sqltri_3 As String
        Dim sqltri_4 As StringSelect Case Combo1.ListIndex
                Case 0
                    sqltri_1 = sqltri1
                Case 1
                    sqltri_1 = "and 产品编号='" & serachtext1.Text & "'"
                Case 2
                    sqltri_1 = "and 产品名称 LIKE '%" & serachtext1.Text & "%'"
                Case 3
                    sqltri_1 = "and 计量单位='" & serachtext1.Text & "'"
                Case 4
                    sqltri_1 = "and 库存数量='" & serachtext1.Text & "'"
                Case 5
                    sqltri_1 = "and 单位价格='" & serachtext1.Text & "'"
                Case 6
                    sqltri_1 = "and 产品规格='" & serachtext1.Text & "'"
            End SelectSelect Case Combo2.ListIndex
                Case 0
                    sqltri_2 = sqltri1
                Case 1
                    sqltri_2 = "and 产品编号='" & serachtext2.Text & "'"
                Case 2
                    sqltri_2 = "and 产品名称 LIKE '%" & serachtext2.Text & "%'"
                Case 3
                    sqltri_2 = "and 计量单位='" & serachtext2.Text & "'"
                Case 4
                    sqltri_2 = "and 库存数量='" & serachtext2.Text & "'"
                Case 5
                    sqltri_2 = "and 单位价格='" & serachtext2.Text & "'"
                Case 6
                    sqltri_2 = "and 产品规格='" & serachtext2.Text & "'"
            End SelectSelect Case Combo3.ListIndex
                Case 0
                    sqltri_3 = sqltri1
                Case 1
                    sqltri_3 = "and 产品编号='" & serachtext3.Text & "'"
                Case 2
                    sqltri_3 = "and 产品名称 LIKE '%" & serachtext3.Text & "%'"
                Case 3
                    sqltri_3 = "and 计量单位='" & serachtext3.Text & "'"
                Case 4
                    sqltri_3 = "and 库存数量='" & serachtext3.Text & "'"
                Case 5
                    sqltri_3 = "and 单位价格='" & serachtext3.Text & "'"
                Case 6
                    sqltri_3 = "and 产品规格='" & serachtext3.Text & "'"
            End SelectSelect Case Combo4.ListIndex
                Case 0
                    sqltri_4 = sqltri1
                Case 1
                    sqltri_4 = "and 产品编号='" & serachtext4.Text & "'"
                Case 2
                    sqltri_4 = "and 产品名称 LIKE '%" & serachtext4.Text & "%'"
                Case 3
                    sqltri_4 = "and 计量单位='" & serachtext4.Text & "'"
                Case 4
                    sqltri_4 = "and 库存数量='" & serachtext4.Text & "'"
                Case 5
                    sqltri_4 = "and 单位价格='" & serachtext4.Text & "'"
                Case 6
                    sqltri_4 = "and 产品规格='" & serachtext4.Text & "'"
            End Selectsqltri = sqltri1 & sqltri_1 & sqltri_2 & sqltri_3 & sqltri_4
        
        Adodc1.RecordSource = sqltri
        Adodc1.Refresh
        Call formatstuinfo
        showtsql.Text = sqltri        End Sub

解决方案 »

  1.   

    好像语句缺少where条件
    把这句: sqltri1 = "select * from "
    改为如下再试试:
    sqltri1 = "select * from product where 1=1 "
      

  2.   

    很感谢楼上的快速回复,我照做了后还是出问题了,变成“关键字where附近有语法错误”了,之后依然是指向Adodc1.Refresh说“对象refresh的方法iadodc失败”
      

  3.   

    msgbox sqltri
    看看sqltri的内容
      

  4.   

    ......很惭愧、很害羞地说~~我不会用msgbox,真心小白~~
    能提供一下代码吗?
      

  5.   

      sqltri = sqltri1 & sqltri_1 & sqltri_2 & sqltri_3 & sqltri_4
      msgbox sqltri    '<---加上这句
      Adodc1.RecordSource = sqltri
      Adodc1.Refresh
      Call formatstuinfo
      showtsql.Text = sqltri
      

  6.   


    当我combo1选择1时,就显示这样子了~~
      

  7.   

    '这样试试:
    '每个and前最好都加一个空格
    Private Sub comserach_Click()
      Adodc1.RecordSource = "select * from product"
      Adodc1.Refresh  Dim sqltri As String
      Dim sqltri_1 As String
      Dim sqltri_2 As String
      Dim sqltri_3 As String
      Dim sqltri_4 As String
      sqltri = " select * from product where 1=1 "Select Case Combo1.ListIndex
      Case 0
      sqltri_1 = ""
      Case 1
      sqltri_1 = " and 产品编号='" & serachtext1.Text & "'"
      Case 2
      sqltri_1 = " and 产品名称 LIKE '%" & serachtext1.Text & "%'"
      Case 3
      sqltri_1 = " and 计量单位='" & serachtext1.Text & "'"
      Case 4
      sqltri_1 = " and 库存数量='" & serachtext1.Text & "'"
      Case 5
      sqltri_1 = " and 单位价格='" & serachtext1.Text & "'"
      Case 6
      sqltri_1 = " and 产品规格='" & serachtext1.Text & "'"
      End SelectSelect Case Combo2.ListIndex
      Case 0
      sqltri_2 = ""
      Case 1
      sqltri_2 = " and 产品编号='" & serachtext2.Text & "'"
      Case 2
      sqltri_2 = " and 产品名称 LIKE '%" & serachtext2.Text & "%'"
      Case 3
      sqltri_2 = " and 计量单位='" & serachtext2.Text & "'"
      Case 4
      sqltri_2 = " and 库存数量='" & serachtext2.Text & "'"
      Case 5
      sqltri_2 = " and 单位价格='" & serachtext2.Text & "'"
      Case 6
      sqltri_2 = " and 产品规格='" & serachtext2.Text & "'"
      End SelectSelect Case Combo3.ListIndex
      Case 0
      sqltri_3 = ""
      Case 1
      sqltri_3 = " and 产品编号='" & serachtext3.Text & "'"
      Case 2
      sqltri_3 = " and 产品名称 LIKE '%" & serachtext3.Text & "%'"
      Case 3
      sqltri_3 = " and 计量单位='" & serachtext3.Text & "'"
      Case 4
      sqltri_3 = " and 库存数量='" & serachtext3.Text & "'"
      Case 5
      sqltri_3 = " and 单位价格='" & serachtext3.Text & "'"
      Case 6
      sqltri_3 = " and 产品规格='" & serachtext3.Text & "'"
      End SelectSelect Case Combo4.ListIndex
      Case 0
      sqltri_4 = ""
      Case 1
      sqltri_4 = " and 产品编号='" & serachtext4.Text & "'"
      Case 2
      sqltri_4 = " and 产品名称 LIKE '%" & serachtext4.Text & "%'"
      Case 3
      sqltri_4 = " and 计量单位='" & serachtext4.Text & "'"
      Case 4
      sqltri_4 = " and 库存数量='" & serachtext4.Text & "'"
      Case 5
      sqltri_4 = " and 单位价格='" & serachtext4.Text & "'"
      Case 6
      sqltri_4 = " and 产品规格='" & serachtext4.Text & "'"
      End Selectsqltri = sqltri & sqltri_1 & sqltri_2 & sqltri_3 & sqltri_4
        
      Adodc1.RecordSource = sqltri
      Adodc1.Refresh
      Call formatstuinfo
      showtsql.Text = sqltri  End Sub