重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Access2007を使用しています。

職場で複数のPCで使用するAccessデータベースを作成しています。
更新クエリや削除クエリを複数使っているのですが
内部構造を守るためにACCDE形式で保存しています。

そこで、更新クエリや削除クエリを開くと
「○件のデータが更新されます」と警告メッセージが表示されます。

警告メッセージが表示されないよう
ボタンフォーカス時にSetWarningsをFalseにするようマクロを組んでいます。
(クリック時にはマクロビルダによるクエリを開くコマンドが組んであるためフォーカス時にしています)

この場合、ACCDB形式であれば正常に動作するのですが
ACCDE形式で保存すると正常に機能せずデータ更新の警告メッセージが表示されるようになります。

どうにか警告メッセージが表示されないようにする方法はありませんでしょうか?
どうかご助力をお願いします。

A 回答 (2件)

> 警告メッセージが表示されないよう


> ボタンフォーカス時にSetWarningsをFalseにするようマクロを組んでいます。
> (クリック時にはマクロビルダによるクエリを開くコマンドが組んであるためフォーカス時にしています)

普通に考えれば

「クリック時」 のマクロの
「クエリを開く」 コマンドの前後に
「メッセージの設定」 アクションを追加すれば良いのでは?

なお、「メッセージの設定」 は、
リボンの 「すべてのアクションをを表示」 をオンにしておかないと
アクションの一覧に表示されません、

あと、気になる点。

> ボタンフォーカス時にSetWarningsをFalseにするようマクロを組んでいます。
>
どのタイミングで SetWarnings を True に戻すのでしょうか?

VBA で False にすると、
明示的に True にするか、 再び開くまで False のままです。
あぶなくて仕方ないでしょう?
せっかく作ったフォームが一瞬でなくなったりとか。

ですから、一連の処理は
すべて マクロ、あるいは VBA のどちらか一方で済ませるのが望ましいです。

現在の処理のままで、

> この場合、ACCDB形式であれば正常に動作するのですが
> ACCDE形式で保存すると正常に機能せずデータ更新の警告メッセージが表示されるようになります。

この問題を解決するには
ACCDB形式 で コンパイルしてから ACCDE形式 に変換してみてください。

コンパイルは VBE の画面で
メニューバー の [デバッグ] - [xxx のコンパイル] です。念のため。
「ACCDE形式でクエリの警告メッセージを」の回答画像2
    • good
    • 0

多分、


Docmd.Openquery・・としているかと思いますが、
DAOに参照設定してあれば
Dim Db As Database
Set Db = Currentdb
Db.Execute "アクションクエリ名",DbfailonError
で確認メッセージが出ないようになります。
ADOなら
Set Cn = Currentproject.Connection
Cn.Execute・・・
です。
詳しくは、Database.Execute メソッドとConnection.Execute メソッド両者のExecuteメソッドをヘルプで確認してみてください。

併せて
BeginTrans メソッド、CommitTrans メソッド、RollbackTrans メソッドの
トランザクション処理も目を通して置かれることをお勧めします。
    • good
    • 0

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