• 締切済み

タイム計測機能

ACCESSを使って簿記の検定対策システムを作ろうとしています。 そのなかで過去問題にタイム計測機能を付けたいのですが、どうすればいいのかわかりません。 試験開始からカウントダウンが始まるといったものです。 ACCESSでそのようなことは可能なのでしょうか?またどうやったらいいのかを教えていただきたいです。 漠然とした質問で申し訳ありませんがお願いいたします。

みんなの回答

  • szkatnr
  • ベストアンサー率75% (3/4)
回答No.3

#1です(再) えーーー 今見たところ、先のコード内でイージーミスを発見しました。 nM = Int(n / 60)  →  nM = Int((n - nH * 3600) / 60) としてください。

noname#75039
質問者

お礼

ご回答ありがとうございました。 質問が悪くて回答を頂けないと思っていたのでチェックするのを忘れていました。 せっかく回答していただいたのに長らく放置してしまって大変申し訳ございません。 さっそく試させていただきます。

  • szkatnr
  • ベストアンサー率75% (3/4)
回答No.2

#1です。 先のコードですが、一応、Form_Open で TimerInterval = 0 としといた方がいいかもしれません。 ※Form_Open はフォーム「開く」イベントです。 Private Sub Form_Open(Cancel As Integer)   Me.TimerInterval = 0 End Sub

  • szkatnr
  • ベストアンサー率75% (3/4)
回答No.1

フォームに ・ラベル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に変えてください。

関連するQ&A

専門家に質問してみよう