VBAでレポートのレコードソースを変えるには、レポートを一度デザインモードで開き、変更後、閉じる必要があります。
Private Sub 印刷ボタン_Click()
Const ReportName = “レポート名”
Dim RecSourceName As String ‘レコードソース変数
Dim TitleName As String ’タイトル名変数
‘フォームで区分選択フレームを選択
Select Case Me![区分選択フレーム].Value
Case 1 ’区分1の場合
RecSourceName = “T_テーブル名A”
TitleName = “タイトル名A”
Case 2 ’区分2の場合
RecSourceName = “T_テーブル名B”
TitleName = “タイトル名B”
End Select
‘レポートをデザインモードでオープン <—–ここがキモです
DoCmd.OpenReport ReportName, acViewDesign
‘レコードソースのセット
Reports(ReportName).RecordSource = RecSourceName
‘タイトルのセット
Reports(ReportName)!タイトル.Caption = TitleName
‘レポートを保存しクローズ <—–開いたデザインモードを閉じます
DoCmd.Close acReport, ReportName, acSaveYes
‘レポートをプレビューで開く
DoCmd.OpenReport ReportName, acViewPreview
End Sub