Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql MS Access从表单查询文本框中的多条记录_Sql_Ms Access - Fatal编程技术网

Sql MS Access从表单查询文本框中的多条记录

Sql MS Access从表单查询文本框中的多条记录,sql,ms-access,Sql,Ms Access,我在Access中创建了一个表单,用于查询设置日期范围内的单个记录。这个很好用。我的问题是如何从表单文本框中查询多个记录 类似于SQL函数的东西 在('XXX','XXX','XXX')中 我希望我的用户能够在表单上输入多个值,表单将输出相应的数据。尝试使用Split()函数。大概是这样的: Dim arr() As String Dim MySQL as String If Len(Me!MyTextbox) > 1 Then MySQL = "SELECT * FROM MyTabl

我在Access中创建了一个表单,用于查询设置日期范围内的单个记录。这个很好用。我的问题是如何从表单文本框中查询多个记录

类似于SQL函数的东西

在('XXX','XXX','XXX')中

我希望我的用户能够在表单上输入多个值,表单将输出相应的数据。

尝试使用Split()函数。大概是这样的:

Dim arr() As String
Dim MySQL as String

If Len(Me!MyTextbox) > 1 Then
MySQL = "SELECT * FROM MyTable WHERE MyField in ("

arr = Split(Me!MyTextbox.Text, ",")
For i = LBound(arr) To UBound(arr)
    MySQL = MySQL & "'" & arr(i) & "', "
Next

MySQL = Left(MySQL, Len(MySQL) - 2) & ")"

Me.RecordSource = MySQL
Else
   MsgBox "There are no values to search for."
EndIf

您只需在数组中循环并将每个值添加到WHERE字符串中。您必须指示用户(通过表单上的标签)使用逗号分隔值。

如果您希望允许多个条目,通常最好有一个数据表子表单,用户可以在其中每行输入一个数据。然后在查询中使用子表单数据,就像在常规表中一样。

可以根据键字符(;,:等)分解字符串,然后使用for循环将每个中间项连接到查询字符串的末尾。