我试过这个: 要将(所有)项添加到列表,请返回“设计”视图并选择组合框控件。然后,使用以下SQL语句替换Row Source属性:
SELECT City FROM Employees
UNION SELECT "(All)" FROM Employees;
从这里开始:https://msdn.microsoft.com/en-us/library/aa140084%28v=office.10%29.aspx
我的Sql语句如下所示:
SELECT LastName FROM Employee
UNION SELECT "(All)" FROM Employee;
我可以在下拉列表中看到(全部),问题是当我选择选项(全部)时,我收到一个空白页。
我错过了什么吗?我需要一些VBA代码吗?这是我目前的代码:
Private Sub cboFilter2_AfterUpdate()
Dim myFilter As String
myFilter = "Select * from Employee_Filter_Query where ([LastName] = '" & cboFilter2 & "')"
Me.Employee_Filter_subform.Form.RecordSource = myFilter
Me.Employee_Filter_subform.Form.Requery
End Sub
BR,
答案 0 :(得分:2)
您可能没有“(全部)”的姓氏,当您从组合框中选择“(全部)”时,SQL不会自动知道选择所有内容。您需要调整查询:
/tasks
这样做是为了寻找组合框来说“(全部)”,如果它确实匹配"Select * from Employee_Filter_Query where ([LastName] = iif('" & cboFilter2 & "'='(All)',[LastName],'" & cboFilter2 & "'))"
,它将始终为真并返回所有记录,否则它将匹配[LastName] = [LastName]
你的过滤器和正常行为一样。
另一种方法是设置如下:
[LastName]