MS Access从窗体中为文本框中的多个记录查询

问题描述:

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

一些东西到SQL函数

IN(“XXX”,“XXX”,“XXX”)

我希望我的用户是在表单上能够输入多个值,它会吐出类似相应的数据。

+0

您可以根据关键字符(;::等)拆分字符串,然后使用for循环将每个inbetween项目与查询字符串的结尾进行连接。 – Grant

试试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字符串。您必须指示您的用户(通过表单上的标签)使用逗号分隔值。

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