• ベストアンサー

チェックボックスでレコードの全選択

ACCESS2000をWin98で使用しています。 今回、とてもややこしいのですが・・・ マスタテーブルAのワークスペーステーブルBを作成しました。レコードの抽出はマスタAからクエリでワークスペースBに出しています。 フォームのサブフォームには、ワークスペースBをリストで表示しています。 そのリストにチェックボックスがあるのですが、そのチェックボックスをボタン1つで全選択・解除を行いたいと思っています。 現在は「チェック」フィールドがありません。というエラーがでています。 何がやり方を教えていただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • fuuga
  • ベストアンサー率29% (106/359)
回答No.2

No1です フォームの参照ですがサブフォームなんですよね そうすると、 Forms![フォーム名1][フォーム名2]![チェック] = True ではうまくいきませんか? フォーム名1がメインフォーム、フォーム名2がサブフォームです 単純に、メインフォームを参照しているようなきがします すでに試されてたらごめんなさい

noname#47454
質問者

お礼

サブフォームの指定をしてから、Requeryを行うと成功しました。 ありがとうございました!!

その他の回答 (2)

  • yoisho
  • ベストアンサー率64% (331/516)
回答No.3

メインフォームのコマンドボタンから操作を行うなら、 Me![サブフォームのコントロール名].Form![チェック] = True または(fuugaさんがおっしゃっているように) Forms![メインフォーム名]![サブフォームのコントロール名].Form![チェック] = True ですが、これですとサブフォームのカレントレコードしか更新されません。 全選択・解除を行うなら、例えば更新クエリーを利用する方法だと、 DoCmd.RunSQL "UPDATE ワークスペースB SET ワークスペースB.チェック = True" Me![サブフォームのコントロール名].Form.Requery のようにすれば可能だと思います。

noname#47454
質問者

お礼

Docmd.RunSQL"UPDATE ワークスペース名 SET ワークスペース名.チェック = True;" ME![サブフォーム名].Requery で成功することができました。 ご教授ありがとうございました!!

  • fuuga
  • ベストアンサー率29% (106/359)
回答No.1

参照しているテーブルにYes/No型のフィールドが無いためなのでは?

noname#47454
質問者

お礼

ありがとうございます。 マスタAにも、ワークBにも、[チェック]というYes/No型のフィールドがあります。 ボタンのクリックイベントで、 Forms![フォーム名]![チェック] = True このように記述するのは文法的に間違っているでしょうか?

関連するQ&A