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
我试过这个: 要将(全部)项目添加到列表,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