MS Access:将“全选”添加到组合框

时间:2015-10-12 14:55:53

标签: vba ms-access ms-access-2010 ms-access-2007

我试过这个: 要将(所有)项添加到列表,请返回“设计”视图并选择组合框控件。然后,使用以下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,

1 个答案:

答案 0 :(得分:2)

您可能没有“(全部)”的姓氏,当您从组合框中选择“(全部)”时,SQL不会自动知道选择所有内容。您需要调整查询:

/tasks

这样做是为了寻找组合框来说“(全部)”,如果它确实匹配"Select * from Employee_Filter_Query where ([LastName] = iif('" & cboFilter2 & "'='(All)',[LastName],'" & cboFilter2 & "'))" ,它将始终为真并返回所有记录,否则它将匹配[LastName] = [LastName]你的过滤器和正常行为一样。

另一种方法是设置如下:

[LastName]