1

2007 ADP/ADE にアクセスします。

テーブルにバインドされたモーダルがあります。モーダルには、1 つのリストボックス コントロールと 2 つのボタンがあります。1 つはバインドされたレコードセットの値にアクセスするコードのサブルーチンを実行し、もう 1 つはモーダルを閉じます。

2 つの使用方法:

  1. リストボックスで値を選択し、ボタンをクリックしてサブルーチンを実行すると、問題なく動作します。

  2. リストボックスで値を選択し、キーボードの ENTER キーを 2 回押すと、同じサブルーチンを実行しようとしますが、バインドされたレコードの値に初めてアクセスしようとすると NULL エラーがスローされます。

したがって、方法 1 を使用すると、Me.RecordNumber のような値は 12345 を返します。方法 2 を使用すると、NULL になり、エラーになります。興味深いことに、リストボックス自体で選択された値は、どちらの方法でも使用できます。

重大なバグではありませんが、厄介です。この特定のモーダルで ENTER キーを使用するのではなく、ボタンをクリックするように人々に教えなければなりません。誰もこれを見たことがありますか?方法 2 を使用して、バインドされたレコードセットの値を使用できない理由は何ですか?

明確化のために編集: このエラーは、VBA コードの特定の部分とは無関係のようです。新しいモーダルを作成し、別のテーブルをバインドして、そのレコードセットのランダム データ列にアクセスしようとしました。同じ結果です。

エラーが表示されるスニペットを次に示します。null ではない値である 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.
4

0 に答える 0