• ベストアンサー

Access2007で、テキスト型から時刻変換のやり方についての質問で

Access2007で、テキスト型から時刻変換のやり方についての質問です。 課題でアルバイトの出勤管理システムみたいなものを作ろうとしています。 ルックアップのコンボボックスで時刻を選択できるようにしてテーブルに保存しているのですが、コンボボックスだとテキスト型で保存されてしまうのでそこから時刻に直したいと思っていますが、やり方が分かりません。 出勤時間と退勤時間などは「時」と「分」で分けています。 クエリを使ってDateDiffを使うと思うのですが、とんでもない時間が出てしまいます。 誰かやり方が分かる方がいらっしゃったら、教えてください。 ご協力よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • layy
  • ベストアンサー率23% (292/1222)
回答No.1

参考に。 例えば コンボボックスで「 9」「45」と「16」「15」を選ばせて テキストの「 9:45」と「16:15」が決まってから時間差計算は面倒かと思います。 コンボボックスですから見せない列に時間計算用の値を保持する。「540」「45」と「960」「15」みたいに。この考え方で975分-585分で390分、6時間半と求めることができるかと思います。 VBAでロジック組む、関数駆使でなく、クエリを主に使う前提です。単純ケース想定です。 アクセスなので値が決まってしまうものは、計算するでなく定義テーブルとでもして保持しクエリで連結することにより値取得するでもいいでしょう。応用力できてからもっといい仕組みにする。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

>誰かやり方が分かる方がいらっしゃったら、教えてください 尋ね人の情報を聞いているような表現だが、アクセスを使っている人はみな知っているよ。 Googleで「アクセス 時刻文字列」や「アクセス 時刻文字列 時刻化」で照会すると沢山記事が出る。 http://support.microsoft.com/kb/879808/ja など聞いていることそのものではないですか。 その後「timediff アクセス」で照会し勉強のこと ーー むしろ「アクセス 勤怠管理」「アクセス 出勤管理」などで照会して記事をみるのも良いかも。

noname#132321
質問者

お礼

答えてくださって、ありがとうございます。 「アクセス 出勤管理」ですね・・・調べてみます! ありがとうございました!

すると、全ての回答が全文表示されます。
  • szk9998
  • ベストアンサー率45% (1028/2243)
回答No.2

VBAを使わないで、具体的にどうするかはここではいいませんが、 単純に計算式だけだと、 (1)時:分をそれぞれ、Date型に変換  出勤時刻=CDate(時 & ":" 分 & ":00")  退勤時刻=CDate(時 & ":" 分 & ":00") (2)DataDiff関数を使用して、間隔を計算する  勤務時間=DataDiff("n" , 出勤時刻 , 退勤時刻)  ※勤務時間はVariant型 ここで算出されたのは、『分』です。 マクロだけでも、できないことはないと思いますが、おわかりですか?

noname#132321
質問者

補足

答えてくださって、ありがとうございます。 マクロだけでもできるのですか? できれば、マクロだけのやり方を教えてもらいたいです! よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A