- 締切済み
Access97 → Access2002
最近会社でAccess97からAccess2002へ乗り換えた(パソコンもOSも変更)のですが、ファイルを変換(2000形式に)してから、不具合がおきています。 あるデータベースからデータを抽出する作業なのですが、 [A]・[B]二つのテーブルからテーブル[C]を作成する[テーブル作成クエリ]があり、これで作成した[C]をもとにクエリ[D]を実行し、Excelに[D]をエクスポートするという形になっています。 [テーブル作成クエリ]を手動で実行すると正常にテーブルが作成されるのですが、 マクロで実行するとうまくいきません。 マクロは メッセージの設定 ・・・いいえ クエリを開く ・・・テーブル作成クエリを実行 ワークシート変換 ・・・[D]をExcelのワークシートにエクスポート メッセージボックス・・・"Excelへの書き出しを終了しました" となっています。 具体的には、テーブル作成クエリを実行するときには、 集計開始日と終了日をパラメータとして入力する必要があり、 作成されたテーブル[C]には入力した開始日と終了日が書き込まれます。 [D]のクエリを実行する際には[C]の開始日と終了日が抽出条件となります。 手動で[テーブル作成クエリ]を実行したときには [C]に開始日と終了日が書き込まれているのですが、 マクロで実行したときには、[C]にこの開始日と終了日が書き込まれないため、 結果的にフィールド名だけが入力されたデータの全くないExcelファイルが作成されます。 ちなみにマクロで実行する場合は、あらかじめ日付範囲を入力するフォームに開始日と終了日を入力してから実行します。 長々と書いてしまいましたが、これでおわかりいただけるでしょうか? わかりにくければまた補足いたしますので、 マクロで実行したときに正常に動作するようにするにはどうすればいいのか なにか解決策がありましたら教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ykkw_2001
- ベストアンサー率26% (267/1014)
>マクロで実行したときには、[C]にこの開始日と終了日が書き込まれない ここが問題なのでしょうか? Access97では、これはうまく行っていたがAccess2002にするとダメというわけですね。 もしよかったら、問題のテーブル作成クエリのSQL内容を、Access97のものと、Access2002のものを比べてみて下さい。 もし違っていたら、変換プログラムのバグでしょうし、同じなら他に原因があると思います。 その場合は、可能な範囲でSQLを補足して下さい。
お礼
回答ありがとうございました。 今朝補足をしたのですが、その後原因が見つかって解決しました。 日付を入力するフォームのテキストボックスの設定がまずかったようです。 テキストボックスのプロパティーのデータタブにある定型入力が 9999/99/99となっていたのを定型入力ウィーザードにしたがって 9999\/99\/99;0;というふうに変更したら、ちゃんと動くようになりました。 今ひとつ“?”は払拭されていないのですが、ちゃんと動くようになったので、 ひとまず安心しました。 また何かあったときにはよろしくお願いします。 自分の質問にちゃんと答えてくれる人いるというのは結構うれしいものですね。 ありがとうございました。
補足
回答ありがとうございます。 >>マクロで実行したときには、[C]にこの開始日と終了日が書き込まれない > ここが問題なのでしょうか? >Access97では、これはうまく行っていたがAccess2002にするとダメというわけで>すね。 そのとおりです。質問が回りくどくてすいません。 >SQL内容を、Access97のものと、Access2002のものを比べてみて下さい。 比べて見ましたが、全く同じでした。 テーブル作成クエリ自体は普通に実行すれば正常に動きます。 開始日も終了日もちゃんと書き込まれるんです。 でも、マクロで実行すると指定した範囲内のデータは抽出してくるのに 開始日と終了日を書き込まないんです。なぜだか・・・ 下にSQLを補足しておきます。 SELECT Tマスタ.フリガナ, Sum(T明細データ.金額) AS 金額の合計, Sum(T明細データ.消費税額) AS 消費税額の合計, 0 AS 前月繰越,・・・・(省略), [Forms]![F分岐]![日付範囲(始)] AS 集計日付始, [Forms]![F分岐]![日付範囲(終)] AS 集計日付終 INTO T集計表データ FROM T明細データ RIGHT JOIN Tマスタ ON T明細データ.フリガナ = Tマスタ.フリガナ WHERE (((Tマスタ.区分)=1) AND ((Tマスタ.集計用コード)<>1) AND ((T明細データ.明細日付) Between [Forms]![F分岐]![日付範囲(始)] And [Forms]![F分岐]![日付範囲(終)])) GROUP BY Tマスタ.フリガナ ORDER BY Tマスタ.フリガナ;