选定的属性编译错误

时间:2015-01-07 15:50:02

标签: vba ms-access access-vba

我正在尝试运行此代码块的编译器错误。显然,所选属性抛出错误:参数不是可选的。有没有更好的方法来做这个或我可以使用的不同的属性?

 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

2 个答案:

答案 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