プロが教えるわが家の防犯対策術!

数字を入力し次のテキストボックスに移るときに自動的に「:」をつけた形にしてaccess上に記憶させるというものを作ってます。たとえばフォームのテキストで「1300」といれたら次のテキストボックスに移るときに自動的に「13:00」とテキストボックスに収められそれをaccess上に残すという形です。うまくいかずに困ってまして大変説明が曖昧ですがどなたか回答くださいますようお願いします。

A 回答 (2件)

うまくいかない・・・とはどのようにでしょうか?


考え方だけと思いますが、こんな感じのファンクションで解決できるかも。

Private Function GetTimeString(ByVal strValue As String) As String
  ''数字チェック
  If Not IsNumeric(strValue) Then GetTimeString = strValue: Exit Function
  ''桁数チェック
  If Len(strValue) > 4 Then GetTimeString = strValue: Exit Function
  ''4桁に調整
  strValue = Right("0000" & strValue, 4)
  ''時、分分解
  Dim hh As Integer
  Dim mm As Integer
  hh = Mid(strValue, 1, 2)
  mm = Mid(strValue, 3, 2)
  ''時チェック(24時間)
  If CInt(hh) < 0 Or CInt(hh) > 23 Then GetTimeString = strValue: Exit Function
  ''分チェック
  If CInt(mm) < 0 Or CInt(mm) > 59 Then GetTimeString = strValue: Exit Function
  
  GetTimeString = hh & ":" & mm
End Function

動作未確認です。なお、ソースの半角スペースは表示の関係上、全角になっています。
    • good
    • 0

accessの話でしたら、


テキストボックスのプロパティの定型入力を
00:00;0;_
としておくと、入力時に自動でコロンが追加されます。
VBでしたら、MaskedEditBox(だったかな)が同じような
機能を持っていたと思います。

access上に残すということについては、テーブルのデータとして
入れたいということでしたら、連結フォームを使えばそのまま
登録されますが、何かほかの事を考えていらっしゃるのでしたら
補足してください。
    • good
    • 0

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