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

ACCESS2000 抽出されたレコードのテキストボックスに値を一括で代入したい
宜しくお願い致します。
テーブルには、商品名、金額、数量、出荷予定日、出荷確認の5つのフィールドが
あり、当日に出荷する予定の商品をクエリで抽出し、該当するレコードをフォームに
表形式で表示させています。
出荷後、出荷確認のテキストボックスに”済み”と入れたいので、現在、フォーム
の隅に、既定値を”済み”としたテキストボックスを作り、フォーム内のコマンド
ボタンを1回押すごとに、マクロ(値の代入)を実行させ、出荷確認に”済み”を代入
させています。
しかし、この方法だと、抽出されたレコードが100件あると、100回押さないといけ
ません。一括で代入させる方法を探しているのですが、見つかりません。素人故、
複雑な事は出来ませんので、簡単な方法がありましたら、ご教授ください。
また、一度代入したものを、一括で消す方法も合わせてご教授いただければ幸い
です。
宜しくお願い致します。

A 回答 (3件)

こんばんは。


>該当するレコードをフォームに表形式で表示させています。
これらを全て"済み"で良いという前提であれば、出荷確認列自体を反転選択し
(エクセルの列選択と同じ)、CTRL+Hで置き換えウィンドウを出して、
置換させる所に 済み といれて全て置換えを行えばいかがでしょうか?

>一度代入したものを、一括で消す方法
戻すべきデータの抽出条件が出来るクエリで表示出来れば、前述と同じ手順で
検索条件に 済み を指定し 置換えを空白にして全て置換えでなると思います。
    • good
    • 0

一応、フォームの設定として帳票フォームとします。



(1)
フォームにボタンを二つ。ボタンの名前を
cmd済 と cmd取消 とします。

フォームのデザインビューでcmd済ボタンの上で右クリックし
プロパティを表示し、クリック時の右端をクリックし、
ビルダの選択でコードビルダをクリックします。
コード表が表示されるので以下のコードになるように

Private Sub cmd済_Click()

End Sub
の間にコードをコピーし張り付けて保存してください。

Private Sub cmd済_Click()
Dim rs As Recordset
Set rs = Me.RecordsetClone

rs.MoveFirst
Do Until rs.EOF
rs.Edit
rs!出荷確認 = "済み"
rs.Update
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
End Sub


同様に、cmd取消ボタンについても行ない、保存してください。

Private Sub cmd取消_Click()
Dim rs As Recordset
Set rs = Me.RecordsetClone

rs.MoveFirst
Do Until rs.EOF
rs.Edit
rs!出荷確認 = Null
rs.Update
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
End Sub

(2)
次に、コード表のツールバーのツールをクリックし、
参照設定を選択してください。
その中のMicrosoft DAO 3.6 Object Librayにチェック
をいれてください。もしチェックが入っていれば入れる
必要はありません。
もし、Microsoft ActiveX Data Objects x.x Library
にチェックが入っていたらはずしておいてください。
x.xは2.1とかそういう数値が入っています。

以上で完了です。フォームがサブフォームなど設定が
違っていたらまた書き込んでください。
    • good
    • 0
この回答へのお礼

早速の丁寧で分かり易い回答を頂きまして、誠にありがとう
ございました。お陰様で、代入も消去も一括処理することが
でき、これまで数分掛かっていた作業が、ワンクリックで済む
ようになります。
この度は、本当にありがとうございました。重ねて御礼申し
上げます。

お礼日時:2010/06/27 01:28

抽出したレコードを表示するのは


サブフォームですか、あるいは
サブフォームを持たない帳票フォームですか。
    • good
    • 0

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