Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1787 / 2272 ツリー ←次へ | 前へ→

【5267】日付の算出方法を教えてください。 nemotake 05/6/6(月) 11:20 質問[未読]
【5270】Re:日付の算出方法を教えてください。 小僧 05/6/6(月) 11:42 回答[未読]
【5279】Re:日付の算出方法を教えてください。 nemotake 05/6/6(月) 13:59 質問[未読]
【5283】Re:日付の算出方法を教えてください。 小僧 05/6/6(月) 14:38 回答[未読]
【5288】Re:日付の算出方法を教えてください。 nemotake 05/6/6(月) 16:00 お礼[未読]

【5267】日付の算出方法を教えてください。
質問  nemotake  - 05/6/6(月) 11:20 -

引用なし
パスワード
   月はランダムで日にちが決まっている場合の算出方法を教え下さい。関数があれば嬉しいのですが。
日にちが30日や31日の場合、大の月や小の月で実在日ではないときがあります。
たとえば日にちが31日で6月ですと6月31日や2月ですと2月31日になってしまい、うるう年でまた違ってきます。
IF文でひとつひとつ処理すればいいのですが、もっといいやり方があるのではと思い投稿しました。よろしくお願いします。

【5270】Re:日付の算出方法を教えてください。
回答  小僧  - 05/6/6(月) 11:42 -

引用なし
パスワード
   ▼nemotake さん:
こんにちは。

本日は2005年1月1日から何日目かを計算するコードです。

Sub test()
Dim A As Date
Dim B As Date

  A = #1/1/2005#
  B = Now()

  Debug.Print DateDiff("d", A, B)

End Sub

イミディエトウィンドウで確認されて下さい。

【5279】Re:日付の算出方法を教えてください。
質問  nemotake  - 05/6/6(月) 13:59 -

引用なし
パスワード
   ▼小僧 さん:
早速回答をいただきありがとうございます。

質問の仕方が悪かったのかもしれません。
テーブルに日にちのフィールドがあり、その内容が30とすると、
その項目を使用して日付を作成しようとすると、一月は0130、二月は0230、四月は0430になってしまいます。実際、二月は28日(うるう年は29日)にしたければいけないのですがどうすればいいでしょうか?31日の場合も同じで四月の場合は0431になってしまいます。実日付を算出するにはやはりIF文を使用するしかないのでしょうか?

【5283】Re:日付の算出方法を教えてください。
回答  小僧  - 05/6/6(月) 14:38 -

引用なし
パスワード
   ▼nemotake さん:
こんにちは。

>テーブルに日にちのフィールドがあり、その内容が30とすると、

フィールドは日付型でなく、数値型なのですね?

そうなると、
1 ) IsDate関数で日付が存在するものかを確認する。(2/30…×とか)
2 ) 存在しないものだったら、次月1日から1マイナスする

という処理でできそうですね。

Sub 末日あわせ()
  Dim Nen As Integer
  Dim Tuki As Integer
  Dim Nichi As Integer
  
  Nen = 2004
  Tuki = 2
  Nichi = 30
  
  If Not IsDate(Nen & "/" & Tuki & "/" & Nichi) Then
    Nichi = Day(CDate(Nen & "/" & Tuki + 1 & "/1") - 1)
  End If
  
  Debug.Print Nichi

End Sub

データに「32」とかありますと13月の処理が発生してしまうためエラーが出ます(笑)
まぁ、12月は大の月なのでそのへんのエラー処理はしていません。

【5288】Re:日付の算出方法を教えてください。
お礼  nemotake  - 05/6/6(月) 16:00 -

引用なし
パスワード
   ▼小僧 さん:
IsDate関数ですね。
早速やってみます。
ありがとうございます。

1787 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078242
(SS)C-BOARD v3.8 is Free