自分がやろうとしていること自体が間違っているかもしれないのですが・・
Access2000で販売管理を作っています。請求書を発行する開始日付と終了日付を入力させる日付入力フォームがあります。この日付を元に売上TBから日付範囲内を抽出する選択クエリを作っています。(クエリの抽出条件にBetweenを使っています)。
そして請求書フォームでデータ表示させようと作っています。
これらを、日付入力フォームにあるコマンドボタンのクリックイベントで
Docmd.OpenQuery "Q売上" ’日付範囲内の売上データ抽出クエリ
Docmd.OpenForm "請求書"
とすると請求書フォームにはデータが表示されるのですが、背面にQ売上の実行結果が表示されています。
この実行結果を表示させないようにはできないのでしょうか?(選択クエリとはOpen=実行でしょうか)
ちなみに請求書フォームのレコードソースにQ売上を書こうとしましたが、抽出条件の日付が日付入力フォームなので記述方法がわかりません。
ややこしい質問で申し訳ございませんが宜しくお願い致します。

A 回答 (1件)

こんばんは。


この日付を元に売上TBから日付範囲内を抽出する選択クエリを作っています。=Q売上 ですか?

請求書フォームのレコードソースにQ売上を書こうとしましたが、抽出条件の日付が日付入力フォームなので記述方法がわかりません。 とは?上でクエリーに抽出条件を指定できてるんですよね?

請求書フォームのレコードソースにQ売上(下三角ボタンでリスト表示されるはず)を指定すれば、
Docmd.OpenForm "請求書" だけで動きませんか?
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。
動きました!
Q_売上クエリをDocmdでOpenしなければ実行されないのかな
と思っていました。
ご指導本当にありがとうございました。助かりました。

お礼日時:2003/09/18 16:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QphpMyAdminでのフィールド削除(クエリ実行)

本当にMySQL初心者なので基本的にコマンドが理解できないのですが、phpMyAdminにてデータベースを管理していますが、一つのテーブルに数千のデータが入っており、例えばID番号1から500までを一気に削除したいと言うときに、最初はローカルにCSVデータをエキスポートして編集した後インポートさせようとしたのですが、文字コードの関係でエラーになってしまい、解決策はクエリでデータを削除するしかないとの結論になりました。
例えばテーブルを指定してからクエリのウィンドウを開くとSELECT * FROM `テーブル名` WHERE 1
とすでに入力されているのですが、これをどのように書き換えれば複数のフィールドをいっぺんに削除できるのでしょうか?
非常に困ってます、アドバイスよろしくお願いします

Aベストアンサー

普通にクエリを書いて実行してください

DELETE FROM `テーブル名` WHERE `ID` BETWEEN 1 AND 500;

QMS ACCESS2000のVBAでDocmd.openformしてます

openform のパラメータのwhereconditionに、like演算子を使って、

「 フィールド名 like %文字% 」

というような指定をしたいのですが、上手くいきません。
演算子が無いとか、いろいろ言われてしまいます。
どのように記述すると、動作するでしょうか?

Aベストアンサー

> 「 フィールド名 like %文字% 」
Oracle系とはワイルドカードキャラクタが異なります。

フィールド名 like '*文字*' か
フィールド名 like "*文字*" を使用してください。

任意の文字列を表す場合の%は*、
任意の1文字を表す場合の_は? です。

Qアクセスの削除クエリでいいのでしょうか?

 データベースで検索できるようにしたいのですが・・・・。クエリの検索結果をフォームに反映させています。
 検索結果表示後、もう一度検索フォームに戻り、検索をかけたときヒットするデータがないにも関わらず前回の検索結果が表示されたままになってしまいます。
削除クエリを使用すればいいのでしょうか?
 また削除クエリをどのように設定したらいいのでしょうか?(たとえば抽出条件が必要なのでしょうか?)
 この場合、マクロはいったん削除クエリを開き、もう一度クエリを開く設定でいいのでしょうか?分かりにくい質問ですいませんが教えてください

Aベストアンサー

はい、フォームのもとになっているクエリのデータが変わっても、更新行為をしないと反映されません。
具体的には、更新したいフォームに、コマンドボタンウイザードでフォーム→再表示を選択し、「再表示」ボタンを作ってみてください。押すとほら、更新されました。ボタン押し下げ動作を省略したい場合は、たとえば検索画面に戻るボタンがあるとしたら、そのボタンのクリック時イベントに、再表示ボタン内の主要ソースを貼り付ければ用を成すはずです。
但し、サブフォームをご利用の場合など、この方法がふさわしくない場合もあります。
確実に更新するには該当のフォームを閉じて開きなおすことです。マクロを作ってボタン化すれば少々画面がちらつくだけでそう不自然ではありません。
お試し下さい。

QDoCmd.OpenFormパラメータが表示される

いつもお世話になっています。

DoCmd.OpenFormで条件に合致するフォームが開く以下のコードを作成して使っています。

Private Sub send_Click()
DoCmd.OpenForm "集計", acFormDS, , "[支所] =" & Me.支所 & " And [部署] =" & Me.部署, , acHidden
End Sub

[部署]はこれまで数値で表していましたが、テキストを使用することになりました。
上記のプロシージャを実行すると[部署] のところにパラメータが表示されて
入力すると指定の支所と部署のデータが表示されます。

別の質問で、テキスト型を検索する記述方法は教えていただいて解決したのですが、
パラメータを表示せずに上記の式に反映するにはどうしたらいいのでしょうか。
型は数値型からテキスト型に変更しています。

お力添えをお願いいたします。

Aベストアンサー

> " & Me.部署

'" & Me.部署 & "'

Qテーブル削除クエリ

テーブル作成クエリはあるけどテーブル削除クエリはないのでしょうか?
ADOXで削除するしかないですか?

Aベストアンサー

クエリーのSQLビューで、下記の様なSQLを入力して保存すると、一種のテーブル削除クエリができますね。
DROP TABLE Table1;
データベースウィンドウで右クリックする方が早そうな...
VBAからなら、下記で実行できました。ご参考まで。
Sub Sample()
DoCmd.SetWarnings False
DoCmd.OpenQuery "Q_Table1削除"
DoCmd.SetWarnings True
End Sub

QACCESS VBA コマンドDoCmd.OpenFormの引数

2つの項目で主キーを構成するテーブルを定義しました。
この場合、VBA コマンドを使って登録画面を開く為の
コマンドの引数の指定方法がわかりません。

テーブル名: T運転手割当
1)W業務依頼日 <=主キー
2)W使用車両  <=主キー
3)W運転手番号


DoCmd.OpenFormの書式
■第4引数 WhereCondition/レコード抽出条件(省略可能)
テーブルやクエリと連結しているときのレコード抽出条件を指定します。

1)仮に主キーが1つの時、以下の表記で正常に表示されます。
'フォームを開く
DoCmd.OpenForm "F運転手割当登録", acNormal, , "W業務依頼日 = " & Me![lstWariate]


2)主キーが2つの時、以下の表記ではF運転手割当画面は表示されるのですが、
肝心のデータがセットされずに空白で表示されます。
'フォームを開く
DoCmd.OpenForm "F運転手割当登録", acNormal, , ("W業務依頼日 = " & Me![lstWariate]) & " And " & ("W使用車両 = " & Me![lstWariate])


[lstWariate]とは、データの検索画面で検索結果を表示するリストボックスの名称です。
検索結果から該当データを選択して、個別データの修正画面に移行したいのですが・・・。

Me![lstWariate]の表記が良くないのだと思うのですが、具体的な表記方法が分かりません。
よろしくお願いします。

2つの項目で主キーを構成するテーブルを定義しました。
この場合、VBA コマンドを使って登録画面を開く為の
コマンドの引数の指定方法がわかりません。

テーブル名: T運転手割当
1)W業務依頼日 <=主キー
2)W使用車両  <=主キー
3)W運転手番号


DoCmd.OpenFormの書式
■第4引数 WhereCondition/レコード抽出条件(省略可能)
テーブルやクエリと連結しているときのレコード抽出条件を指定します。

1)仮に主キーが1つの時、以下の表記で正常に表示されます。
'フォームを開く
DoCmd...続きを読む

Aベストアンサー

遅くなりましたが、以下の記述ではどうでしょうか?
(長すぎて、勝手に改行されていますが、一行にして試してください)

DoCmd.OpenForm "F運転手割当登録", acNormal, , "W業務依頼日 = " & CDate(Me![lstWariate].Column(0)) & " And " & "W使用車両 = " & Me![lstWariate].Column(1)

QAccessの削除クエリについて

『先月分のデータを全て削除』という削除クエリを作りたいのです。
本を見ても、
『指定した日の○日前の分までのデータを削除する』はあるのですが・・・・。

例えば、
5月5日にクエリを実行しても、5月10日にクエリを実行しても、4月30日以前のデータが削除されて欲しいのですが。
よろしくお願いいたします。

Aベストアンサー

>『先月分のデータを全て削除』
ということであれば下記条件で削除クエリを作成
すればできます。
---
フィールド:式:Month([対象日付フィールド])
抽出条件:Month(DateAdd("m",-1,Now()))

QAccessのクエリ。日付と顧客で売上合計をだす。

期間を指定して、顧客の売上を合計したいです。

2つのテーブルからクエリを作成しました。

tbl顧客
顧客番号
顧客名

tbl販売
販売番号
日付
顧客番号
金額

Q_売上
日付
顧客番号
顧客名
金額

∑をクリックして、金額の集計は[合計]にしています。
その他は、[グループ化]です。

日付の抽出条件は、
Between [開始] And [終了]
としています。

顧客毎に合計を出したいです。
よろしくお願い致します。

Aベストアンサー

日付の集計をグループ化ではなく、Where 条件にすれば
よろしいかと。

Qアクセスのクエリでレコード削除ができません。

アクセス超初心者です。

テーブルを商品コードでくっつけて、クエリのデザインビューで表示しました。

いらないレコードを削除しようとしたところ、できません。

くっつける前の、テーブルではできますが、クエリで実行させ、レコードを削除しようとしたところできません。

どうしたらよいのか教えてください。

あと、もうひとつ、クエリで、出力したいフィールド名をドラッグしたあと、削除したいときには、どうすればよいでしょうか?

表示しないなら、できるのですが・・・。削除がわかりません。

よろしくお願いいたします。

Aベストアンサー

二つのテーブル構造が不明
クエリのSQL文も不明
サンプルデータ

以上三点が分からないと回答のしようもありません。
SQL文はクエリをデザインビューで開いて
その上で右クリックすると現れるコンテキストメニューに
SQLビュー が有りますので切り替えると
SELECT ・・・・ てのが有りますのでコピーして此処に貼り付けできます。

クエリはSQL文を分かりやすいように作られたモノで実体はSQL文です。
掲示板ではこのSQL文でやり取りをします。
さて、なぜ削除できないかというと、そのように作ってしまっているからです。
このリンク先の説明を理解すれば原因が突き止められます。
クエリのデータを編集できない状況
http://office.microsoft.com/ja-jp/access-help/HA010097876.aspx

フィールドの削除は、Access2010の場合なら
リボンの中に「列の削除」が有ります。
または、フィールド名の少し上にマウスカーソルを持って行くと
下向きの太い矢印になるのでクリック、列全体が反転しますので Deleteキーで削除
なお、次回からはAccessのバージョンも明記しましょう。

二つのテーブル構造が不明
クエリのSQL文も不明
サンプルデータ

以上三点が分からないと回答のしようもありません。
SQL文はクエリをデザインビューで開いて
その上で右クリックすると現れるコンテキストメニューに
SQLビュー が有りますので切り替えると
SELECT ・・・・ てのが有りますのでコピーして此処に貼り付けできます。

クエリはSQL文を分かりやすいように作られたモノで実体はSQL文です。
掲示板ではこのSQL文でやり取りをします。
さて、なぜ削除できないかというと、そのように作ってしまっているか...続きを読む

Q★クエリでの日付の抽出

アクセス2000で注文書の管理をしています。
注文書テーブルにある「支払日」フィールドをもとにクエリで抽出を行いたいのですが、
その抽出条件を『今日以前7日間~今日以降7日間』としたいのです。
その場合、抽出条件はどのように記述すれば良いでしょうか?
ご回答をお願いします。

Aベストアンサー

日付の抽出条件で
Between DateAdd("d",-7,Now()) And DateAdd("d",7,Now())
とすればできます。
DateAddとは、ある日付から何(日、月、年など)をどれくらい加算する
という関数です。
7日前は "d"(日)を-7日今の日付から(Now())加算する
7日後は "d"(日)を7日今の日付から(Now())加算する
と言う意味です。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング