- ベストアンサー
チェックボックスでレコードの全選択
ACCESS2000をWin98で使用しています。 今回、とてもややこしいのですが・・・ マスタテーブルAのワークスペーステーブルBを作成しました。レコードの抽出はマスタAからクエリでワークスペースBに出しています。 フォームのサブフォームには、ワークスペースBをリストで表示しています。 そのリストにチェックボックスがあるのですが、そのチェックボックスをボタン1つで全選択・解除を行いたいと思っています。 現在は「チェック」フィールドがありません。というエラーがでています。 何がやり方を教えていただけないでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No1です フォームの参照ですがサブフォームなんですよね そうすると、 Forms![フォーム名1][フォーム名2]![チェック] = True ではうまくいきませんか? フォーム名1がメインフォーム、フォーム名2がサブフォームです 単純に、メインフォームを参照しているようなきがします すでに試されてたらごめんなさい
その他の回答 (2)
- yoisho
- ベストアンサー率64% (331/516)
メインフォームのコマンドボタンから操作を行うなら、 Me![サブフォームのコントロール名].Form![チェック] = True または(fuugaさんがおっしゃっているように) Forms![メインフォーム名]![サブフォームのコントロール名].Form![チェック] = True ですが、これですとサブフォームのカレントレコードしか更新されません。 全選択・解除を行うなら、例えば更新クエリーを利用する方法だと、 DoCmd.RunSQL "UPDATE ワークスペースB SET ワークスペースB.チェック = True" Me![サブフォームのコントロール名].Form.Requery のようにすれば可能だと思います。
お礼
Docmd.RunSQL"UPDATE ワークスペース名 SET ワークスペース名.チェック = True;" ME![サブフォーム名].Requery で成功することができました。 ご教授ありがとうございました!!
- fuuga
- ベストアンサー率29% (106/359)
参照しているテーブルにYes/No型のフィールドが無いためなのでは?
お礼
ありがとうございます。 マスタAにも、ワークBにも、[チェック]というYes/No型のフィールドがあります。 ボタンのクリックイベントで、 Forms![フォーム名]![チェック] = True このように記述するのは文法的に間違っているでしょうか?
お礼
サブフォームの指定をしてから、Requeryを行うと成功しました。 ありがとうございました!!