プロが教える店舗&オフィスのセキュリティ対策術

商品ごとに異なるシール枚数の印刷をしたいのですが、印刷枚数においてテーブルのリンクがされたエクセルのセルに入力されている数字をそのまま印刷枚数とすることができますでしょうか?
また一回の印刷ボタンのクリックでそれぞれのセルにある枚数を全て印刷することは可能でしょうか?
(アクセス及びエクセルのバージョンは2000を使用)

具体的にいいますと
(1)テーブルのリンクをしたエクセルデータを使用しています。内容は(2)の通りです。
(2)エクセルデータの件数は10件であり、項目は、A1:商品コード、B1:商品名、C1:印刷枚数とします。
(3)C2~C11には、それぞれの異なる印刷枚数が入力されています。

どなたかご存知の方がいらっしゃいましたら教えてください。宜しくお願いします。

A 回答 (1件)

>商品ごとに異なるシール枚数の印刷をしたい


>テーブルのリンクがされたエクセルのセルに入力されている数字をそのまま印刷枚数とする
モジュールを使った方法とテーブルを使った方法があります。テーブルを使った方が簡単ですが・・。

テーブルを使う方法
連番を保存するテーブルを作ります。連番は1から印刷枚数の最大より多めに順に入力しておく。(例えばテーブル名をT連番としフィールドは連番とします)
リンクされているExcelシートのクエリでクエリを作ります。そのクエリにテーブル追加でT連番を追加し連番をクエリのフィールドに追加します。(ExcelソートのデータとT連番はリレーションを取らないように)連番の抽出条件に<=[印刷枚数]と記述します。
そのクエリを開くと印刷枚数分同じレコードが出来ます。
そのクエリをタックシートのレポートのレコードソースにして出力すれば印刷枚数に合わせて同じシールが出力されます。

モジュールを使う場合
レポートの詳細に非表示のテキストボックスを1つ作ります。例えばそのテキストボックス名をText1としExcelシートの印刷枚数のフィールド名を印刷枚数とした場合。
レポートの詳細のプロパティのフォーマット時のイベントに
Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
Dim 指定枚数 As Integer
指定枚数 = Me!印刷枚数
If [Text1] <> 指定枚数 Then
[Text1] = [Text1] + 1
Else
[Text1] = 1
End If
End Sub
同様に印刷時のプロパティに
Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
Dim 指定枚数 As Integer
指定枚数 = Me!印刷枚数
If [Text1] <> 指定枚数 Then
[Text1] = [Text1] + 1
Else
[Text1] = 1
End If
End Sub
を記述します。
これで出来ます。

試してみてください。
    • good
    • 1
この回答へのお礼

出来ました!!ありがとうございました。
とても助かりました。
テーブルのやり方は、どうしてこうなるのでしょうか。
もしお時間ありましたら、是非教えてください。
色々探したのですが、まだまだですね。反省と共に感謝いたします。

お礼日時:2005/11/30 17:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A