• ベストアンサー

ACCESS_VBAでクエリのアップデートを自動化したい。

ACCESS2003を使用しております。 クエリ削除→クエリの追加を自動化したいと思っております。(ただし、MDBが保存してある場所は一定ではありません。) 1.仕組みは、更新用のMDBに置き換えたいクエリを作っておきます。 2.AotoExecなどで自動起動します。 3.WindowsAPIを使ってMDBを指定してもらいます。 4.クエリを入れ替えるマクロを起動します。 という流れにしたい場合、3.の作り方を教えてもらえませんでしょうか。

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

  • ベストアンサー
回答No.1

クエリを入れ替えるマクロとは? (1)マクロが既に存在し、それを実行? (2)そうじゃなく、新規SQL文を任意にアクセスに登録? よくわかりませんが、 (1)の場合はAccess.Application.Runを利用(もしこっちでわからなかったら、補足で再度質問してください。) (2)の場合はDAOで操作します。 Sub Main()   Dim daoDB  As DAO.Database   Dim strSQL As String      ' データベースを開く   Set daoDB = DBEngine.Workspaces(0).OpenDatabase("C:\db2.mdb")      '作成するクエリのSQL   strSQL = "SELECT * FROM TABLE1"      'クエリ作成   Call QryCre(daoDB, "test", strSQL)      daoDB.Close   Set daoDB = Nothing End Sub 'クエリ作成 Private Function QryCre(inDaoDB As DAO.Database, ByVal inName As String, ByVal inSQL As String) As Boolean   '問答無用でクエリ削除   Call QryDel(inDaoDB, inName)      'クエリを作成する   inDaoDB.CreateQueryDef inName, inSQL End Function 'クエリ削除 Private Function QryDel(inDaoDB As DAO.Database, ByVal inName As String) As Boolean   On Error Resume Next   inDaoDB.QueryDefs.Delete inName   QryDel = (Err.Number = 0&) End Function

関連するQ&A

  • Access画面について教えて下さい。

    Access2002です。 aaa.mdbをフォームで開きこの画面で右上の四角形が2個重なっているマークで任意の大きさにしてそのまま終了したとします。   次にbbb.mdbをフォームで開くとaaa.mdbとは全く関係ないのにbbb.mdbは先のaaa.mdbの画面サイズで開いてしまいます。いちいち右上の最大化のマークをクリックしなければなりません。 aaa.mdbは常に前に指定したサイズで起動し、bbb.mdb, ccc.mdb.....等は常に最大で起動する事は出来ないのでしょうか。 aaa.mdbを閉じる時□のマークをクリックしてから閉じれば問題は無いのですがこれでは何だかコンピュウーターらしくないので閉じる時マクロで最大化を指定しそれから閉じるを入れたマクロでやっても駄目でした。やはり手動で□マークをやらねばなりませんでした。 bbb.mdbに開く時最大になるようマクロのAutoExceを指定しても駄目でした。 これはAccessの仕様でしょうか。何か方法とかありましたらよろしくお願いします。

  • Access、更新クエリ実施後更新用データ削除

    こんにちは、いつもお世話になります。MS-Access2003です。 マクロで、更新クエリを開いて更新を実行したとして、 その「クエリを開く」行の次に、更新用のデータの入ったテーブルを空にする行を追加したいのですが、関数が分かりません。 何というマクロアクションを指定すれば良いでしょうか?

  • Access内の任意のクエリを指定して起動する

    「ツール」→「起動時の設定」をしておくと、Accessを起動するときに、開くフォームやクエリを指定できますが、 そうではなく、任意のクエリを指定してAccessを起動させることはできないでしょうか? 目的としては、 sample.mdbのなかに ・ユーザ一覧を出すクエリ ・本日の新規登録者を出すクエリ ・今月の新規登録者を出すクエリ があります。 すでにあるホームページからリンクを張って、これらのクエリの結果がそのまま見られたらいいなと思うのです。 イメージとしては file://C:\sample.mdb とするときの引数を変えたら 指定したクエリが起動するといいな、という感じです。 ご存知の方いらっしゃいましたらご教授ください。 よろしくお願い致します。

  • Accessのクエリを、別のmdbファイルとして書き出す方法

    今日は。いつも助けて頂いております。 Accessの選択クエリで、必要なデータを抽出し、 それを別のフォルダに、新規のmdbファイルとして 書き出したいと思っています。 たぶん、作成した選択クエリを、エクスポートするときに保存形式と保存する場所を指定すれば手動でできるのだと思いますが、 これを自動化する方法はありますか?

  • テーブルにデータがインポートされたら追加クエリを自動実行出来ますでしょうか?

    初めて質問させて頂きます。 ACCESS2000でA.mdb(ADBとします)とB.mdb(BDBとします)の2つのDBが有るとします。A.mdbに1日に何度かデータがインポートされます。インポートされる際に以前のデータは削除されています。この時、ADBのテーブルにデータがインポートされた時に BDBで追加クエリにて自動実行する事は可能でしょうか? VB関係はまだ知識が乏しい身なので是非可能かどうかお教えを請いたいと思います。又、可能であればその方法もヒント的にでも良いのでお教え頂きたいと思います。何卒宜しお願い致します。

  • Accessのクエリについて

    Accessの初心者です。 “クエリ”がよくわからなくて困っています。 (1)テーブルの情報を更新した場合、クエリも自動で内容が更新するのでしょうか? 複数のクエリがある場合、テーブル更新後すぐにアクセスを閉じて、次にアクセスを起動させた時はクエリの内容も更新されるか。 それとも、テーブル更新後に各クエリを実行しないと更新しないとでしょうか。 (2)クエリ実行後、表示されたデータの一部を書き換えて出力した場合、元のテーブルの内容も変更されてしまうのでしょうか。 教えてください。 どうぞよろしくお願い致します。

  • EXCEL VBA クエリーテーブルの更新

    EXCEL2007 ワークシートのクエリーテーブルの更新で、メールで毎日送られてくる同じ形式のCSVデータで更新したいのですが、ファイル名はいつも違います。ダイアログボックスを開かずに、ファイル名(パスは固定)を指定して更新するマクロは作成可能でしょうか? OUTLOOK で添付ファイルを指定のパスへ保存するマクロはできています。 同じファイル名で保存するのは避けたいと思っています。 外部データ範囲のプロパティの”ファイル名確認のチェック欄”をはずすとファイル名が同一の必要があり出来ないと思います。 ダイアログボックスでファイルをしてするとオペレーターが間違う可能性があるので、 OUTLOOKで保存したファイル名を指定して更新したいのです。 よろしくお願いいたします。

  • ACCDE形式でクエリの警告メッセージを非表示に

    Access2007を使用しています。 職場で複数のPCで使用するAccessデータベースを作成しています。 更新クエリや削除クエリを複数使っているのですが 内部構造を守るためにACCDE形式で保存しています。 そこで、更新クエリや削除クエリを開くと 「○件のデータが更新されます」と警告メッセージが表示されます。 警告メッセージが表示されないよう ボタンフォーカス時にSetWarningsをFalseにするようマクロを組んでいます。 (クリック時にはマクロビルダによるクエリを開くコマンドが組んであるためフォーカス時にしています) この場合、ACCDB形式であれば正常に動作するのですが ACCDE形式で保存すると正常に機能せずデータ更新の警告メッセージが表示されるようになります。 どうにか警告メッセージが表示されないようにする方法はありませんでしょうか? どうかご助力をお願いします。

  • エクセルVBAでの自動ファイル保存

    エクセルVBAを使い入力したシート(ファイル)を、一定のデータが 入力された時点で指定した場所に例えば作成日をファイル名にして自動 的に保存していくようにしたいのですが、プログラムはどのようにすればいいのでしょうか? 実現させたいプログラムは、このような感じにしたいです。 1.VBAで指定シートにデータ入力→2.データ数10個で自動的に日付をファイル名にして自動的に保存→3.更に、データ10個追加された時点で前に作成されたファイルを自動で更新→4.データの入力完了で更に自動で更新 2~4のプログラムをご教授お願いします。

  • 自動起動のマクロorモジュールの設定は?

    Access2000の初心者です。学習用のmdbファイルをダウンロードしました。 このmdbファイルを開くと自動的にフォームが開いて ある作業が選択できます。 ところで、AutoExecマクロと呼ばれるもので上記のようなことができる そうですが、ダウンロードしたmdbファイルをシフトクリックで 開いても該当のマクロは見当たりません。マクロ以外で このようにmdbファイルを開くと同時に自動実行させるプログラム?を 書くにはどうすればよいのですか? ちなみに、例の学習用サンプルファイルにはマクロもモジュールも (少なくともリストを見る限るでは)ありませんでした。 クエリは何個かあります。フォームは1個だけです。

専門家に質問してみよう