- 締切済み
タイム計測機能
ACCESSを使って簿記の検定対策システムを作ろうとしています。 そのなかで過去問題にタイム計測機能を付けたいのですが、どうすればいいのかわかりません。 試験開始からカウントダウンが始まるといったものです。 ACCESSでそのようなことは可能なのでしょうか?またどうやったらいいのかを教えていただきたいです。 漠然とした質問で申し訳ありませんがお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- szkatnr
- ベストアンサー率75% (3/4)
#1です(再) えーーー 今見たところ、先のコード内でイージーミスを発見しました。 nM = Int(n / 60) → nM = Int((n - nH * 3600) / 60) としてください。
- szkatnr
- ベストアンサー率75% (3/4)
#1です。 先のコードですが、一応、Form_Open で TimerInterval = 0 としといた方がいいかもしれません。 ※Form_Open はフォーム「開く」イベントです。 Private Sub Form_Open(Cancel As Integer) Me.TimerInterval = 0 End Sub
- szkatnr
- ベストアンサー率75% (3/4)
フォームに ・ラベル0(経過時間表示用のラベル) ・コマンド1(試験開始用のボタン) があるとして、以下のコードを書きましたのでご参考にまでに。 ※Form_Timer はフォームの「タイマ時」イベントです。 Option Compare Database Option Explicit Private dBgn As Date Private dEnd As Date Private Sub Form_Timer() Dim n As Long Dim nH As Integer Dim nM As Integer Dim nS As Integer If Now() < dEnd Then n = DateDiff("s", dBgn, Now()) nH = Int(n / 3600) nM = Int(n / 60) nS = Int(n Mod 60) Me.ラベル0.Caption = Format(nH, "00") & ":" & Format(nM, "00") & ":" & Format(nS, "00") Else Me.TimerInterval = 0 'タイマ終わり Me.ラベル0.Caption = "Time Over" End If End Sub Private Sub コマンド1_Click() dBgn = Now() dEnd = DateAdd("m", 120, dBgn) '120分で終わりの場合 Me.TimerInterval = 1000 'タイマ開始(1000ミリ秒 = 1秒毎) End Sub ※投稿するのに、TABが使えないので、全角スペースでインデントしていますので、コピペで試す場合は、全角スペースをTABに変えてください。
お礼
ご回答ありがとうございました。 質問が悪くて回答を頂けないと思っていたのでチェックするのを忘れていました。 せっかく回答していただいたのに長らく放置してしまって大変申し訳ございません。 さっそく試させていただきます。