2

我有一个访问表单,其中包含要根据下拉列表的选择填充的记录集。我已经测试了查询,如果我直接设置变量数据,它肯定可以工作。但是,我似乎无法让它工作。我试图设置隐藏文本框的值以查看是否可以通过这种方式访问​​数据,但是,我继续收到运行时错误:2185 '您无法引用控件的属性或方法除非控件有焦点。

这是子程序中的代码:

Private Sub pickdate_AfterUpdate()
  Me![pickdate].SetFocus
  Me![tb_HiddenDate] = Me![pickdate].Text
  Forms!mainForm!subForm.Requery
End Sub

顺便说一句,如果我这样做Debug.Print(Me![pickdate]),它只会返回所选项目的索引。我也一样![pickdate].Value。Me![pickdate].Text 会引发异常,即使在 Pickdate 的 AfterUpdate 处理程序中也是如此。

我查看了这个线程:MS Access: An error in vba of my form,但在这种情况下不起作用。我现在不知所措,试图弄清楚为什么这没有按预期工作。有人有其他建议吗?

4

1 回答 1

2

暂时更改更新后程序以查看您正在处理的内容。可能pickdate包括 2 列:第一列是数字;第二个是您要检索的文本。

Private Sub pickdate_AfterUpdate()
Dim i As Long
Debug.Print "pickdate Value: " & Me![pickdate]
For i = 0 To (Me.pickdate.ColumnCount - 1)
    Debug.Print "Column " & i, Me.pickdate.Column(i)
Next
'Forms!mainForm!subForm.Requery
End Sub

在立即窗口 ( Ctrl+ g) 中查看输出。

于 2013-01-17T17:28:16.983 回答