- ベストアンサー
ACCESS2002にてバーコード印刷を連続用紙に指定枚数分だけしたい
ACCESS2002にてバーコード印刷を所定枚数分だけしたいと思います、複数のデータの中から、1データだけを抜粋して所定連続用紙に指定した枚数分だけを印刷したいので詳細に教えて下さい。当方初心者です
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 >印刷の処理の全てをアクセスVBAで組めれば、1レコードを読んで、複数回(行)印刷を繰り返せば済むことです。 しかしこれは通常の解説書にかいてあるようなものではない。 だから 1レコードを30(例)レコードに増やすVBAを紹介してみます。 処理は(1)指定した1人をクエリで選択(2)10レコードの増やす の2つのことをやってます。 社員テーブルのフィールドは氏名・所属部・計数 氏名が山田というレコードがあります。 社員10テーブルも同じフィールド構成。 Sub test10() 'レコードセットの操作/順読み Dim adoCON As ADODB.Connection Dim adoRS As ADODB.Recordset 'データベースのオープン(データベースオブジェクトの作成) Set adoCON = Application.CurrentProject.Connection 'レコードセットの作成(SELECT文の実行) Set adoRS = adoCON.Execute("select * from 社員 where 氏名='山田'") Set rs = New ADODB.Recordset rs.Open "社員10", adoCON, adOpenKeyset, adLockOptimistic '最終レコードまで順読み込みを行う 'Do Until adoRS.EOF = True MsgBox adoRS("氏名") '不要の場合はコメントアウトすること For i = 1 To 10 '10レコード複製の例、希望数に応じて変える rs.AddNew rs.Fields("氏名") = adoRS("氏名") rs.Fields("所属部") = adoRS("所属部") rs.Fields("計数") = adoRS("計数") 'レコードの更新 rs.Update Next i p01: 'Loop 'レコードセットのクローズ adoRS.Close rs.Close 'データベースのクローズ adoCON.Close 'オブジェクト変数のクリア Set adoRS = Nothing Set adoCON = Nothing Set rs = Nothing End Sub クエリのSQL文の氏名='山田'の部分は、その都度Inputboxででも聞いて、セットしてください。その書き方は解説書を見てください。 結果は社員10は ID 氏名 所属部 計数 197670 山田 営業部 23 197671 山田 営業部 23 197672 山田 営業部 23 197673 山田 営業部 23 197674 山田 営業部 23 197675 山田 営業部 23 197676 山田 営業部 23 197677 山田 営業部 23 197678 山田 営業部 23 197679 山田 営業部 23 のようになりました。 このあとの「レポート」を含め、あとは細かい点の修正力が必要ですが、私が短い文章で紹介できるのはこのあたりまです。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
私のレベルでは、十分判っているとはいえないのですが、難しいのか、回答がついてないので、ヒントだけでも、上げてみます。 ●>複数のデータの中から、1データだけを抜粋して これはクエリ(パラメータクエリ)でできます。 ●>所定連続用紙に プリンタ機器の問題とバーコードを印刷する用紙上の位置あわせの問題です。 ●>指定した枚数分だけを印刷したい この問題について述べたいのですが、印刷の処理の全てをアクセスVBAで組めれば、1レコードを読んで、複数回(行)印刷を繰り返せば済むことです。 ーーー ●しかし「アクセスのレポートで処理したい」というのが普通でしょう。 アクセスの「レポート」の「詳細」セクションは、順次レコードを次々印刷するのには向いている(そのように作られている)が、1レコードを複数行にわたって、繰り返すというのはできないように思う(やや自信なし)。 そこでクエリで選択された1レコードを、同じ内容のたとえば30レコード に増やすことができたとする。 そうすると、アクセスのレポートで印刷すればよい。 ●私は1レコードを30(例)レコードに増やすVBAを組んで見ました。しかし、質問者にわかってもらえるか判らず、VBAを使わず、例えば30レコードに増やす方法がないか、考えました。 しかし力不足で、思いつきません。 そういう点からの回答が出れば、解決の1方法になりますが。
補足
今晩は、●>指定した枚数分だけを印刷したい この問題について述べたいのですが、印刷の処理の全てをアクセスVBAで組めれば、1レコードを読んで、複数回(行)印刷を繰り返せば済むことです。 出来たらVBAを紹介して頂けますか?すみません
お礼
本当にありがとうございました、出来ました
補足
いつも有難うございます。早速貴殿が言われる通りやって見たいと思います。また助言を宜しくお願いします