OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

コントロールの違う複数条件

  • すぐに回答を!
  • 質問No.229856
  • 閲覧数132
  • ありがとう数1
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 44% (39/88)

個人情報のフォームから複数条件でレコードを抽出したいと考えています。
オプションボタンとコンボボックスとトグルボタンなのですが、ANDを使って条件をつなごうと思っているのですが、なかなかうまくいきません。
この方法以外でもよい方法があれば教えて欲しいのですが。
また抽出したフォームに修正や追加や削除もしたいと思っています。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル14

ベストアンサー率 51% (1179/2272)

こんにちは。
多分連結うんぬんは関係ないと思います。
とりあえず、このコードが書かれてあるプロシージャ([抽出]ボタンのクリックイベント?)の先頭にブレークポイントを設定して、1行実行してみて、どこでエラーが出るか確認して下さい。
また、会社名のところでエラーが出るようなら、その時のcbo会社名.Valueに入っている値を調べてみて下さい。
多分エラーになるとデバッグモードに入れるので、その時にイミディエントウィンドウに、
?Me!cbo会社名.Value
と入力してEnterを押すと、値が出力されます。

あと、文字列の比較は「'」で括らないといけませんが、cbo会社名.Valueの前後にちゃんとついてますか。
それと、フィールド名やコントロール名に空白やハイフンが入っている場合は、[]で括らなくてはいけません。
例)cboF 会社名.Value→[cboF 会社名].Value
とりあえず、気づいたのはこのくらいです。
では。
お礼コメント
t-tomo

お礼率 44% (39/88)

出来ました!!
maruru01さんのおっしゃった通り、1行ずつ実行して確認して見ました。
長い間、お付き合いして頂いてどうもありがとうございました。
これからもよろしくお願いします。
投稿日時 - 2002-03-08 00:37:43
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル14

ベストアンサー率 51% (1179/2272)

こんにちは。maruru01です。 まず、お使いのデータベースの種類とバージョンを明記しましょう。 文面からAccessと思いますが、それならバージョンを。さらにOSも併記した方がいいでしょう。 それから、どううまくいかないのか、具体的に書かないと答えようがありません。 問題のあると思われる部分のコードなどを載せると回答し易いですよ。 また、「レコードを抽出」と行ってもどういう動作をさせ ...続きを読む
こんにちは。maruru01です。

まず、お使いのデータベースの種類とバージョンを明記しましょう。
文面からAccessと思いますが、それならバージョンを。さらにOSも併記した方がいいでしょう。

それから、どううまくいかないのか、具体的に書かないと答えようがありません。
問題のあると思われる部分のコードなどを載せると回答し易いですよ。
また、「レコードを抽出」と行ってもどういう動作をさせたいのかも書いた方がいいでしょう。
例えば、抽出条件用のフォームがあるかどうか、抽出結果をサブフォームに表示するかどうかとか。
では。
補足コメント
t-tomo

お礼率 44% (39/88)

説明不足ですみませんでした。
WINDOWS 98
ACCESS 2000です。
抽出条件用のフォームは作成しましたが、追加、削除、修正が出来るのであればサブフォームで表示するのでもどちらでもかまいません。
個人情報のフォームに
txt個人名、txtふりがな、cbo会社名(会社情報と連結)、chk在職の有無を作成したものから
オプションボタンで在職か退職か選択
コンボボックスで会社名を選択
あ~わのトグルボタンでふりがなを選択
の抽出条件で抽出ボタンをクリックして抽出したいと考えています。
これでよろしいでしょうか?
よろしくお願いします。
投稿日時 - 2002-03-06 10:18:15


  • 回答No.2
レベル14

ベストアンサー率 51% (1179/2272)

再びmaruru01です。 抽出方法としては、 1.まず、全件でフォームを開いておいて、Filterプロパティに抽出条件を設定し、FilterOnプロパティをTrueにする。 2.予めサブフォームを作成しておき、DoCmd.OpenFormの第3引数に抽出条件を設定して実行する。 3.抽出結果で一時的なテーブルを作成し、それをサブフォームのソースに設定して開く。 などがあります。 いずれに ...続きを読む
再び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を上記の抽出条件として設定して、[抽出]ボタンのクリックイベントで実行すればいいです。
詳細はヘルプなどを参照して下さい。
では。
補足コメント
t-tomo

お礼率 44% (39/88)

アドバイスをありがとうございました。
早速、上記の方法で試してみたのですが、「文字列の構文エラー」というエラーになってしまいました。
一つ一つの条件で実行したところ、会社名のところでこのエラーが出てしまいます。
個人情報のフォームの会社名のフィールドを会社情報のテーブルと連結してコンボボックスで入力出来るようにしてあるのですが、連結列を1にしてあるからでしょうか?
いろいろ考えてみたのですがどうしても分かりません。
投稿日時 - 2002-03-07 14:57:05
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ