こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ユニオンクエリの場合は「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]」の一文を入れても
問題なく作業できます。

何かアドバイスお願い致します。

投稿日時 - 2009-01-28 11:52:04

QNo.4667914

暇なときに回答ください

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

Access 2003 で、やっと再現できました。
100パーセント再現するわけではないので
原因はこれ、と特定できません。
ただ、正常に動いているものを、新規MDB にインポートすると
クエリの 「* from T花 ]. AS 名前」のピリオドが無くなってしまいます。
2回ほどは、新規クエリを作成し、正しく動く SQLを貼り付けて
保存した直後に同様なことが起きました。

クエリで訳のわからないことが起きる場合は「名前の自動修正」を
第一に疑います。

対策としては、
オプションの全般タブで「名前の自動修正」のところをオフにし、
1度 DBを閉じる。
問題のクエリを削除し、再度、作成する。
というところでしょうか。

なお、上記の問題は、
「名前の自動修正」がオフの DBにインポートした場合にはおきませんし、
Access 2007 では、設定にかかわらず起きません。

投稿日時 - 2009-01-28 18:17:03

お礼

ご回答ありがとうございます。

投稿日時 - 2009-02-04 14:52:32

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

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]」とはできないのでしょうか?

という問題のアプローチ誤りにがあると推測します。

投稿日時 - 2009-01-28 12:42:59

お礼

ご回答ありがとうございます。

投稿日時 - 2009-02-04 14:49:41

ANo.1

肝心なエラーメッセージが見えません。
変なところで手を抜かないで、
しっかり転記してください。

投稿日時 - 2009-01-28 12:04:19

補足

すいませんでした。
*****************************************************************
入力テーブルまたはクエリ'select * from T果物 UNION ALL select * from T野菜 UNION ALL select * from T花 '
が見つかりませんでした。
そのテーブルやクエリが存在していること、または名前が正しいことを確認してください。
*****************************************************************
再度ご回答頂けたら幸いです。
よろしくお願い致します。

投稿日時 - 2009-01-28 12:45:29

あなたにオススメの質問