3

文字列引数に基づいて異なるリストボックスを返したい関数があります。関数は次のとおりです。

    Here is the function:
Private Function returnList(name As String) As AccessObject
If name = "app" Then
    returnList = Me.Controls("List61")
    'I have also tried the following: 
    'returnList = Me.List61, returnList = Forms![Daily Reports]![List61]
ElseIf name = "lpar" Then
'..several more cases
End If
End Function

呼び出そうとすると、「実行時エラー '91': オブジェクト変数または With ブロック変数が設定されていません」というメッセージが表示されます。デバッガーを使用すると、list61(Me.list61, Me.Controls("List61")) への参照が null であることがわかります。

誰でもこれを修正する方法を知っていますか? どんな助けでも大歓迎です。

4

1 に答える 1

0

注意すべき最も重要なことは次のとおりです。「変数」の代わりに「オブジェクト」を扱うようになったので、オブジェクト変数の前に「セット」という単語を入れる必要があります。また、AccessObject タイプを ListBox に変更します。

Private Function returnList(name As String) As ListBox
If name = "app" Then
    Set returnList = Me.Controls("List61")
    'I have also tried the following:
    'returnList = Me.List61, returnList = Forms![Daily Reports]![List61]
ElseIf name = "lpar" Then
'..several more cases
End If
End Function
于 2015-08-12T21:02:24.343 に答える