プロが教えるわが家の防犯対策術!

ACCESS2000をWin98で使用しています。

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

A 回答 (3件)

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

    • good
    • 0
この回答へのお礼

ありがとうございます。
マスタAにも、ワークBにも、[チェック]というYes/No型のフィールドがあります。

ボタンのクリックイベントで、
Forms![フォーム名]![チェック] = True
このように記述するのは文法的に間違っているでしょうか?

お礼日時:2003/06/12 14:50

No1です


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

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

お礼日時:2003/06/12 17:29

メインフォームのコマンドボタンから操作を行うなら、



Me![サブフォームのコントロール名].Form![チェック] = True
または(fuugaさんがおっしゃっているように)
Forms![メインフォーム名]![サブフォームのコントロール名].Form![チェック] = True

ですが、これですとサブフォームのカレントレコードしか更新されません。

全選択・解除を行うなら、例えば更新クエリーを利用する方法だと、

DoCmd.RunSQL "UPDATE ワークスペースB SET ワークスペースB.チェック = True"
Me![サブフォームのコントロール名].Form.Requery

のようにすれば可能だと思います。
    • good
    • 3
この回答へのお礼

Docmd.RunSQL"UPDATE ワークスペース名 SET ワークスペース名.チェック = True;"
ME![サブフォーム名].Requery

で成功することができました。
ご教授ありがとうございました!!

お礼日時:2003/06/12 17:33

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

関連するカテゴリからQ&Aを探す