回答編集履歴
3
書式の改善
answer
CHANGED
@@ -87,6 +87,7 @@
|
|
87
87
|
End Sub
|
88
88
|
```
|
89
89
|
イミディエイトの結果(印刷設定で変わります。)
|
90
|
+
|
90
91
|
```
|
91
92
|
360
|
92
93
|
3951
|
@@ -94,12 +95,13 @@
|
|
94
95
|
360
|
95
96
|
3951
|
96
97
|
7542
|
97
|
-
|
98
|
+
```
|
99
|
+
|
98
100
|
3列目は左から7542(TWIPS)の位置ということになります。(567TWIPS≒1cm)
|
99
101
|
|
100
102
|
レポートの「グループ化と並び替え」で下記の順で並び替えを昇順に設定します
|
101
|
-
顧客コード(テーブルの主キーフィールド名)
|
103
|
+
- 顧客コード(テーブルの主キーフィールド名)
|
102
|
-
Num
|
104
|
+
- Num
|
103
105
|
|
104
106
|
あとは詳細セクションのフォーマット時のイベントプロシージャを下記のように記述します。
|
105
107
|
|
@@ -112,4 +114,4 @@
|
|
112
114
|
End Sub
|
113
115
|
```
|
114
116
|
|
115
|
-
3列目判定は余裕をもって Me.Left > 7000 としましたが、Debug.Print Me.Leftの結果を元に調整してください。
|
117
|
+
3列目判定は余裕をもって `Me.Left > 7000` としましたが、`Debug.Print Me.Left` の結果を元に調整してください。
|
2
コード追記
answer
CHANGED
@@ -60,4 +60,56 @@
|
|
60
60
|
|
61
61
|
グループ毎の連番は下記を参考に。
|
62
62
|
|
63
|
-
[グループ毎連番を自動入力する関数 - hatena chips](https://hatenachips.blog.fc2.com/blog-entry-428.html)
|
63
|
+
[グループ毎連番を自動入力する関数 - hatena chips](https://hatenachips.blog.fc2.com/blog-entry-428.html)
|
64
|
+
|
65
|
+
サンプルコード追記
|
66
|
+
---
|
67
|
+
簡単なサンプルを作成してみました。
|
68
|
+
|
69
|
+
複数シールの出力は下記の方法にしました。
|
70
|
+
1.b. クエリを使う方法
|
71
|
+
|
72
|
+
レポートのレコードソースのクエリは下記になります。
|
73
|
+
テーブル1は実際のテーブル名にしてください。
|
74
|
+
|
75
|
+
```sql
|
76
|
+
SELECT テーブル1.*, T_Num.Num FROM テーブル1, T_Num
|
77
|
+
WHERE T_Num.Num<=[箱のシール枚数];
|
78
|
+
```
|
79
|
+
|
80
|
+
また、現在何列目かは、Me.Left で取得する方法にしました。
|
81
|
+
Me.Left で用紙の左からの距離を取得できます。
|
82
|
+
|
83
|
+
詳細セクションのフォーマット時に下記のように記述すると、イミディエイトウィンドウに結果が出力されます。
|
84
|
+
```vba
|
85
|
+
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
|
86
|
+
Debug.Print Me.Left
|
87
|
+
End Sub
|
88
|
+
```
|
89
|
+
イミディエイトの結果(印刷設定で変わります。)
|
90
|
+
```
|
91
|
+
360
|
92
|
+
3951
|
93
|
+
7542
|
94
|
+
360
|
95
|
+
3951
|
96
|
+
7542
|
97
|
+
```
|
98
|
+
3列目は左から7542(TWIPS)の位置ということになります。(567TWIPS≒1cm)
|
99
|
+
|
100
|
+
レポートの「グループ化と並び替え」で下記の順で並び替えを昇順に設定します
|
101
|
+
顧客コード(テーブルの主キーフィールド名)
|
102
|
+
Num
|
103
|
+
|
104
|
+
あとは詳細セクションのフォーマット時のイベントプロシージャを下記のように記述します。
|
105
|
+
|
106
|
+
```vba
|
107
|
+
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
|
108
|
+
If Me.Left > 7000 And Me.Num = 1 And Me.箱のシール枚数 = 2 Then
|
109
|
+
Me.NextRecord = False
|
110
|
+
Me.PrintSection = False
|
111
|
+
End If
|
112
|
+
End Sub
|
113
|
+
```
|
114
|
+
|
115
|
+
3列目判定は余裕をもって Me.Left > 7000 としましたが、Debug.Print Me.Leftの結果を元に調整してください。
|
1
説明追記
answer
CHANGED
@@ -40,4 +40,24 @@
|
|
40
40
|
|
41
41
|
[NewRowOrCol プロパティ (Access) | Microsoft Docs](https://docs.microsoft.com/ja-jp/office/vba/api/Access.Section.NewRowOrCol)
|
42
42
|
|
43
|
-
以上を組み合わせてコードを書いてみてください。それでうまくいかないなら、できたところまでのコードを提示してうまくいかない部分を質問してください。
|
43
|
+
以上を組み合わせてコードを書いてみてください。それでうまくいかないなら、できたところまでのコードを提示してうまくいかない部分を質問してください。
|
44
|
+
|
45
|
+
|
46
|
+
おまけ
|
47
|
+
---
|
48
|
+
もしデータの出力順を変更してもいいのなら、
|
49
|
+
枚数2のデータが連続すると、3列目の空白も連続することになり、用紙が無駄になる。
|
50
|
+
枚数1のレコード内で連番を取得(入力)
|
51
|
+
枚数2のレコード内で連番を取得(入力)
|
52
|
+
としておいて、この連番で並び替えを設定しておけば、
|
53
|
+
|
54
|
+
1列目 2列目 3列目
|
55
|
+
枚数1 枚数2 枚数2
|
56
|
+
枚数1 枚数2 枚数2
|
57
|
+
・・・
|
58
|
+
|
59
|
+
というように出力されて空白シールが最小限にできます。
|
60
|
+
|
61
|
+
グループ毎の連番は下記を参考に。
|
62
|
+
|
63
|
+
[グループ毎連番を自動入力する関数 - hatena chips](https://hatenachips.blog.fc2.com/blog-entry-428.html)
|