質問編集履歴

5

追記

2019/07/16 02:56

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -193,3 +193,11 @@
193
193
  End Sub
194
194
 
195
195
  ```
196
+
197
+ ↓こちらのサイトを参考にしてみましたが、
198
+
199
+ サブフォームだけで、レコード削除したときはこちらでできたのですが、
200
+
201
+ 今回の場合はうまく使えなくて・・・
202
+
203
+ [参考にしてみた記事](https://hosopro.blogspot.com/2017/10/access-form-requery-record-keep.html)

4

追記

2019/07/16 02:56

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -55,3 +55,141 @@
55
55
  ##追記
56
56
 
57
57
  hatenaさんが提示してくださった感じで、追加後はサブフォームの帳票の方では、今追加したレコードをカレント?フォーカス?してある状況を作りたいです。
58
+
59
+
60
+
61
+ 現状の登録フォームの登録コマンドボタンの処理です。
62
+
63
+ ```VBA
64
+
65
+ '----------------------------
66
+
67
+ '登録・編集ボタン使用時
68
+
69
+ '----------------------------
70
+
71
+
72
+
73
+ Private Sub Button_Add_Click()
74
+
75
+
76
+
77
+ Me.Requery
78
+
79
+
80
+
81
+ '背景色(白)
82
+
83
+ Me.Text_CustomerName.BackColor = 16777215
84
+
85
+ Me.Text_Address.BackColor = 16777215
86
+
87
+
88
+
89
+ '未入力エラー処理 背景色(赤)
90
+
91
+ If IsNull(Me.Text_CustomerName) Or IsNull(Me.Text_Address) Then '顧客名
92
+
93
+ If IsNull(Me.Text_CustomerName) Then
94
+
95
+ Me.Text_CustomerName.BackColor = 12695295
96
+
97
+ End If
98
+
99
+ If IsNull(Me.Text_Address) Then '住所
100
+
101
+ Me.Text_Address.BackColor = 12695295
102
+
103
+ End If
104
+
105
+ MsgBox "未入力の項目があります", vbOKOnly + vbExclamation, "未入力エラー"
106
+
107
+ Exit Sub
108
+
109
+ End If
110
+
111
+
112
+
113
+ '追加・編集処理分岐
114
+
115
+
116
+
117
+ Select Case Me.OpenArgs
118
+
119
+
120
+
121
+ '追加モード
122
+
123
+ Case "追加"
124
+
125
+ Call add_tables
126
+
127
+ Call del_tables
128
+
129
+ MsgBox "追加しました", vbOKOnly + vbInformation, "確認"
130
+
131
+
132
+
133
+ 'マスタの更新
134
+
135
+ Dim a As String
136
+
137
+ a = IsNull(Me.Text_CustomerCode)
138
+
139
+ With Forms!F_CustomerMaster!Sub_CustomerMaster.Form
140
+
141
+ .Requery
142
+
143
+ .Recordset.FindFirst "F_CustomerCode = '" & 100 & "'"
144
+
145
+ End With
146
+
147
+
148
+
149
+
150
+
151
+ 'レコード数をカウントする
152
+
153
+ TOTAL = DCount("F_CustomerCode", "T_Customer", "F_DeleteFlag = False")
154
+
155
+ Forms!F_CustomerMaster.Text_Num = TOTAL + "件"
156
+
157
+
158
+
159
+ '採番値を+1する
160
+
161
+ CurrentDb.Execute "UPDATE T_Num SET F_MgtCode = F_MgtCode +1 WHERE F_TableName = 'Customer'"
162
+
163
+ wFormat = DLookup("F_Format", "T_Num", "F_TableName = 'Customer'")
164
+
165
+ wMgtCode = DLookup("F_MgtCode", "T_Num", "F_TableName = 'Customer'")
166
+
167
+ Text_CustomerCode = Format(wMgtCode, wFormat)
168
+
169
+
170
+
171
+ '編集モード
172
+
173
+ Case "編集"
174
+
175
+ wEdit = MsgBox("編集してもよろしいですか?", vbYesNo + vbQuestion, "確認")
176
+
177
+ If wEdit = vbYes Then
178
+
179
+ Call edit_tables
180
+
181
+ MsgBox "編集しました", vbOKCancel + vbInformation, "確認"
182
+
183
+ Exit Sub
184
+
185
+ Else
186
+
187
+ Exit Sub
188
+
189
+ End If
190
+
191
+ End Select
192
+
193
+ End Sub
194
+
195
+ ```

3

追記

2019/07/12 06:08

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -54,10 +54,4 @@
54
54
 
55
55
  ##追記
56
56
 
57
- 動き的には、
58
-
59
- 例えばサブフォームに100件のレコードがあって、画面上に10件しか表示できないとし
60
-
61
- 最後までにスクロール95件から100件を表示せている状態新しく追加した場合、今状況では、1件から10件の表示になっしまうとうことして
57
+ hatenaさんが提示てくだった感じ追加後はサブフォーム帳票の方では、今追加しレコードをカレント?フォーカス?しある状況を作りたいで
62
-
63
- 本来ならば、登録後、Requeryしたら95件から101件が表示されている状況を作りたいのです。

2

追記

2019/07/11 08:40

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -49,3 +49,15 @@
49
49
 
50
50
 
51
51
  といった感じが私としては、イメージがつきやすかったです。
52
+
53
+
54
+
55
+ ##追記
56
+
57
+ 動き的には、
58
+
59
+ 例えばサブフォームに100件のレコードがあって、画面上に10件しか表示できないとし
60
+
61
+ 最後までにスクロールし95件から100件を表示させている状態で新しく追加した場合、今の状況では、また1件から10件の表示になってしまうということでして。
62
+
63
+ 本来ならば、登録後、Requeryしたら95件から101件が表示されている状況を作りたいのです。

1

補足

2019/07/10 05:02

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -33,3 +33,19 @@
33
33
 
34
34
 
35
35
  この手の問題は調べると関連した記事が多く出るのですが、いまいち理解できなかったためコチラで直接質問させていただきました。
36
+
37
+
38
+
39
+ ##補足
40
+
41
+ (とある方の考え方を引用)
42
+
43
+ Requeryすると先頭のレコードへ移動してしまうので
44
+
45
+ Requeryする前のレコードの番号を取得して
46
+
47
+ Requery後にそのレコード番号へ移動 
48
+
49
+
50
+
51
+ といった感じが私としては、イメージがつきやすかったです。