回答編集履歴

2

追記

2019/10/10 07:10

投稿

Y.H.
Y.H.

スコア7918

test CHANGED
@@ -1,3 +1,15 @@
1
+ DoCmdは非同期実行のため連続しての使用はできないようですね。
2
+
3
+
4
+
5
+ **以下では解決できなかった模様です**
6
+
7
+
8
+
9
+ ----
10
+
11
+
12
+
1
13
  添付ファイルのファイル名は、レポート名から変更できません。
2
14
 
3
15
 

1

追記

2019/10/10 07:10

投稿

Y.H.
Y.H.

スコア7918

test CHANGED
@@ -5,3 +5,51 @@
5
5
  `DoCmd.CopyObject`でレポートを日付付きのレポート名にコピーしてから、コピーした日付付きのレポートを指定して`DoCmd.SendObject`を呼び出してください。
6
6
 
7
7
  呼び出し後、日付付きのレポートは削除してください。
8
+
9
+
10
+
11
+ ----
12
+
13
+ 以下追記:
14
+
15
+
16
+
17
+ DoCmdはすべて非同期で実行されるため処理の終了まで適当な時間待ちを入れないとうまく動かないので、`Private Sub コマンド10_Click()` の前の行に`Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)`の1行を入れて、Sleepを使用する。
18
+
19
+
20
+
21
+ ```VBA
22
+
23
+ Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
24
+
25
+ Private Sub コマンド10_Click()
26
+
27
+ ・・・略・・・
28
+
29
+ Dim ReportName As String
30
+
31
+ ReportName = "レポート_" & Format(Now(), "yyyymmdd_hhnnss")
32
+
33
+
34
+
35
+ DoCmd.CopyObject , ReportName, acReport, "レポート"
36
+
37
+ sleep 3000 '3000 msec (3 秒)待つ
38
+
39
+ DoCmd.OpenReport ReportName, acViewPreview, , "報告ID=" & Me!報告ID
40
+
41
+ sleep 3000 '3000 msec (3 秒)待つ
42
+
43
+ DoCmd.SendObject acSendReport, ReportName, acFormatPDF, atesaki, "", "", kenmei, zenbun, True, ""
44
+
45
+ sleep 3000 '3000 msec (3 秒)待つ
46
+
47
+ DoCmd.DeleteObject acRepory, ReportName
48
+
49
+
50
+
51
+ ・・・略・・・
52
+
53
+ End Sub
54
+
55
+ ```