teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2019/10/10 07:10

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -1,3 +1,9 @@
1
+ DoCmdは非同期実行のため連続しての使用はできないようですね。
2
+
3
+ **以下では解決できなかった模様です**
4
+
5
+ ----
6
+
1
7
  添付ファイルのファイル名は、レポート名から変更できません。
2
8
 
3
9
  `DoCmd.CopyObject`でレポートを日付付きのレポート名にコピーしてから、コピーした日付付きのレポートを指定して`DoCmd.SendObject`を呼び出してください。

1

追記

2019/10/10 07:10

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -1,4 +1,28 @@
1
1
  添付ファイルのファイル名は、レポート名から変更できません。
2
2
 
3
3
  `DoCmd.CopyObject`でレポートを日付付きのレポート名にコピーしてから、コピーした日付付きのレポートを指定して`DoCmd.SendObject`を呼び出してください。
4
- 呼び出し後、日付付きのレポートは削除してください。
4
+ 呼び出し後、日付付きのレポートは削除してください。
5
+
6
+ ----
7
+ 以下追記:
8
+
9
+ DoCmdはすべて非同期で実行されるため処理の終了まで適当な時間待ちを入れないとうまく動かないので、`Private Sub コマンド10_Click()` の前の行に`Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)`の1行を入れて、Sleepを使用する。
10
+
11
+ ```VBA
12
+ Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
13
+ Private Sub コマンド10_Click()
14
+ ・・・略・・・
15
+ Dim ReportName As String
16
+ ReportName = "レポート_" & Format(Now(), "yyyymmdd_hhnnss")
17
+
18
+ DoCmd.CopyObject , ReportName, acReport, "レポート"
19
+ sleep 3000 '3000 msec (3 秒)待つ
20
+ DoCmd.OpenReport ReportName, acViewPreview, , "報告ID=" & Me!報告ID
21
+ sleep 3000 '3000 msec (3 秒)待つ
22
+ DoCmd.SendObject acSendReport, ReportName, acFormatPDF, atesaki, "", "", kenmei, zenbun, True, ""
23
+ sleep 3000 '3000 msec (3 秒)待つ
24
+ DoCmd.DeleteObject acRepory, ReportName
25
+
26
+ ・・・略・・・
27
+ End Sub
28
+ ```