我正在尝试运行此代码块的编译器错误。显然,所选属性抛出错误:参数不是可选的。有没有更好的方法来做这个或我可以使用的不同的属性?
Private Sub cmbAnalyst_AfterUpdate()
If cmbAnalyst.Selected = "" Or IsNull(cmbAnalyst.Selected) Then
Exit Sub
Else
whereAtt = whereAtt & " And Analyst = ' cmbAnalyst.Selected '"
Call queryBuilder
End If
End Sub
Private Sub Form_Load()
whereAtt = "Select * from tblActionLog where LogID is not null"
cmbAnalyst.RowSource = "SELECT DISTINCT Analyst FROM tblActionLog"
Call queryBuilder
End Sub
Public Sub queryBuilder()
testTable.RowSource = whereAtt
End Sub
答案 0 :(得分:1)
您可以使用ComboBox的ListIndex方法来测试是否正在选择某些内容。您还可以使用Len()函数。
Private Sub cmbAnalyst_AfterUpdate()
If cmbAnalyst.ListIndex <> -1 Then
whereAtt = whereAtt & " And Analyst = '" & Me.cmbAnalyst &"'"
Call queryBuilder
End If
End Sub
我个人会去ListIndex。如果没有选择,ListIndex将返回-1。
答案 1 :(得分:1)
从Access帮助主题 ComboBox.Selected Property ...
“Selected属性是一个从零开始的数组,其中包含组合框中每个项目的选定状态。”
因此,参数Access needs是一个标识该数组成员的索引。
如果您的选择是简单的选择框,则可以查看其.Value
。
'If cmbAnalyst.Selected = "" Or IsNull(cmbAnalyst.Selected) Then
If Len(Trim(Me.cmbAnalyst.Value & vbNullString)) = 0 Then