- ベストアンサー
ユニオンクエリの場合は「Like [Forms]![フォーム1]![テキスト0]」とはできないのでしょうか?
こんにちは。いつもお世話になります。 早速ですが T果物、T野菜、T花の3つテーブルでユニオンクエリを作成しました。 (各テーブルのフィールド名は「名前」です。) SQL文は ************************************************ SELECT 名前.名前, * FROM [select * from T果物 UNION ALL select * from T野菜 UNION ALL select * from T花 ]. AS 名前; ************************************************ です。 次に図1の様にテキストボックスに名前を入力してコマンドボタンを押してクエリを開く為のユーザーフォームを作成しました。 コマンド2を押したときは Private Sub コマンド2_Click() DoCmd.OpenQuery ("ユニオンクエリ") End Sub でユニオンクエリを開く動作を指示してあります。 ここまでなら問題なく作業ができるのですが テキストボックスに入力されている名前を含むものがコマンドボタンを押すと表示されるようにしたいのですが どうもユニオンクエリだとうまくいきません。 ユニオンクエリはデザインビューなら図2、 SQL文なら ************************************************ SELECT 名前.名前, * FROM [select * from T果物 UNION ALL select * from T野菜 UNION ALL select * from T花 ]. AS 名前 WHERE (((名前.名前) Like [Forms]![フォーム1]![テキスト0])); ************************************************ とすると、図3のようなエラーが出てしまいます。 ユニオンクエリではなく、普通のクエリ(選択クエリ?)なら 「Like [Forms]![フォーム1]![テキスト0]」の一文を入れても 問題なく作業できます。 何かアドバイスお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Access 2003 で、やっと再現できました。 100パーセント再現するわけではないので 原因はこれ、と特定できません。 ただ、正常に動いているものを、新規MDB にインポートすると クエリの 「* from T花 ]. AS 名前」のピリオドが無くなってしまいます。 2回ほどは、新規クエリを作成し、正しく動く SQLを貼り付けて 保存した直後に同様なことが起きました。 クエリで訳のわからないことが起きる場合は「名前の自動修正」を 第一に疑います。 対策としては、 オプションの全般タブで「名前の自動修正」のところをオフにし、 1度 DBを閉じる。 問題のクエリを削除し、再度、作成する。 というところでしょうか。 なお、上記の問題は、 「名前の自動修正」がオフの DBにインポートした場合にはおきませんし、 Access 2007 では、設定にかかわらず起きません。
その他の回答 (2)
SELECT 名前.名前 FROM [ select * from T果物 UNION ALL select * from T野菜 UNION ALL select * from T花 ]. AS 名前 WHERE 名前.名前 LIKE 'チューリップ'; クエリ3: クエリ [名前] チューリップ Private Sub コマンド2_Click() If Len(Me.テキスト0 & "") Then DoCmd.OpenQuery ("クエリ4") End If End Sub クエリ4: クエリ SELECT 名前.名前 FROM [ select * from T果物 UNION ALL select * from T野菜 UNION ALL select * from T花 ]. AS 名前 WHERE 名前.名前 LIKE [Forms]![フォーム1]![テキスト0]; これで正常に動きます。 ということは、 >ユニオンクエリの場合は「Like [Forms]![フォーム1]![テキスト0]」とはできないのでしょうか? という問題のアプローチ誤りにがあると推測します。
お礼
ご回答ありがとうございます。
- m3_maki
- ベストアンサー率64% (296/460)
肝心なエラーメッセージが見えません。 変なところで手を抜かないで、 しっかり転記してください。
補足
すいませんでした。 ***************************************************************** 入力テーブルまたはクエリ'select * from T果物 UNION ALL select * from T野菜 UNION ALL select * from T花 ' が見つかりませんでした。 そのテーブルやクエリが存在していること、または名前が正しいことを確認してください。 ***************************************************************** 再度ご回答頂けたら幸いです。 よろしくお願い致します。
お礼
ご回答ありがとうございます。