• ベストアンサー

<Access>2つの抽出条件が合致したデータをもってきたい

アクセスを勉強中ですがいまいちです。 2つの抽出条件に該当するレコードを抽出させたいのですが、やり方がわかりません。 教えてください! (1)以下のようなテーブルを1枚作成。 職場名、氏名、社員No.、年、月 A-G、本多、012345、2003、10 A-G、鈴木、123456、2003、10 A-G、豊田、234567、2003、10 A-G、本多、012345、2003、11 A-G、鈴木、123456、2003、11 A-G、山羽、934567、2003、11 B-G、夏目、001234、2003、10 B-G、北原、012345、2003、10 B-G、松尾、023456、2003、10 B-G、夏目、001234、2003、11 B-G、北原、012345、2003、11 B-G、松尾、023456、2003、11 C-G、榎本、777012、2003、10 C-G、板垣、770123、2003、10 C-G、伊藤、701234、2003、10 C-G、豊田、234567、2003、11 C-G、板垣、770123、2003、11 C-G、伊藤、701234、2003、11 (2)検索フォームと結果表示フォームの2つを作成 a.結果表示フォーム  bで検索した結果を表示するフォーム(単票形式で個々の情報が表示される) b.検索フォーム  「職場」「日付」のコンボボックスと「検索」ボタンを設置。 要は、検索フォームで2つの条件(職場,日付)に合致した情報をaで表示させたい!! ですが今のところ、"職場"だけは条件通り出てくるのですが、日付が条件として読み取ってくれません。 わかるかたがいましたら、教えて頂きたいです。

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

  • ベストアンサー
  • yomo3
  • ベストアンサー率32% (88/269)
回答No.3

う~ん。 検索の表示とテーブルのデータ構造が違うのが気になるなぁ。っていうか、めんどくさい仕様だな。 手っ取り早く言うと、 stLinkCriteria = "[所属名称]=" & "'" & Me![所属名称] & "'" に#2の方が言われている'And'でつなげた条件式を追加すればよいのです。 これが、フォームaに表示されるデータの検索式そのものだからです。 具体的に言うと、 stLinkCriteria = "[所属名称]='" & Me![所属名称] & "' And [年]=" & Me![年] & " And [月]=" & Me![月] というようにします。 ただし、フォームbには[年][月]というオブジェクトがないようなので、このままではエラーになります。 フォームbに[年][月]というテキストボックスを作って、「cmb日付」の更新後処理(AfterUpdate)で[年][月]にデータを入れるようにコードを書いてやればOKです。 この類の処理は、ヘルプでSQLという項目をご覧になると、最初はチンプンカンプンですが、だんだんわかってきます。 また、日付はデータ形式を日付にした方が、いろいろと処理が楽になります。何日後とか何か月前とか。 ただ、検索条件のときはリテラル文字列という形式にしなければならないので、ちょっと面倒です。

mipomipo
質問者

お礼

御礼が大変遅くなり、申し訳ございませんでした。 未だに"マクロ"は大きな壁ですが、この問題に関しては、なんとかなりました。ありがとうございました!!

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • kyougoku
  • ベストアンサー率0% (0/6)
回答No.4

yomo3氏、ありがとうございます。  日付については、日付コントロールフィールドにしてもいいかもしれませんね。  そうすれば、等号不等号も使えるので。

すると、全ての回答が全文表示されます。
  • kyougoku
  • ベストアンサー率0% (0/6)
回答No.2

ボタンのコードのところに、 if [テーブルの職場名]=[職場コンボボックス名] and [テーブルの日付フィールド]=[日付コンボボックス名] then ・・・ のように and で繋げばどうでしょうか?

mipomipo
質問者

お礼

回答ありがとうございました。 ですが、まだマクロを使いこなせず、省略部分のコードをどう書いていいかわかりません。なんとなく、雰囲気はわかるのですが。 (可能であれば、教えて頂きたいと....) このコード、研究してみます。

すると、全ての回答が全文表示されます。
  • yomo3
  • ベストアンサー率32% (88/269)
回答No.1

恐らく、日付の書式が間違っているのだと思います。 テーブルの年と月のデータ形式はどのようになっていますか?数値ですか? bの「日付」の形式はどのようになってますか? 検索の具体的な方法は?SQLですか? コードなどできるだけ詳しく補足してください。

mipomipo
質問者

補足

はぃ、確かに日付の書式、自信ありません。。。 テーブルの年と月のデータ形式は数値です。 bの「日付」の形式は、数値型と言えるのでしょうか・・・ 以下はcmb日付の詳細です。 -------------- ■cmb日付に表示するデータとしてテーブル「年月」を以下のように作成し、コンボボックスを作った  A列  B列 ---いづれも数値型 【年】 【月】  2003  10   2003  11  2003  12  2004  1  2004  2   2004  3 ■cmb日付プロパティ 値集合タイプ:テーブル/クエリー 値集合ソース:SELECT DISTINCTROW 年月.年, 年月.月 FROM T_全体 INNER JOIN 年月 ON (T_全体.月 = 年月.月) AND (T_全体.年 = 年月.年); 連結列:2 ※値集合ソースは、SQLで「データベース」テーブルの"年"と「年月」テーブルの"年"を繋げ、「データベース」テーブルの"月"と「年月」テーブルの"月"を繋げました。 ■検索ボタンのイベントプロシージャー Private Sub コマンド14_Click() On Error GoTo Err_コマンド14_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "F_全体" stLinkCriteria = "[所属名称]=" & "'" & Me![所属名称] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_コマンド14_Click: Exit Sub Err_コマンド14_Click: MsgBox Err.Description Resume Exit_コマンド14_Click End Sub 以上ですが、いかがでしょうか? おわかり頂けましたでしょうか? すみませんが、宜しくお願い致します。

すると、全ての回答が全文表示されます。

関連するQ&A