アプリ版:「スタンプのみでお礼する」機能のリリースについて

ACCESS2002にてバーコード印刷を所定枚数分だけしたいと思います、複数のデータの中から、1データだけを抜粋して所定連続用紙に指定した枚数分だけを印刷したいので詳細に教えて下さい。当方初心者です

A 回答 (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
のようになりました。
このあとの「レポート」を含め、あとは細かい点の修正力が必要ですが、私が短い文章で紹介できるのはこのあたりまです。

この回答への補足

いつも有難うございます。早速貴殿が言われる通りやって見たいと思います。また助言を宜しくお願いします

補足日時:2005/10/11 19:42
    • good
    • 0
この回答へのお礼

本当にありがとうございました、出来ました

お礼日時:2005/10/12 21:47

私のレベルでは、十分判っているとはいえないのですが、難しいのか、回答がついてないので、ヒントだけでも、上げてみます。


●>複数のデータの中から、1データだけを抜粋して
これはクエリ(パラメータクエリ)でできます。
●>所定連続用紙に
プリンタ機器の問題とバーコードを印刷する用紙上の位置あわせの問題です。
●>指定した枚数分だけを印刷したい
この問題について述べたいのですが、印刷の処理の全てをアクセスVBAで組めれば、1レコードを読んで、複数回(行)印刷を繰り返せば済むことです。
ーーー
●しかし「アクセスのレポートで処理したい」というのが普通でしょう。
アクセスの「レポート」の「詳細」セクションは、順次レコードを次々印刷するのには向いている(そのように作られている)が、1レコードを複数行にわたって、繰り返すというのはできないように思う(やや自信なし)。
そこでクエリで選択された1レコードを、同じ内容のたとえば30レコード
に増やすことができたとする。
そうすると、アクセスのレポートで印刷すればよい。
●私は1レコードを30(例)レコードに増やすVBAを組んで見ました。しかし、質問者にわかってもらえるか判らず、VBAを使わず、例えば30レコードに増やす方法がないか、考えました。
しかし力不足で、思いつきません。
そういう点からの回答が出れば、解決の1方法になりますが。

この回答への補足

今晩は、●>指定した枚数分だけを印刷したい
この問題について述べたいのですが、印刷の処理の全てをアクセスVBAで組めれば、1レコードを読んで、複数回(行)印刷を繰り返せば済むことです。

出来たらVBAを紹介して頂けますか?すみません

補足日時:2005/10/10 19:55
    • good
    • 0

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