Access VBA質問箱 IV

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

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


3634 / 9994 ←次へ | 前へ→

【9619】Re:カレンダー式スケジュール表について(2)
回答  小僧  - 07/6/26(火) 13:04 -

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

申し訳ないのですが、仕様をずらずらと書かれていても
当方にはあまり理解できないので
一部分だけですが回答をさせて頂きます。


>連結:日01、D01、CC01、日02、・・・17日分
>Me.日01.ControlSource = 日01
>Me.DD01.ControlSource = D01
>Me.CC01.ControlSource = CC01
>
>For文を使ってまとめられる方法はないでしょうか?

For i = 1 to 17
    Me.Controls("日" & Format(i, "00")).ControlSource = "日" & Format(i, "00")
    Me.Controls("DD" & Format(i, "00")).ControlSource = "DD" & Format(i, "00")
    Me.Controls("CC" & Format(i, "00")).ControlSource = CC" & Format(i, "00")
Next i

コントロール名とコントロールソース名が一緒ですと
誤作動を発生させる可能性があるので、
テキストボックスの名前は例えば txt日01 とかにしておいた方が無難かもしれませんね。


> Dim inc01 As Variant  '最初に設定した日付を記憶
> Dim days01 As Variant  '曜日を確認する

>  No_holi = DMax("No_連休", "T_連")
>  inc01 = DLookup("[日01]", "T_連", "No_連休 = " & No_holi)
>
>  '抽出したデータから、日〜土を抽出する。
>  days01 = Right(Left(days01, 2), 1) ← 例) 7/25(土) の「土」を抽出したい


以下は強制ではありませんが…。

まず、No_holi のデータ型はどうなっているのでしょう?(恐らく数値型かな)
変数:inc01、days01 についてもVariant型で宣言している為、
コードが見づらいモノになってしまってないでしょうか。

当方であれば、T_連 の 日01 フィールドのデータ型を日付型にして
テキストボックスの書式で m/d(aaa) と設定し表示させ、
VBA のコードでは日付型で受ける方法を取ると思います。

曜日を抽出したければ Format関数で Format([日付],"aaa") で可能ですし、
そもそも

>  If inc01 = "日" Then
>
>  ElseIf inc01 = "月" Then
>
>  ・・・

の箇所ではWeekday関数で数値だけ取ってくれば処理が可能かと思われます。
更にSelect Case 文と合わせて(日01 が日付型だとします)


Dim No_holi As Long
Dim inc01 As Date

  '抽出したレコードから、最初の日を確認する。

  No_holi = DMax("No_連休", "T_連")
  inc01 = "#" & DLookup("[日01]", "T_連", "No_連休 = " & No_holi) & "#"

  Select Case Weekday(inc01)
    Case 1  '----日曜日----

    Case 2  '----月曜日----
    ・
    ・
    ・
    Case 7  '----土曜日----
  End Select


のような使い方ができるのではないでしょうか。

1,002 hits

【9614】カレンダー式スケジュール表について(1) たまお 07/6/26(火) 1:47 質問[未読]
【9615】カレンダー式スケジュール表について(2) たまお 07/6/26(火) 2:01 質問[未読]
【9619】Re:カレンダー式スケジュール表について(2) 小僧 07/6/26(火) 13:04 回答[未読]
【9639】Re:カレンダー式スケジュール表について(2) たまお 07/7/1(日) 23:12 お礼[未読]

3634 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078201
(SS)C-BOARD v3.8 is Free