• 締切済み

AccessSQLは合ってるのにフィルターされない

Microsoft Access でマクロ(VBAではない)を作っています。「検索フォーム」の「投稿者」のコンボボックスに検索条件を入力して「検索」ボタンを押すと「全項目」フォームがフィルターされて開くようにしたいです。 作ったマクロの手順 一時変数の設定[EmpireloyeeName] 値の代入 アイテム[Tempvars]![EmpireloyeeName] 式[Forms]![全項目]![投稿者]="&[投稿者] メッセージボックス =[Tempvars]![EmproyeeName] フォームを開く フォーム名 全項目 Where条件式 =[Tempvars]![EmproyeeName] このようにマクロを組みましたが、開いたフォームがフィルターされていません。全て表示されます。 エラーは出ません。 途中のメッセージボックスで表示されるメッセージは [Forms]![全項目]![投稿者]=山田 と表示されます。 どこが間違っているのか教えてください。

みんなの回答

  • chayamati
  • ベストアンサー率41% (260/625)
回答No.3

回答№2,3です。新規に回答します >検索フォーム」の「投回答しますので、「投稿者」のコンボボックスに検索条件を入力して「検索」ボタンを押すと  全項目」フォームがフィルターされて開くようにしたいです。 1.索条件の値は、フォームまたはレポートを開く前に確定している必要が有ります。  従って、自分は空のフォーム《メニュー》に検索値のボックスを配置して  英語は苦手なので、貴方のコーディングは理解できませんのでここから先の  ボックス名は添付図のように、漢字にさせて頂きます。 2.添付図左端:テーブル名の先頭  T_:トランザクションテーブル  M_:マスタテーブル  W_:ワーキングテーブル 3.《メニュー》フォームのコーディングリスト  Option Compare Database Private Sub Form_Load() 日付_RTN End Sub Private Sub 日付_RTN() 月初日 = 基準日 - Day(基準日) + 1 月末日 = 月初日 + 35: 月末日 = 月末日 - Day(月末日) End Sub Private Sub コンボ_社員登録_Change() DoCmd.OpenForm "T_売上_登録", , , "日付 Between forms!メニュー!月初日 and forms!メニュー!月末日" End Sub Private Sub 基準日_Exit(Cancel As Integer) 日付_RTN End Sub ★《T_売上_登録》のコーディングリスト Option Compare Database Private Sub 伝票番号_Exit(Cancel As Integer) If IsNull(売上日) Then 売上日 = Forms!メニュー!基準日 If IsNull(社員ID) Then 社員ID = Forms!メニュー!コンボ_社員登録 End Sub 4.検索はコーディングでフォームを開くときに DoCmd.OpenForm "T_売上_登録", , , "日付 Between forms!メニュー!月初日 and forms!メニュー!月末日"  と添付図のようにクエリーに組み込む事も出来ます

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

プライベートでExcelも使ってるけど、こういうときはAccessにしてるという人はいますか? 1.家計簿(複式簿記)  エクセルでは現金出納帳止まりですが、現預金、収入、支出、ICOCA、ワオンカード等  全勘定科目の取引履歴  2.食事のカロリー計算  スーパーの殆どの商品にはカロリー(タンパク質、脂質、炭水化物、塩分)シール  をマスタ登録(696レコード)して、日々の朝食、昼食、夕食毎に食事履歴登録  この履歴をエクセルにエキスポートしてグラフ化 3.新型コロナ新規感染者数履歴  今は情報が公開されていないので、中断しています   1万人当の感染者数に換算して、エクセルにエキスポートして府県間の比較グラフ作成  https://multimedia.okwave.jp/image/questions/34/341519/341519_original.jpg ----------------------------------------------------------------------------- >検索フォーム」の「投稿者」のコンボボックスに検索条件を入力して「検索」ボタンを押すと  全項目」フォームがフィルターされて開くようにしたいです。 ★検索条件の値は、フォームまたはレポートを開く前に確定している必要が有ります。  従って、自分は空のフォーム《メニュー》に検索値のボックスを配置して  英語は苦手なので、貴方のコーディングは理解できませんのでここから先の  ボックス名は添付図のように、漢字にさせて頂きます。 ★添付図左端:テーブル名の先頭  T_:トランザクションテーブル  M_:マスタテーブル  W_:ワーキングテーブル ★《メニュー》フォームのコーディングリスト  Option Compare Database Private Sub Form_Load() 日付_RTN End Sub Private Sub 日付_RTN() 月初日 = 基準日 - Day(基準日) + 1 月末日 = 月初日 + 35: 月末日 = 月末日 - Day(月末日) End Sub Private Sub コンボ_社員登録_Change() DoCmd.OpenForm "T_売上_登録" End Sub Private Sub 基準日_Exit(Cancel As Integer) 日付_RTN End Sub ★《T_売上_登録》のコーディングリスト Option Compare Database Private Sub 伝票番号_Exit(Cancel As Integer) If IsNull(売上日) Then 売上日 = Forms!メニュー!基準日 If IsNull(社員ID) Then 社員ID = Forms!メニュー!コンボ_社員登録 End Sub             プライベートでExcelも使ってるけど、こういうときはAccessにしてるという人はいますか? 1.家計簿(複式簿記)  エクセルでは現金出納帳止まりですが、現預金、収入、支出、ICOCA、ワオンカード等  全勘定科目の取引履歴  2.食事のカロリー計算  スーパーの殆どの商品にはカロリー(タンパク質、脂質、炭水化物、塩分)シール  をマスタ登録(696レコード)して、日々の朝食、昼食、夕食毎に食事履歴登録  この履歴をエクセルにエキスポートしてグラフ化 3.新型コロナ新規感染者数履歴  今は情報が公開されていないので、中断しています   1万人当の感染者数に換算して、エクセルにエキスポートして府県間の比較グラフ作成  https://multimedia.okwave.jp/image/questions/34/341519/341519_original.jpg ----------------------------------------------------------------------------- >検索フォーム」の「投稿者」のコンボボックスに検索条件を入力して「検索」ボタンを押すと  全項目」フォームがフィルターされて開くようにしたいです。 ★検索条件の値は、フォームまたはレポートを開く前に確定している必要が有ります。  従って、自分は空のフォーム《メニュー》に検索値のボックスを配置して  英語は苦手なので、貴方のコーディングは理解できませんのでここから先の  ボックス名は添付図のように、漢字にさせて頂きます。 ★添付図左端:テーブル名の先頭  T_:トランザクションテーブル  M_:マスタテーブル  W_:ワーキングテーブル ★《メニュー》フォームのコーディングリスト  Option Compare Database Private Sub Form_Load() 日付_RTN End Sub Private Sub 日付_RTN() 月初日 = 基準日 - Day(基準日) + 1 月末日 = 月初日 + 35: 月末日 = 月末日 - Day(月末日) End Sub Private Sub コンボ_社員登録_Change() DoCmd.OpenForm "T_売上_登録" End Sub Private Sub 基準日_Exit(Cancel As Integer) 日付_RTN End Sub ★《T_売上_登録》のコーディングリスト Option Compare Database Private Sub 伝票番号_Exit(Cancel As Integer) If IsNull(売上日) Then 売上日 = Forms!メニュー!基準日 If IsNull(社員ID) Then 社員ID = Forms!メニュー!コンボ_社員登録 End Sub   >検索フォーム」の「投稿者」のコンボボックスに検索条件を入力して「検索」ボタンを押すと  全項目」フォームがフィルターされて開くようにしたいです。 ★検索条件の値は、フォームまたはレポートを開く前に確定している必要が有ります。  従って、自分は空のフォーム《メニュー》に検索値のボックスを配置して  英語は苦手なので、貴方のコーディングは理解できませんのでここから先の  ボックス名は添付図のように、漢字にさせて頂きます。 ★添付図左端:テーブル名の先頭  T_:トランザクションテーブル  M_:マスタテーブル  W_:ワーキングテーブル ★《メニュー》フォームのコーディングリスト  Option Compare Database Private Sub Form_Load() 日付_RTN End Sub Private Sub 日付_RTN() 月初日 = 基準日 - Day(基準日) + 1 月末日 = 月初日 + 35: 月末日 = 月末日 - Day(月末日) End Sub Private Sub コンボ_社員登録_Change() DoCmd.OpenForm "T_売上_登録" End Sub Private Sub 基準日_Exit(Cancel As Integer) 日付_RTN End Sub ★《T_売上_登録》のコーディングリスト Option Compare Database Private Sub 伝票番号_Exit(Cancel As Integer) If IsNull(売上日) Then 売上日 = Forms!メニュー!基準日 If IsNull(社員ID) Then 社員ID = Forms!メニュー!コンボ_社員登録 End Sub

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

Where条件式 = の結果は[テーブル名]![投稿者]=山田 にならないと駄目なのではないですか また、現状のマクロの話ではありませんが 元のテーブルを基にして抽出条件を検索フォームの投稿者とする選択クエリを作り、そのクエリをソースにしたフォームを作って、マクロでそのフォームを表示するようにしたら簡単だと思いますよ。 または、検索フォームにテーブルをソースにしたサブフォームを作ってリンク親フィールドリンク子フォールド設定してコンボボックスのイベントのマクロにレコードの更新とかしておくのも簡単だと思います。

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

関連するQ&A