簡體   English   中英

在IN語句中使用文本框值

[英]Using textbox values in IN statement

我想讓它工作? 如何設置要在IN()語句中使用的文本框? 我希望用戶能夠列出他們要查詢的國家/地區

SELECT *
FROM Table
WHERE CountryID IN (forms!frmImport!txtCountries)

您不能只將文本框的名稱直接放入SQL字符串中。
相反,您需要使用文本框的內容來構建如下的SQL字符串:

SELECT * FROM Table WHERE CountryID IN (1,2,3)

如果您的用戶在文本框中輸入以逗號分隔的CountryID列表,則可以按以下方式構建SQL:

Dim SQL As String

SQL = "SELECT * FROM Table WHERE CountryID IN (" & Forms!frmImport!txtCountries & ")"

但是我不會這樣做,因為它很簡單,但是容易出現輸入錯誤和SQL注入。

更好的方法是使用列表框,設置“ Multi Select屬性(以便可以選擇多個條目) ,然后用所有可用國家/地區的列表填充它。

然后,用戶可以選擇所需的內容,然后可以使用列表框中的選定項來構建SQL字符串:

Dim ListItem As Variant
Dim CountryList As String
Dim SQL As String

For Each ListItem In Forms!frmImport!lstCountries.ItemsSelected
    If CountryList > "" Then
        CountryList = CountryList & ","
    End If
    CountryList = CountryList & ListItem
Next

SQL = "SELECT * FROM Table WHERE CountryID IN (" & CountryList & ")"

暫無
暫無

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

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