[リストへもどる]
一括表示

投稿時間:2004/07/18(Sun) 22:39
投稿者名:miro
Eメール:
URL :
タイトル:
VBからAccessのコントロールを変数で指定する方法
webで調べたのですが、"VBから"操作する方法が見つからなかったので
ご存知の方、いらっしゃいましたらお教え願えませんでしょうか。

VBからAccessのレポートを操作して印刷するプログラムを作成しています。
レポートにラベルを貼り付けて、そのラベルに
指定した文字を表示することは実現できました。
しかし、複数のラベルを指定する必要があり
下記のようにしてみましたが
"指定した式で参照されている 'strNum' フィールドが見つかりません。"
というエラーが発生してしまいます。
コントロールの名称を変数で指定することはできないのでしょうか?
環境はWindows XP + VB6.0(SP5)です。

Private Sub Command1_Click()

    Dim db_Name As String
    Dim Report_Name As String
    Dim strNum As String
    Dim intCnt As Integer
    
On Error GoTo Err

    db_Name = App.Path & "\DB\" & "List.mdb"
    Report_Name = "List"
    
    Set ole_Access = New Access.Application
    ole_Access.OpenCurrentDatabase db_Name, False
    ole_Access.DoCmd.OpenReport Report_Name, acDesign

    For intCnt = 1 To 5
        strNum = "lblNum" & CStr(intCnt)
        ole_Access.Reports!(Report_Name)![strNum].Caption = "文字を表示" & CStr(intCnt)
    Next intCnt
    
    ole_Access.CloseCurrentDatabase
    Set ole_Access = Nothing

    Exit Sub
    
Err:
    MsgBox (Err.Description)
    ole_Access.CloseCurrentDatabase
    Set ole_Access = Nothing

End Sub

投稿時間:2004/07/19(Mon) 11:02
投稿者名:よろずや
URL :
タイトル:
Re: VBからAccessのコントロールを変数で指定する方法
>         ole_Access.Reports!(Report_Name)![strNum].Caption = "文字を表示" & CStr(intCnt)
          ole_Access.Reports!(Report_Name)!(strNum).Caption = "文字を表示" & CStr(intCnt)

投稿時間:2004/07/19(Mon) 11:46
投稿者名:miro
Eメール:
URL :
タイトル:
Re^2: VBからAccessのコントロールを変数で指定する方法
よろずや さん
返信、ありがとうございます。

ご提示されているように、[]を()に変えてみたのですが

コンパイルエラー:
修正候補:識別子または角かっこ([])で囲む必要がある名前が含まれています。

というメッセージが表示されました。
よろずやさんの環境で動作しているのであれば、環境の違いだと思うのですが
参照設定など、教えていただけませんでしょうか?
宜しくお願い致します。

> >         ole_Access.Reports!(Report_Name)![strNum].Caption = "文字を表示" & CStr(intCnt)
>           ole_Access.Reports!(Report_Name)!(strNum).Caption = "文字を表示" & CStr(intCnt)

投稿時間:2004/07/19(Mon) 23:14
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^3: VBからAccessのコントロールを変数で指定する方法
> > >         ole_Access.Reports!(Report_Name)![strNum].Caption = "文字を表示" & CStr(intCnt)
> >           ole_Access.Reports!(Report_Name)!(strNum).Caption = "文字を表示" & CStr(intCnt)
              ole_Access.Reports(Report_Name)(strNum).Caption = "文字を表示" & CStr(intCnt)
または、
              ole_Access.Reports(Report_Name).Controls(strNum).Caption = "文字を表示" & CStr(intCnt)
という感じで如何でしょう。試していませんけど。

投稿時間:2004/07/20(Tue) 00:06
投稿者名:miro
Eメール:
URL :
タイトル:
Re^4: VBからAccessのコントロールを変数で指定する方法
魔界の仮面弁士 さん
返信、ありがとうございます。

> ole_Access.Reports(Report_Name)(strNum).Caption = "文字を表示" & CStr(intCnt)

上記の方法で、期待する動作が実現できました!
ありがとうございました!!