0

MS Access の「コード ビルダ」セクションで、レコードのボタンからキャプションを取得するコードを作成しようとしています。フィールド " RecordID、Caption、および Report to Run を含む Main Menu という名前のテーブルがあります。MainMenu テーブルのキャプション名に基づいてキャプションを割り当てるには、このボタンが必要です。

元。ボタン A (レコード ID = 1 、キャプション = Borrower 、実行するレポート = rptCurrentBorrowers)。

クリックすると、ボタン A のレコードからキャプションを読み取って、このボタンのキャプションを = Borrower にする必要があります。MainMenu テーブルから取得する必要があるボタンにキャプションを具体的に書き込むことはできません。

4

2 に答える 2

1

ゴード・トンプソンが正しい場所を教えてくれた。そのため、多くの調査を行った結果、このタイプのコードを実装する方法だけでなく、なぜそれが役立つのかを発見することができました。DLookup は、データベース内のレコードまたはクエリを検索し、条件に応じてスクリプト化された場所に情報をプルするだけです。ボタンのキャプションにこれを実装する必要がある理由は、エンド ユーザーが実際のコードを操作するのではなく、テーブルからボタンのキャプションを変更できるようにするためです。これは、機能するボタンを備えた完成した VBA コードです。

Private Sub Form_Open(Cancel As Integer)
    rptBorrower.Caption = DLookup("Caption", "MainMenu", "ReportID = 1")
    rptMediaList.Caption = DLookup("Caption", "MainMenu", "ReportID = 2")
    rptPastDue.Caption = DLookup("Caption", "MainMenu", "ReportID = 3")
End Sub


'' This code defines the Borrower Button
Private Sub rptBorrower_Click()
    rptBorrower.Caption = DLookup("Caption", "MainMenu", "ReportID = 1")

    Dim varBorrower As Variant
    varBorrower = DLookup("[ReportToRun]", "MainMenu", "[ReportID] = 1")
    DoCmd.OpenReport varBorrower, acViewReport

    rptBorrower_Click_Exit:
    Exit Sub
End Sub

'' This code is defines the Media List Button

Private Sub rptMediaList_Click()
    rptMediaList.Caption = DLookup("Caption", "MainMenu", "ReportID = 2")

    Dim varMediaList As Variant
    varMediaList = DLookup("[ReportToRun]", "MainMenu", "[ReportID] = 2")
    DoCmd.OpenReport varMediaList, acViewReport

    rptMediaList_Click_Exit:
    Exit Sub
End Sub

'' This code defines the Past Due Report Button

Private Sub rptPastDue_Click()
    rptPastDue.Caption = DLookup("Caption", "MainMenu", "ReportID = 3")

    Dim varPastDue As Variant
    varPastDue = DLookup("[ReportToRun]", "MainMenu", "[ReportID] = 3")
    DoCmd.OpenReport varPastDue, acViewReport

    rptPastDue_Click_Exit:
    Exit Sub
End Sub
于 2013-03-24T08:48:49.350 に答える
1

私の推測では、このフォームは他のテーブルのレコードを表示しており、それらのレコードをナビゲートするときに、[メイン メニュー] テーブルのルックアップに基づいてボタンのキャプションを変更したいと考えています。

On Currentその場合、そのフォームのイベントで次のようなステートメント( Sub Form_Current()) を使用すると、うまくいく可能性があります。

me.Button_A.Caption = DLookup("Caption", "Main Menu", "RecordID=" & me.RecordID.Value)
于 2013-03-22T23:24:37.950 に答える