Quantcast
Channel: OKWAVE 最新質問([技術者向] コンピューター/205)【本日】
Viewing all articles
Browse latest Browse all 38062

Accessでかぶらない連番をつけてレポート印刷

$
0
0
Accessで得意先に渡す納品書を作っています。 フォーム:F_納品 の印刷ボタンを押すと、テーブルの内容を、指定した枚数分に連番をつけて印刷したいです。 テーブル:T_納品 に 「id」「会社名」「コード1」「コード2」「伝番」があります。 「id」はパターンを登録して呼び出すためのもので、レポート1枚には「会社名」「コード1」「コード2」の3つと、「伝番」計算ソースとするバーコード型式の連番を出力します。 連番は日付部のYYMMDD 6ケタと 000~999までの3ケタの連番部で表されます 以下をボタンのクリック時のイベントプロシージャに入力しましたが どのようにテーブルからデータを取ってきたり レポート内の値に反映すればいいのかわかりません。 Private Sub 印刷_Click() '宣言 Dim varCopies As Variant '印刷枚数の入力 Dim barCode As Variant 'バーコードの値 Dim num As Variant 'カウンタ変数 Dim day As Variant '日付変数 '任意の印刷枚数の値を入力しvarCopiesに代入 varCopies = InputBox("印刷枚数を設定してください", "印刷部数の指定") 'エラーメッセージ If Len(varCopies) = 0 Then Exit Sub End If If IsNumeric(varCopies) = False Then MsgBox "部数は数字で入力してください", vbOKOnly + vbCritical, "入力エラー" Exit Sub ElseIf CLng(varCopies) = 0 Then MsgBox "部数は0以上で入力してください", vbOKOnly + vbCritical, "入力エラー" Exit Sub End If 'dayの値を[YYMMDD]型式にして1000倍 day = Format$(Date, "yymmdd") * 1000 '伝番に入っているデータが前の日付ならdayの値を伝番に代入 If "伝番" < day Then 伝番 = day End If 'レポートのバーコードの値に伝番を入れる barCode = "伝番" '印刷枚数で入力した値まで繰り返し Do While num < varCopies 'レポートを開く DoCmd.OpenReport "R_納品", acViewPreview, , "[id] =" & Me.id 'カウンタ変数に加算 num = num + 1 'バーコードの値に1を加算 barCode = barCode + 1 'バーコードの値をレポートに反映したい '印刷 DoCmd.PrintOut acPrintAll 'レポートを閉じる DoCmd.Close acReport, "R_納品" Loop End Sub 実行しようとすると、バーコードの値を加算するところで”型が一致しません”とでます 仮にうまくこのプログラムが動いても、このままでは 同じ日に2回以上の印刷を行うと、二回目の印刷も連番部が001から始まってしまいます どのような手順や処理を行えば、意図通りに動作するでしょうか よろしくお願いします

Viewing all articles
Browse latest Browse all 38062

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>