注册 登录
编程论坛 VB6论坛

多条件查询下的条件拼接问题

linandceline 发布于 2017-04-05 11:30, 1823 次点击
只有本站会员才能查看附件,请 登录


我设置的代码是下面这样
  For i = 1 To 4
    Select Case i
      Case 1
        If Text1 <> "" Then
          cc = Text1.Text
          dd = " 物料编码 like " & cc & " Or 物料名称 Like " & cc & ""
        End If
      Case 2
        If Check1(2).Value = 1 Then
          cc = Combo1(1).Text
          If dd <> "" Then
            dd = dd & " and 发放状态 = " & cc
          Else
            dd = " 发放状态 = " & cc
          End If
        End If
      Case 3
        If Check1(3).Value = 1 Then
          cc = Combo1(2).Text
          If dd <> "" Then
            dd = dd & " and 负责人 = " & cc
          Else
            dd = " 负责人 = " & cc
          End If
        End If
      Case 4
        If Check1(4).Value = 1 Then
          cc = Combo1(3).Text
          If dd <> "" Then
            dd = dd & " and 待处理人 = " & cc
          Else
            dd = " 待处理人 = " & cc
          End If
        End If
    End Select
  Next

  SQLm = "Select * From Mstyle where" & dd

这样拼接的问题出在哪?

3 回复
#2
xiangyue05102017-04-05 13:52
没仔细的看你的代码,第一眼看到可能是你的代码上字符串没有引号,除非你字段就是数字。这个是SQL语句的问题

SQLm ="select * from 股票行情表 where 股票代号='" & V & "'"

而且多条件查询,其实这个不用搞的这么复杂的。 要是多一些条件,按照你的做法不得几十行?
程序代码:

SQLm = "Select * From Mstyle where 1=1 "  '先用一个必然成立的1=1,后面就可以随便串
if option1.value=1 then  SQLm  & " And (物料编码 like '" & cc & "' Or 物料名称 Like '" & cc & "')"   '这里最好括起来
if option2.value=1 then  SQLm  & " and 发放状态 =  '" & cc & "'"
……
#3
linandceline2017-04-05 15:17
回复 2楼 xiangyue0510
修改之后可以了,谢谢
#4
我已半醉人间2017-04-05 19:03
好长啊~~~
1