
お世話になっております。
Accessが無操作状態が5秒あったらフォームを閉じるようにしたいと考え、公開されているコードを参考に下記のようにしました。
:::::::::::::::::::::::::::::::::::::
1 Option Compare Database
2 Option Explicit
3
4 Dim sigStart1 As Single
5 Dim sigStart2 As Single
------------------------------------------------------------------------------------
6 Private Sub Form_Load()
7
8 TimerInterval = 1000
9 sigStart1 = Timer
10
11 End Sub
------------------------------------------------------------------------------------
12 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
13
14 sigStart2 = Timer
15
16 End Sub
-------------------------------------------------------------------------------------
17 Private Sub Form_Timer()
18
19 Dim sigStop As Single
20 Dim IngTimer As Long
21
22 Me.KeyPreview = True
23 sigStop = Timer
24
25 If sigStart2 <> 0 Then
26 IngTimer = Fix(sigStop - sigStart2)
27 Else
28 IngTimer = Fix(sigStop - sigStart1)
29 End If
30
31 If IngTimer >= 5 Then
32 DoCmd.Close
33 End If
34
35 End Sub
-------------------------------------------------------------------------------------
上記のコードで閉じることはできるのですが、警告なしに急に閉じてしまうため、
警告のメッセージを出せるように改良したいです。
そこで31~33行目を次のようにしました。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
If InfTimer >=5 Then
Dim res As vbMegBoxResult
res = MsgBoxres("作業を継続しますか?", vbYesNo + vbInformation)
If res = vbYes Then
MsgBox "OK"
Else
DoCmd.Close
End If
End If
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
警告は出ますが、メッセージボックスのYesNoを選択が必要になり、目的から外れてしまいました。
また、Yseを選択するとそれ以降連続してメッセージボックスが表示されてしまいます。
自分なりに調べ「Popup」を使ってみましたが、うまく出来ず断念しました。
現状説明が大変長くなってしまい申し訳ありませんが、教えていただきたいのは下記の2点です。
① メッセージボックスのように警告を出し、かつ無操作状態が継続した場合は、
自動でフォームを閉じる方法
② ①の警告で「Yes(継続)」を選択した場合、また無操作状態が継続するまで
メッセージボックスがでない方法
お手数をおかけしますが、何卒ご教示のほどよろしくお願い申し上げます。
No.4
- 回答日時:
新たに作ったフォーム側で、自動的に閉じるなら、こちらでもタイマー処理したほうが良いかも。
ShowMeHowさん、返信ありがとうございます。
新しいフォーム側でもタイマー処理したらうまくいきました。
教えてくださりありがとうございました。
No.3
- 回答日時:
vbaよくわからんけど、、、
31 If IngTimer >= 5 Then frmxxx.show vbmodal
32 sigStart2 = Timer
33
として、新たに作ったfrmxxx側で、、、
OK button click時に
docmd.close
CANCEL button click時に
me.close
とするとか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
このQ&Aを見た人はこんなQ&Aも見ています
-
Access フォーム自動終了
Access(アクセス)
-
一定時間操作されないと自動で終了させる方法
Visual Basic(VBA)
-
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
-
4
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
5
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
6
ACCESSで開いているユーザーの特定方法
Access(アクセス)
-
7
VBA=一定時間エクセルの入力操作がない場合、自動的にそのブックを閉じたい
Windows Vista・XP
-
8
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
9
【アクセス】「ほかのユーザー」を調べる方法
Access(アクセス)
-
10
Access終了時にマクロまたはVBAの実行したい
その他(Microsoft Office)
-
11
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
12
アクセスVBAのMe!と[ ]
Access(アクセス)
-
13
Access ファイルの権限を設定したい
Access(アクセス)
-
14
アクセスでフォームビューがみれません?
Access(アクセス)
-
15
access マクロでのフィルタの解除の方法
Access(アクセス)
-
16
フォームの高さを数値で指定したいのですが
Excel(エクセル)
-
17
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
18
ACCESS2007 フォーム 「バリアント型でない変数にNull値を代入しようとしました」エラーの
SQL Server
-
19
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
-
20
accessでlaccdbファイルが削除できずファイルが使えない
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA リストボックスをダブルク...
-
バイク王のオンライン査定を作...
-
ACCESS、フォーム等のmdbを入れ...
-
Googleフォームについて(至急)
-
バイク王の買取り金額検索フォ...
-
複数の条件で検索したい!
-
Formの間に値を渡すことについて
-
C#でアプリの終了の仕方
-
OCXのアイコンの登録の仕方
-
アクセス フォームが存在する...
-
ExcelVBAでユーザーフォーム内...
-
フォームの再表示に関して
-
結果を引き継いで別フォームへ...
-
サブフォームの行ごとにコンボ...
-
ACCESS2000 レコードセレクタ
-
PHP HTMLフォームの作成と取得...
-
サブフォームのサブフォームの...
-
Accessの動作がおかしい?
-
Googleフォーム・複数人の申し...
-
access リストボックスからテキ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Googleフォーム・複数人の申し...
-
VBA リストボックスをダブルク...
-
Accessでフォームから別フォー...
-
C# 別なフォームへ値を渡す (...
-
VBAにてメッセージボックスを最...
-
PDFフォームに本日の日付を自動...
-
アクセスVBA フォームのス...
-
サブフォームの新規レコードに...
-
メッセージボックスの背景色
-
VBプログラムの終了
-
メインフォームからサブフォー...
-
Access 無操作の場合、自動で閉...
-
子フォームから親フォームのオ...
-
リストボックスの選択解除
-
accessで2つ以上のフォームを起...
-
フォーム上の全てのコントロー...
-
ユーザーフォーム上にアイコン...
-
ExcelVBAでユーザーフォーム内...
-
ASP.NETとC#でWebフォームを呼...
-
PDFフォーム内で日付計算したい...
おすすめ情報