Access2000にての日付検索について

このQ&Aのポイント
  • Access2000のフォーム「F応募者一覧」で日付検索を行う際に、関係のない日付も抽出されてしまう問題が発生しています。
  • 具体的には、指定した年月日の範囲で抽出を行う場合でも、他の日付が混ざってしまい、正確な結果が得られません。
  • この問題の原因は、年月日のコンボボックスの設定にあります。値リストにて作成されており、不適切な設定となっています。
回答を見る
  • ベストアンサー

Access2000にての日付検索について

質問させてください。 フォーム「F応募者一覧」の中にコンボボックスにて” 年1””月1””日”~”年2””月2””日1”を選択し たのちに以下のイベントが組まれているボタンをクリ ックしますと関係ない日まで出てきてしまいます。た とえば2005 2 1 ~ 2005 2 6 にしますと18日とか25日のデータも抽出されてしまいます。年月日 のコンボボックスは値リストにて作成しています。 上手く伝えられていないとは思いますが、よろしく お願い致します。 Year([入社日]) Between [Forms]![F応募者一覧]! [年1] And [Forms]![F応募者一覧]![年2] And Month([入社日]) Between [Forms]![F応募者一覧]! [月1] And [Forms]![F応募者一覧]![月2] And Day([入社日]) Between [Forms]![F応募者一覧]![日] And [Forms]![F応募者一覧]![日1]

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

ご提示いただいたSQLがよく理解できませんが、 >2005 2 1 ~ 2005 2 6 にしますと BETWEEN #2005/2/1# AND #2005/2/6# のように日付の場合は、##でくくってやります。また、誤動作防止のため、西暦を扱う場合には必ず4桁で統一する必要があります。(yyyy/m/d形式) 今回の場合、[年]のコンボボックスが 2005 のように4桁なら大丈夫でしょう。 VBAなら、 With [Forms]![F応募者一覧]   Kikan1 = Format(DateSerial(![年1],![月1],![日1]),"yyyy/m/d")   Kikan2 = Format(DateSerial(![年2],![月2],![日2]),"yyyy/m/d") End With strSQL = "" strSQL = strSQL & "SELECT (略) strSQL = strSQL & " WHERE (略) strSQL = strSQL & " BETWEEN #" & Kikan1 & "# AND #" & Kikan2 & "#" strSQL = strSQL & "(略) みたいになります。 得たい結果は、[入社日]が 2005/2/1~2005/2/6 のデータということでしょうか?

cimikho
質問者

補足

ご回答ありがとうございます。わかり辛くて申し訳ありません。 >得たい結果は、[入社日]が 2005/2/1~2005/2/6 のデータということでしょうか? はい。コンボボックスにて指定した範囲のデータを抽出したいのです。 [年1][月1][日1]~[年2][月2][日2]とフォーム上に計6つのコンボボックスがある状態です。 VBAが恥ずかしながらわからないためKenKen SP様のアドバイスのように [入社日] Between #[Forms]![F応募者一覧]!([年1][月1][日])# and #[Forms]![F応募者一覧]!([年2][月2][日2])# 見たいな感じでできる方法はないでしょうか? 宜しくお願い致します。

関連するQ&A

  • アクセス日付検索について

    フォーム上にコンボボックスがあり、 コンボボックスには、 2005-01~2005-12と選択できるようにしてあります。 他にこのフォームにはサブフォームがあり、 コンボボックスで選択した条件に合わせてサブフォームで表示したいのです。 サブフォームのソースオブジェクトのクエリに 入れる関数なのですが、 <=[Forms]![フォーム1]![コンボ1] と入れたのですが、 コンボボックスで2005-09を選択して実行しても 8月31日が出てきません・・・。 (コンボで選択した月より前がうまくいかない) 知識不足で申し訳ありませんが、 よろしくお願いいたします。

  • Access 今日の日付の入力を省略するには?

    Between~Andを使って、[受付日]の期間を指定してデータを抽出しています。 1.フォーム[F_メインメニュー]で非連結のテキストボックス[from]、[to]を作り2つの日付を入力します。 2.クエリで、[受付日]の抽出条件に以下を設定して、データを抽出します。 Between [Forms]![F_メインメニュー]![from] And [forms]![F_メインメニュー]![to] ここまでは問題ないのですが、[to]の入力を省略したら[今日の日付]が[to]の日付になるようにできないでしょうか? IIFを使って、クエリの[受付日]の抽出条件に以下のように書いてみました。(toがNullならfromから今日まで、入力されてたらfromからtoまで、と考えました。)→失敗しました。間違った式のようです。 IIF([forms]![F_メインメニュー]![to] = Null,Between [Forms]![F_メインメニュー]![from] And Date(), Between [Forms]![F_メインメニュー]![from] And [forms]![F_メインメニュー]![to]) ご存じの方、アドバイスをくださる方がいらっしゃいましたらどうぞよろしくお願いします。

  • アクセスでフォームからサブフォームへの検索について

    アクセスを勉強中の初心者です。是非教えて下さい。 請求書入力フォームを作成したので、別のフォームで請求書一覧を作成しています。その請求書一覧は、サブフォームにデータシート形式で[請求No.]、[年]、[月][社名]、[金額]が一覧にでるようになっています。その元になっているクエリの条件のところに、[年]→Like [Forms]![請求一覧]![年検索] & "*" [月]→Like "*" & [Forms]![請求一覧]![月検索] & "*" [社名]→Like "*" & [Forms]![請求一覧]![社名検索] & "*" を入力しています。 ここからですが、サブフォームの上に[年検索][月検索][社名検索]のコンボボックスと[検索ボタン]があって、それぞれコンボボックスから選択後、ボタンを押したら、その対象の年や月、もしくは社名に沿ったデータがサブフォームに出るようにしたいのです。検索ボタンのクリックイベント後のところにどういう命令文を書けばいいのでしょうか。マクロの再クリエなどで設定してもどうにもなりません。マクロもVBAがまだ理解できていないので、教えていただければ幸いです。よろしくお願い致します。

  • ACCESS期間抽出について

    ACCESS2002で請求書を作っています。 売り上げデータから2005年3月1日~2005年3月31日までを抽出して請求書を印刷したところ、3月4日~9日だけ抽出できませんでした。 そのデータを3月3日や10日に訂正すると抽出されるのです。 請求書印刷フォームに、開始年、月、日と終了年、月、日というテキストボックスを作って抽出して、レポートに印刷するようにしています。 クエリーで、年月: Year([日付]) & Month([日付]) & Day([日付])という項目で次のように抽出条件を入れています。 Between [Forms]![F-請求書印刷]![年] & [Forms]![F-請求書印刷]![月] & [Forms]![F-請求書印刷]![日] And [Forms]![F-請求書印刷]![年終] & [Forms]![F-請求書印刷]![月終] & [Forms]![F-請求書印刷]![日終] 開始日と終了日だけのテキストボックスにしないで、年、月、日と分けているのは、レポートでそれぞれ値の代入で使用するためです。 3日から9日だけ出ないという原因がわからないので、教えていただけませんでしょうか? よろしくお願いいたします。

  • Access 日付/時間型を検索するには?

    いつもお世話になっております。 色々と調べたのですが、データが思い通りにならなく困っております。 検索用フォームを作成し、番号と件名であいまい検索出来るようにしたのですが、年月日でも検索出来るように依頼されました。 自分なりに組んでみたのですが、検索機能が動いてくれませんでした。 年月日のデータ形式は「日付/時刻型」で、格納されているデータは「yyyy/mm/dd 00:00:00」となっています。 日付のみで検索すれば良いのですが、いくら検索しても、全データが抽出されてしまいます。 どこが悪いのかご指摘お願い致します。 ☆クエリ☆ ・Q処理検索 左から「処理番号」「件名」「年月日」となっており、 「処理番号」と「件名」の抽出条件(1行目)には 「Like"*"&[Forms]![F処理検索]![処理番号]&"*"」 「Like"*"&[Forms]![F処理検索]![件名]&"*"」と記述 「年月日」の抽出条件に 「Between[Forms]![F処理検索]![開始]and[Forms]![F処理検索]![終了]」を2行目に記述 「>=[Forms]![F処理検索]![開始]」を3行目に記述してあります。 ☆フォーム☆ ・F処理検索 年月日は2つテキストボックスを用意しています。 各々に「開始」と「終了」の名前をつけ、定型入力を「0000/00/00\ 00:00:00;0;_」としてあります。 検索実行ボタンをクリックし、詳細検索表示フォームを表示します。 ・詳細検索表示 「F詳細検索」の結果をフォームビューで表示させます。 ☆マクロ☆ フォームを開く ・フォーム名:詳細検索表示 ・フィルタ名:Q処理検索 以上、宜しくお願い致します。

  • ACCESS コンボボックス 日付入力VBA

    win10 office365 access365におきまして フォーム Fを開いて そのなかの非連結テキストが コンボボックスになっており そのコンボボックス名をcombo としますとき そこに規定の文字列 これは そのコンボボックスの選択文字列として あるもので たとえば、あかさ この文字列は コンボボックスを開くと 第1列に表示されます 一番左側です を入れたいとき Sub Sample() DoCmd.OpenForm "F", acNormal Form![F]!combo = "あかさ" end sub フォームFは当然開くのですが 非連結コンボボックス comboは 空白のままです Form![F]!combo = "あかさ" ここの部分を Form![F]!combo.column(0) = "あかさ" または Form![F]!combo.column(1) = "あかさ" としても 同様の結果となります ② もうひとつすみませんが テキストボックス コメントテキストに 本日の日付で 4月17日であれば 0417 と入れたいので Forms![F]![コメントテキスト] = Format(Now, mmdd) としますと 2024/04/17 13:02:59 と出てしまいます できるものなら 全角で 0417 と打ち出したいのですが、、 重ねて 恐縮ですが 御教示宜しくお願い致します

  • Access テキストボックスを使用した範囲検索

    タイトルどおりの操作について教えてください。 Access VBAは、ごく簡単な操作が理解できる程度のレベルです。 Accessのフォームにテキストボックスを二つ作成し、 それぞれに金額を入力します。 その範囲結果をBetween And 演算子で抽出し ふたつめのボックスには空文字はパスにしたいと思います。 以下の式を作成しましたが、実行しようとすると、 「Me.キーワードの使用が不正です」と出ます。 複雑な式ではないと思うのですが、何がいけないのでしょうか。 どうか教えてください。 ------------------------------------------------ Sub 検索_Click() Me.Fliter = "[金額] Between [Forms]![F_金額で検索]![金額1] And [Forms]![F_金額で検索]![金額2] Is Null" Me.FilterOn = True End Sub

  • ACCESS2003 追加クエリの条件設定について

    ACCESS2003 追加クエリの条件設定について 条件設定用のフォーム"A"があり、 その"A"で指定された条件を元にテーブル"B"から値を抽出し、 テーブル"C"に書き込む追加クエリを作成しています。 フォーム"A"には ・「対象日」フィールド ・「月で出力」チェックボックス テーブル"B"には ・「試験開始日」 ・「試験終了日」 ・他多数項目フィールド 追加クエリではフォーム"A"の情報を元に、テーブル"B"から 「試験開始日」:<=[Forms]![F_A]![試験開始日] 「試験終了日」:>=[Forms]![F_A]![試験開始日] と、月をまたがって実施される試験が殆どのため、「対象日」に入力された日付を 網羅するデータを取り出しています。 新たに作りたいのは、フォーム"A"の「月で出力」チェックボックスにチェックがついた 時に、フォーム"A"の「対象日」フィールドから月を取り出し、テーブル"B"の「試験開始日」 「試験終了日」それぞれで月を比較し、同じ月のデータを抽出したいのですが 追加クエリの抽出条件に下記の通り記述した所、データをヒットさせる事が出来ません。 試験開始日フィールドの抽出条件 IIf([Forms]![F_A]![月で出力]=True,Year([試験開始日])=Year([Forms][F_A]![対象日]) And Month([試験開始日])=Month([Forms]![F_A]![対象日]),[試験開始日]<=[Forms]![F_A]![対象日]) 試験終了日フィールドの抽出条件 IIf([Forms]![F_A]![月で出力]=True,Year([試験終了日])=Year([Forms][F_A]![対象日]) And Month([試験終了日])=Month([Forms]![F_A]![対象日]),[試験終了日]>=[Forms]![F_A]![対象日]) どこが問題なのでしょうか… どなたかご教授お願い致します。

  • access2000でのiifを使う条件で

    削除クエリを実施する際にフォームでテキスト16からテキスト18って感じで日付を入力して削除しています。テキスト16に何も入力しない時は2000/01/01からテキスト18までとなるようにしたくてクエリの抽出条件に IIf([Forms]![F_A]![テキスト16]="", Between #2000/01/01# And [Forms]![F_A]![テキスト18],Between [Forms]![F_A]![テキスト16] And [Forms]![F_A]![テキスト18]) って入れたのですが上手く動きません。 何か根本的に間違ってたりした。よろしくお願いします。

  • AccessのSQL文 検索

    お世話になります AND検索でBetween検索とテキストでAND検索をさせているのですが ■不具合 下記のSQLのままだとすべての場所を満たさないと検索できません たとえば開始日~終了日だけなら絞込できません テキストを入力すると初めて絞込みをします ■たぶん たぶん下記SQL文にどちらかNULL値の場合をスルーさせる文章を追加させなければならないと思います WHERE (((B.番号)=[Forms]![Search]![テキスト]) AND ((B.D日付) Between [Forms]![Search]![txtDTPicker0] And [Forms]![Search]![txtDTPicker1])) ORDER BY B.D日付; わかる方よろしくお願いします

専門家に質問してみよう