访问 2007 ADP/ADE。
我有一个绑定到表格的模式。该模式有一个列表框控件和两个按钮。一个执行从绑定记录集中访问值的代码子例程,另一个关闭模式。
两种使用方法:
在列表框中选择一个值,然后单击按钮执行子程序,效果很好。
在列表框中选择一个值,然后按两次键盘上的 ENTER 键,它会尝试执行相同的子例程,但在第一次尝试访问绑定记录中的值时会抛出 NULL 错误。
所以使用方法 1,像 Me.RecordNumber 这样的值将返回 12345。使用方法 2,它将为 NULL 并出错。有趣的是,列表框中的选定值本身可以使用任何一种方法。
不是一个真正的严重错误,但它很烦人。我必须教人们点击按钮,而不仅仅是在这个特定的模式上使用 ENTER 键。有没有人见过这个?知道为什么使用方法#2 绑定记录集中的值不可用吗?
编辑澄清: 此错误似乎与任何特定的 VBA 代码无关。我什至创建了一个新模式,绑定了一个不同的表,并且只是尝试访问该记录集上的一个随机数据列。结果相同。
这是出现错误的片段。尝试获取 RecordType 时出错,这是一个永远不会为空的值。
Private Sub cmdAddFromTemplate_Click()
On Error GoTo Err_MyErrorHandler
Dim myTemplateName As String
Dim myDepartment As String
Dim i As Integer
'Did they provide a valid template name?
If Me.listTemplateToImport.ItemsSelected.Count > 0 Then
'Cycle through list and build criteria
For i = 0 To Me.listTemplateToImport.ListCount - 1
'Is this status selected?
If Me.listTemplateToImport.Selected(i) Then
'Grab selected template name
myTemplateName = Trim(Me.listTemplateToImport.ItemData(i))
End If
Next i
Else
'Warn and exit
MsgBox "You must select a valid template name.", vbOKOnly, "STEP: Action Canceled"
Exit Sub
End If
'Grab Bound Values
myDepartment = Me.RecordType 'NULL error here when using ENTER key.