- ベストアンサー
コントロールの違う複数条件
個人情報のフォームから複数条件でレコードを抽出したいと考えています。 オプションボタンとコンボボックスとトグルボタンなのですが、ANDを使って条件をつなごうと思っているのですが、なかなかうまくいきません。 この方法以外でもよい方法があれば教えて欲しいのですが。 また抽出したフォームに修正や追加や削除もしたいと思っています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 多分連結うんぬんは関係ないと思います。 とりあえず、このコードが書かれてあるプロシージャ([抽出]ボタンのクリックイベント?)の先頭にブレークポイントを設定して、1行実行してみて、どこでエラーが出るか確認して下さい。 また、会社名のところでエラーが出るようなら、その時のcbo会社名.Valueに入っている値を調べてみて下さい。 多分エラーになるとデバッグモードに入れるので、その時にイミディエントウィンドウに、 ?Me!cbo会社名.Value と入力してEnterを押すと、値が出力されます。 あと、文字列の比較は「'」で括らないといけませんが、cbo会社名.Valueの前後にちゃんとついてますか。 それと、フィールド名やコントロール名に空白やハイフンが入っている場合は、[]で括らなくてはいけません。 例)cboF 会社名.Value→[cboF 会社名].Value とりあえず、気づいたのはこのくらいです。 では。
その他の回答 (2)
- maruru01
- ベストアンサー率51% (1179/2272)
再びmaruru01です。 抽出方法としては、 1.まず、全件でフォームを開いておいて、Filterプロパティに抽出条件を設定し、FilterOnプロパティをTrueにする。 2.予めサブフォームを作成しておき、DoCmd.OpenFormの第3引数に抽出条件を設定して実行する。 3.抽出結果で一時的なテーブルを作成し、それをサブフォームのソースに設定して開く。 などがあります。 いずれにしろ、抽出条件の文字列を作成することに変わりはありません。 それで、抽出条件の書き方ですが、個人情報テーブルの各フィールドのデータ型で書き方が異なります。 まず、在職/退職はYes/No型とします。(在職がTrue) condShoku = "[フィールド名] = " & chk在職.Value 次に、会社名はText型(またはMemo型)として、 condKaisha = "[フィールド名] = '" & cbo会社名.Value & "'" そして、ふりがなは、前に回答しましたが、 condFurigana = "[フィールド名] LIKE '" & GetHiragana(ふりがなフレーム.Value) "*'" で、これらをANDでつなぎます。 WhereCond = condShoku & " AND " & condKaisha & " AND " & condFurigana このWhereCondを上記の抽出条件として設定して、[抽出]ボタンのクリックイベントで実行すればいいです。 詳細はヘルプなどを参照して下さい。 では。
補足
アドバイスをありがとうございました。 早速、上記の方法で試してみたのですが、「文字列の構文エラー」というエラーになってしまいました。 一つ一つの条件で実行したところ、会社名のところでこのエラーが出てしまいます。 個人情報のフォームの会社名のフィールドを会社情報のテーブルと連結してコンボボックスで入力出来るようにしてあるのですが、連結列を1にしてあるからでしょうか? いろいろ考えてみたのですがどうしても分かりません。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 まず、お使いのデータベースの種類とバージョンを明記しましょう。 文面からAccessと思いますが、それならバージョンを。さらにOSも併記した方がいいでしょう。 それから、どううまくいかないのか、具体的に書かないと答えようがありません。 問題のあると思われる部分のコードなどを載せると回答し易いですよ。 また、「レコードを抽出」と行ってもどういう動作をさせたいのかも書いた方がいいでしょう。 例えば、抽出条件用のフォームがあるかどうか、抽出結果をサブフォームに表示するかどうかとか。 では。
補足
説明不足ですみませんでした。 WINDOWS 98 ACCESS 2000です。 抽出条件用のフォームは作成しましたが、追加、削除、修正が出来るのであればサブフォームで表示するのでもどちらでもかまいません。 個人情報のフォームに txt個人名、txtふりがな、cbo会社名(会社情報と連結)、chk在職の有無を作成したものから オプションボタンで在職か退職か選択 コンボボックスで会社名を選択 あ~わのトグルボタンでふりがなを選択 の抽出条件で抽出ボタンをクリックして抽出したいと考えています。 これでよろしいでしょうか? よろしくお願いします。
お礼
出来ました!! maruru01さんのおっしゃった通り、1行ずつ実行して確認して見ました。 長い間、お付き合いして頂いてどうもありがとうございました。 これからもよろしくお願いします。