Yahoo!ショッピング

2019年09月09日

Access VBA BeforeUpdate イベントの注意点

Accessで便利なBeforeUpdateイベントの注意点。忘れそうなのでメモ。
テキストボックスに入力エラーがあった場合、
BeforeUpdateイベントで
Cancel = True

とすれば更新をキャンセルできる。
しかし、このままだと、テキストボックスに入力したものがそのまま残ってしまう。
もともとの値に戻したい場合は、
Cancel = True
Me.Undo

と加えると表示も元の値に戻る。

posted by 秘構竜 at 22:02 | Comment(0) | 技術系

2019年09月05日

Access ディスクまたはネットワークのエラー(実行時エラー 3043)

このエラーはAccessでリンクテーブルを使用していて、リンク先がネットワーク上の共有フォルダに設定しているとよく起こる問題。ネットワークが不安定だったり、クライアントPCが休止(スリープ)に入ったなどでデータベースが切断されて起こる。
それでもすぐに復帰、再接続できることもあるが、いったん実行時エラー3043が出ると、「Accessを再起動してください」と言われてどうにもならなくなる。
vbaでopentableしてもダメ。リンクテーブルをRefreshLinkしてもエラーになる。

しかし、なぜかエラーになっているフォームを閉じて、開きなおすとあっさり再接続できる。
vbaなら
docmd.close acform,"フォーム名"
docm.openform "フォーム名",acform

で開きなおすというエラー処理を入れるといいかもしれない。
Access VBA
posted by 秘構竜 at 21:55 | Comment(0) | 技術系

2019年09月04日

Accessのナビゲーションウィンドウにテーブルを非表示にする

Accessのセキュリティ対策
ユーザーに触らせたくないテーブルは隠しオブジェクトにするとよい。

CurrentDb.TableDefs("非表示にしたいテーブル名").Attributes = 1
Application.RefreshDatabaseWindow

表示を戻す場合は0にする。

もう一つ、Shiftキーを押しながら起動するとナビゲーションウィンドウが表示される問題。
以下のブログにばっちり対策が載っていた。ありがたい。
※ただし、あらかじめ起動時のフォームに解除するボタンを設置しておかないと、永遠に解除できなくなり何もできなくなるので注意!

起動時のシフトキー無効
https://blog.goo.ne.jp/devken--3012/e/cfdbfcca40375e98a93ff5564a2d4be5
Access VBA
posted by 秘構竜 at 23:01 | Comment(0) | 技術系

【温泉】ホテル・旅館ランキング(全国)
秘構竜の日記」の先頭へ