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

こんにちわ
当方、ACCESS VBAを使っていてただいまとても困った状態に陥っています。

教科テーブルの中に1年というYes/No型のデータが入っているとします。

それにチェックが入っているものだけを抽出して開くというようにしたいのですが、うまくいきません。

以下の文のように記述してみましたが、うまくいきませんでした。

rs.Open "SELECT * FROM 教科テーブル WHERE 1年='" & True & "';", cn

エラーメッセージは
'1年='True" の構文エラー;演算子がありません
とでました。

どなたか助けてください。
お願いします。

A 回答 (3件)

#1の方の回答では



>'1年='True" の構文エラー;演算子がありません

これの対処になっていません。本来なら「抽出条件でデータ型が一致しません」となるはずです。
ということでもう1ヶ所修正が必要な個所があります。


1年というフィールドですが、実はフィールド名の先頭を数字にするのはお勧めしません。SQL文中でフィールド名ではなく数値とみなされるからです。

このため、フィールド名であるということを明示的に示す必要がありますので、

rs.Open "SELECT * FROM 教科テーブル WHERE [1年] = True;", cn

とする必要があります。
    • good
    • 0

既に正解が出ているので、余計なお世話かもしれません(^^;



「1年」フィールドが Yes/No 型で設計されているようですが、「学年」フィールドなどの名称で、 数値型 にした方が使い易いのでは?
「それは承知」で理由が有って1年とされているのでしたら失礼しました。
    • good
    • 0

> rs.Open "SELECT * FROM 教科テーブル WHERE 1年='" & True & "';", cn



Yes/No 型は、数値型と同じ扱いなのでシングルクォーテーションが不要ですね。

rs.Open "SELECT * FROM 教科テーブル WHERE 1年=" & True & ";", cn
    • good
    • 0

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