【问题标题】:Run time error 2185运行时错误 2185
【发布时间】:2013-12-20 12:17:38
【问题描述】:

我收到run time error 2185“除非控件具有焦点,否则您不能引用控件的属性或方法...”

这是我正在使用的代码。

Private Sub Command5_Click()
    Dim cardno As Integer
    cardno = cardnumber.Text
    DoCmd.OpenForm "search_card_number", acNormal, , WHERE & cardno = [Account Number]
End Sub

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    引用控件的.Text 属性要求它具有焦点。 只需删除它,它应该可以工作(默认为.Value

    尝试按照 Access 的建议放入 SetFocus 方法,即

      Private Sub Command5_Click()
        Dim cardno As Integer
    
         cardnumber.SetFocus   <-------Use this line to set the focus        
    
        cardno = cardnumber.Text
      DoCmd.OpenForm "search_card_number", acNormal, , WHERE & cardno = [Account Number]
     End Sub
    

    【讨论】:

    • 我得到一个运行时错误 6,溢出。但 carnumber.text 确实得到了我在文本框中输入的值
    • 我猜数据不能再被整数保存了。尝试将行 Dim cardno As Integer 更改为 Dim cardno As Long 应该可以解决眼前的问题。
    • 我收到 2465 运行时错误,并以黄色突出显示 Docmd 部分。
    【解决方案2】:

    那个运行时错误意味着You can't reference a property or method for a control unless the control has the focus.

    当控件获得焦点时,您可以使用.Text

    【讨论】:

    • 如果我将文本更改为文本框,我会得到一个未找到的数据和方法成员
    • 使用cardno = cardnumber 而不是cardno = cardnumber.Text
    【解决方案3】:

    我的解决方案是在更新控件属性之前测试控件是否有焦点,

    这里我将组合框搜索更新为通配符搜索

    Private Sub Combo_Change()
        'Note control passed to after update sub, then returns to change sub where error occurs
        'Combo is the name of your combo box
    
        If (Combo Is Me.ActiveControl) Then
            Me.Combo.RowSource = _
                "SELECT [CCL sites v Contract No].ContractID, [CCL Sites].[Site Address], [CCL sites v Contract No].[Contract No] " & _
                "FROM [CCL sites v Contract No] INNER JOIN [CCL Sites] ON [CCL sites v Contract No].SiteID = [CCL Sites].SiteID " & _
                "WHERE [CCL Sites].[Site Address] LIKE '*" & Me.Combo.Text & "*' " & _
                "ORDER BY [CCL Sites].[Site Address]"
    
            Me.Combo.Dropdown
    
        End If
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多