回答編集履歴

2

追記2

2020/07/14 13:13

投稿

hatena19
hatena19

スコア33757

test CHANGED
@@ -99,3 +99,53 @@
99
99
  以上で、ご希望の動作になります。
100
100
 
101
101
  VBAは不必要なので削除してください。
102
+
103
+
104
+
105
+ 追記2
106
+
107
+ ---
108
+
109
+ コメントより
110
+
111
+ > ・[社員ID/氏名]のコンボボックス
112
+
113
+ ・テキストボックス[年(西暦)]と[月]の二つ
114
+
115
+ があり、社員IDと日付で抽出して月単位の勤務情報をサブフォームに表示しようとしています。
116
+
117
+
118
+
119
+ フォームのモジュールに下記の関数を作成します。
120
+
121
+
122
+
123
+ ```vba
124
+
125
+ Function SetFilter()
126
+
127
+ If IsDate(Me.[年(西暦)] & "/" & Me.[月] & "/01") Then
128
+
129
+ Me.subsub.Form.Filter = "出勤時刻>=#" & Me.一時 & "#" & _
130
+
131
+ " AND 出勤時刻<#" & DateAdd("m", 1, Me.一時) & "#"
132
+
133
+ Me.subsub.Form.FilterOn = True
134
+
135
+ Else
136
+
137
+ Me.subsub.Form.Filter = ""
138
+
139
+ Me.subsub.Form.FilterOn = False
140
+
141
+ End If
142
+
143
+ End Function
144
+
145
+ ```
146
+
147
+ [年(西暦)]と[月]のテキストボックスの「更新後処理」欄に下記のように設定します。
148
+
149
+
150
+
151
+ =SetFilter()

1

追記

2020/07/14 13:13

投稿

hatena19
hatena19

スコア33757

test CHANGED
@@ -29,3 +29,73 @@
29
29
 
30
30
 
31
31
  複数レコードを表示したいならサブフォームのレコードソースにはテーブルかクエリを設定して、各コントロールのコントロールソースを設定してください。
32
+
33
+
34
+
35
+ 追記
36
+
37
+ ---
38
+
39
+ やりたいことを想像して回答すると、
40
+
41
+
42
+
43
+ やりたいこと
44
+
45
+ - メインフォームのコンボボックスで社員名を選択する。
46
+
47
+ - その社員の勤怠データ(T-勤務のデータ)をサブフォームに表示される。
48
+
49
+
50
+
51
+ 上記の想像があっているなら下記のようにしてくだい。
52
+
53
+
54
+
55
+
56
+
57
+ メインフォーム
58
+
59
+  レコードソース 空欄のまま
60
+
61
+
62
+
63
+ コンボボックス
64
+
65
+  名前 cb社員ID
66
+
67
+  値集合ソース T-社員
68
+
69
+  連結列 1
70
+
71
+  列数 2
72
+
73
+  列幅 0
74
+
75
+
76
+
77
+ これで名前リストで選択できます。
78
+
79
+
80
+
81
+ サブフォームのレコードソースを「T-社員」に設定。
82
+
83
+ サブフォームのテキストボックスのコントロールソースに適切なフィールド名を設定。
84
+
85
+ (連結フォームにするということ)
86
+
87
+
88
+
89
+ サブフォームコントロールのリンクフィールドを下記のように設定。
90
+
91
+
92
+
93
+ リンク親フィールド cb社員ID
94
+
95
+ リンク子フィールド 社員ID
96
+
97
+
98
+
99
+ 以上で、ご希望の動作になります。
100
+
101
+ VBAは不必要なので削除してください。