簡體   English   中英

如何在查詢中使用多個復選框值

[英]How to use many checkbox values in a Query

我的目標是通過將 Query 字符串與變量合並,將 5 個文本框的結果返回到 SQL 查詢中。

如何讓我的代碼發揮作用,以便在選中復選框時,記錄值(例如:ID、SC...)並將其放入查詢中? 如果未選中復選框,則不會將其放入查詢中。

5個復選框如下:

復選框圖片

我當前必須記錄是否選擇了文本框,並將值(例如:ID、SC、AS...)放入變量中的代碼如下:

If (Me.BoxID = False) And (Me.BoxSC = False) And (Me.BoxASSC = False) And (Me.BoxAS = False) And (Me.BoxEH = False) Then
MsgBox "You must check a Fonction Checkbox", 0
Exit Sub
Else
    If (Me.BoxID= True) Then IDValue = Chr(34) & "ID" & Chr(34) Else IDValue = """"""
    If (Me.BoxSC= True) Then SCValue = Chr(34) & "SC" & Chr(34) Else SCValue = """"""
    If (Me.BoxASSC= True) Then ASSCValue = Chr(34) & "ASSC" & Chr(34) Else ASSCValue = """"""
    If (Me.BoxAS= True) Then ASValue = Chr(34) & "AS" & Chr(34) Else ASValue = """"""
    If (Me.BoxEH= True) Then EHValue = Chr(34) & "EH" & Chr(34) Else EHValue = """"""
End If

fonctionQryString = "(((tblF.f1)=" & IDValue & ") OR " + "((tblF.f1)=" & SCValue & ") OR " + "((tblF.f1)=" & ASSCValue & ") OR " + "(tblF.f1)=" & ASValue & ") OR " + "(tblF.f1)=" & EHValue & ")))"

fonctionQryString 進入 SQL 查詢的 WHERE 部分。

我知道我使用的方法效率不高,即使它有效。

我的問題是我不知道如何以另一種方式做到這一點。 我希望我的代碼能夠正常工作,以便在未選中復選框時,它不會進入查詢字符串。

任何幫助將非常感激。

這兩個WHERE子句應該產生等效的結果。 考慮切換到第二種形式。

WHERE tblF.f1 = "ID" OR tblF.f1 = "SC" OR tblF.f1 = "AS"
WHERE tblF.f1 IN ("ID","SC","AS")

這是一個粗略且未經測試的代碼示例,它根據我對您要實現的目標的理解來生成類似的WHERE子句。

Dim fonctionQryString As String
Dim lngLoopNum As Long
Dim strControlName As String
Dim strValueList As String
For lngLoopNum = 1 To 5
    Select Case lngLoopNum
    Case 1
        strControlName = "ID"
    Case 2
        strControlName = "SC"
    Case 3
        strControlName = "ASSC"
    Case 4
        strControlName = "AS"
    Case 5
        strControlName = "EH"
    End Select
    If Me.Controls("Box" & strControlName) = True Then
        strValueList = strValueList & "," & Chr(34) & _
            strControlName & Chr(34)
    End If
Next
If Len(strValueList) > 0 Then
    fonctionQryString = "tblF.f1 IN (" & Mid(strValueList, 2) & ")"
Else
    MsgBox "You must check a Fonction Checkbox"
End If

我假設您實際上不想包含條件WHERE tblF.f1 = "" (空字符串)。 如果我猜錯了,您將有更多工作要做,但希望這仍然會為您指出一些有用的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM