No.6ベストアンサー
- 回答日時:
何度も失礼します。
余計なお世話かもしれませんが。クエリを選択制にしたいということですが、クエリからクエリを作成している以上、選択制には出来ないのではないですか?
例えばテーブル1からIDが10以上のデータを抽出してクエリ1を作成してそれを基にふり仮名が「ア」で始まるデータを抽出してクエリ2を作成し、それを基に住所が東京都のデータを抽出したクエリ3を作成したとします。でもある時、東京都在住の人全員のデータが欲しくなったとします。その場合、クエリ3の条件だけ選択したいと言っても、クエリ2を基に作っているので、クエリ3を利用することは出来ず、もう一つテーブル1を基にクエリ3と同じ抽出条件のクエリ4というクエリを作成する必要があります。なので、20個のクエリの組み合わせによって変化させるのなら、ものすごい数のクエリが必要になります。UNIONクエリもクエリからクエリを作成されている以上、うまくいかないと思いますよ。
20個のクエリにそれぞれ10個の条件があった場合、200の条件で抽出することになります。どういう状況かわかりませんが、本当にそれだけの条件を作ったクエリが必要ですか?パラメーターなどで、抽出条件を入力できるように作ったほうが良くはないですか?
この回答への補足
ご意見ありがとうございます。
クエリは、抽出条件用のデータを作成する為にひとつ、それを元に抽出したデータがひとつ。のシンプルなものです。2重3重となっているわけではありません。この抽出条件用のクエリにかなりややこしい条件をつけていますので、条件欄の文字数オーバーとかになるほどです。単純にテキストを検索して抽出というのではなく、計算式等を入れた新しいフィールドに対してさらに複雑な条件をかける・・・というような感じです。
私がイメージしていたのはフォームにてチェックボックスをクエリ分作り、チェックが入ったクエリのみデータを抽出し、元テーブルから除外し、残りのデータを表示する。これをボタンひとつで。が希望でした。
ユニオンクエリは画期的だなぁと思ったのですが、一度データを作って終わり、ではなく毎回元データは変化しますのでやはりクエリを選択制にするってところで難しいかなぁと・・・。
中途半端な知識で余計ややこしくさせてしまいすみません。。。
No.5
- 回答日時:
削除は関係ないですよね。
元データから選択クエリで抽出したいだけで元データを消したいわけではないですよね。削除クエリを実行("DELETE FROM~" )すると元データのテーブルからデータが消えてしまいますよ。誤解を招くので削除という言葉は使わないほうが良いでしょう。>私が出来なかっただけかもしれませんが
多分そうだと思われます。そちらの方を質問されてクエリを書き直されたほうが良いと思います。クエリを複数かませると処理速度が低下したりします。これからも色々お作りになると思いますので、そういうものをどんどん増やし、つじつまを合わせるやり方を考えるより、正しい作り方を覚えられてスマートな形の物に作り直された方が宜しいかと思います。
クエリを書き直せば、特にVBAを使用する必要もないように思われます。コマンドボタン押下でクエリを開くようにマクロを組めば良いだけです。
ご意見ありがとうございます。
クエリを分けている理由は、そのクエリを選択制にしたいということもあり、わかりやすいように個別にしていました。
実際にはクエリは20個あるんです。これを一つにまとめるのは至難の業ではないかと…演算フィールドも沢山あるので、何十列となり、ちょっとこんがらがってしまいそうです。。。
ありがとうございました。
No.4
- 回答日時:
No.2
- 回答日時:
VBA が全く判らなくても、コピペ位はできるでしょう。
VBA が全く判らなくても、フォームにコマンドボタンは配置できるでしょう。
<仕入記録>
ID____商品マスター_ID_仕入数量_仕入単価
1_____商品A______________10___________\1,000
2_____商品A______________20___________\1,000
3_____商品B______________15___________\1,500
このようなテーブルがあったとします。
クエリ1=SELECT 仕入記録.*, * FROM 仕入記録;
というクエリを用意します。
もちろん、このクエリは<仕入記録>を全て表示します。
<クエリ1>
ID____商品マスター_ID_仕入数量_仕入単価
1_____商品A______________10___________\1,000
さて、クエリ1をフォームのコマンドボタンで表示するとこのようになりました。
仕入数量=20
仕入単価=1500
を削除した結果を表示しているからです。
Private Sub コマンド0_Click()
On Error Resume Next
CnnExecute ("DELETE FROM 仕入記録 WHERE 仕入単価=1500;")
CnnExecute ("DELETE FROM 仕入記録 WHERE 仕入数量=20;")
DoCmd.OpenQuery "クエリ1"
End Sub
ところで、フォームのコマンドボタンの書いたVBAのコードはこのように実に簡単なものです。
DELETE文は、質問者が作成されたクエリをコピーされても動作します。
クエリをSQLビューで表示すれば、クエリはSQL文の形で表示されます。
どうでしょう、この位のコードですと書けるのじゃないでしょうか?
なお、CnnExecute は、後で補足します。
この回答への補足
ご回答ありがとうございます。CnnExecuteの意味はさっぱりなのですが、この処理をクエリ1、クエリ2というように連続させる場合はどのようになるのでしょうか?
それと、ずーずーしいのですが、たとえば「テキストBOX1」に"1"を入力したらクエリの1を実行…とする場合のIF文もできれば教えていただきたいのですが…。
No.1
- 回答日時:
ごめんなさい。
やりたいことが解りかねます。元データを削除したいのですか?それとも、3つの条件でデータを抽出したいだけでしょうか?どちらにしても、3つのクエリの意味がわかりません。1つのクエリに3つの条件を指定すれば良いのでは?
この回答への補足
説明不足ですみません。ひとつのクエリで3つの条件を指定すれば…そうなのですが、条件用のクエリをそれぞれ間に挟んでおり、一度に指定するのは出来ませんでした。(私が出来なかっただけかもしれませんが)
削除用のデータをクエリで3つ用意して、それを除いたデータを元テーブルから抽出したいのです。
そして、そのクエリ3つのうち、削除したいクエリを選択できるようにしたいと思っています。
例えば、クエリの1と3にを指定した場合はクエリの2を無視してデータを抽出する…というような仕組みです。
VBAのことはさっぱりですが、これをボタン一つで処理出来れば、と思いました。
このような説明で分かってもらえたでしょうか?無茶苦茶なこと言っていたら申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスのエラー「クエリには...
-
EXCELの外部データ取得ができない
-
アクセスで空白がグループ化さ...
-
Access 複数のクエリの結果を...
-
【Access2003 VBA】クエリをエ...
-
アクセス ADO レコードの件数...
-
ACCESSでメッセージにクエリ結...
-
パススルークエリからデータシ...
-
Access2000で抽出したデータに...
-
ACCESS テーブル内の列...
-
access追加クエリ実行時の重複...
-
ACCESS 長い数字のクエリをする...
-
アクセスでクロス集計をレポー...
-
Access 0で除算(並べ替...
-
yes/no型のチェックができない...
-
AccessでSQL結果を直接csvに書...
-
Excel VBAでWebクエリ更新
-
アクセス クエリで計算式の累積
-
Accessでユニオンクエリを作成...
-
アクセスのパラメータとは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスのエラー「クエリには...
-
EXCELの外部データ取得ができない
-
access追加クエリ実行時の重複...
-
AccessでSQL結果を直接csvに書...
-
yes/no型のチェックができない...
-
Access 複数のクエリの結果を...
-
ACCESSのフィールドの表示順が...
-
アクセスで空白がグループ化さ...
-
Access2000で抽出したデータに...
-
Accessで複数(200件程)の置換
-
Accessのエラーについてです。
-
Me.FilterOn = True は先でも後で
-
Accessでユニオンクエリを作成...
-
Access 0で除算(並べ替...
-
Access複数のクエリをExcelの1...
-
ログイン画面後のページの表取...
-
ACCESS テーブル内の列...
-
アクセス ADO レコードの件数...
-
Accessで進行状況インジケータ...
-
Accessで納品書を作りたいです
おすすめ情報