以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]借鉴了华海仓库的查询例子,出错 什么情况?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=15238)

--  作者:gaoyong30000
--  发布时间:2011/12/17 22:21:00
--  [求助]借鉴了华海仓库的查询例子,出错 什么情况?

With e.form
    Dim sql,str1,kz As String
    kz = "ComboBox3,ComboBox4,ComboBox1,TextBox2,DateTimePicker3,DateTimePicker4"
    str1 = "审核状态=\'@$0\',部门= \'@$1\',岗位= \'@$2\',责任人= \'@$3\',日期 >= #@$4#,日期 <= #@$5#"
    Dim i As Integer
    For Each k As String In kz.split(",")
        If .Controls(k).Value IsNot Nothing Then
            If i=0 And .Controls("CheckBox2").Checked Then
                sql = sql & " AND " & str1.split(",")(i).Replace("=\'@$" & i," like \'%" & .Controls(k).Value & "%")
            Else
                sql = sql & " AND " & str1.split(",")(i).Replace("@$" & i,.Controls(k).Value)
            End If
        End If
        i += 1
    Next
    If sql > "" Then
        Tables("现场检查").Filter = sql
    End If
End With

 

 

出错说:

 

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

 

还有 上面代码中 i += 1   是原版华海仓库的 是错的 还是什么? 我觉得应该是i = i+1啊!

[此贴子已经被作者于2011-12-17 22:24:13编辑过]

--  作者:mr725
--  发布时间:2011/12/17 23:46:00
--  

这样?

           If i=0 And .Controls("CheckBox2").Checked Then
                sql = str1.split(",")(i).Replace("=\'@$" & i," like \'%" & .Controls(k).Value & "%\' ")
            Else

 

 

i+=1 和 i = i+1使一样的........

[此贴子已经被作者于2011-12-17 23:46:49编辑过]

--  作者:程兴刚
--  发布时间:2011/12/18 0:47:00
--  
这里我还没这么用过: If i=0 And .Controls("CheckBox2").Checked Then 改为: If i=0 And .Controls("CheckBox2").Checked = true Then 试试看行不行!