MS Access:将 Select 全部添加到组合框

MS Access : Add Select All to combo box

我试过这个: 要将(全部)项目添加到列表,return 到设计视图和 select 组合框控件。然后,将行源 属性 替换为以下 SQL 语句:

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;

我可以在我的下拉列表中看到(全部),问题是当我 select 选项(全部)时我收到一个空白页。

我错过了什么吗?我需要一些 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,

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

"Select * from Employee_Filter_Query where ([LastName] = iif('" & cboFilter2 & "'='(All)',[LastName],'" & cboFilter2 & "'))"

这将做的是寻找组合框说“(全部)”,如果匹配,则匹配 [LastName] = [LastName],这将始终为真,return 所有记录,否则它将匹配[LastName] 反对你的过滤器并像往常一样行动。

另一种方法是这样设置:

If cboFinter2 = "(All)" Then
    myFilter = "Select * from Employee_Filter_Query"
Else
    myFilter = "Select * from Employee_Filter_Query where ([LastName] = '" & cboFilter2 & "')"
End If