質問するログイン新規登録

質問編集履歴

5

追記

2019/07/16 02:56

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -95,4 +95,8 @@
95
95
  End If
96
96
  End Select
97
97
  End Sub
98
- ```
98
+ ```
99
+ ↓こちらのサイトを参考にしてみましたが、
100
+ サブフォームだけで、レコード削除したときはこちらでできたのですが、
101
+ 今回の場合はうまく使えなくて・・・
102
+ [参考にしてみた記事](https://hosopro.blogspot.com/2017/10/access-form-requery-record-keep.html)

4

追記

2019/07/16 02:56

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -26,4 +26,73 @@
26
26
  といった感じが私としては、イメージがつきやすかったです。
27
27
 
28
28
  ##追記
29
- hatenaさんが提示してくださった感じで、追加後はサブフォームの帳票の方では、今追加したレコードをカレント?フォーカス?してある状況を作りたいです。
29
+ hatenaさんが提示してくださった感じで、追加後はサブフォームの帳票の方では、今追加したレコードをカレント?フォーカス?してある状況を作りたいです。
30
+
31
+ 現状の登録フォームの登録コマンドボタンの処理です。
32
+ ```VBA
33
+ '----------------------------
34
+ '登録・編集ボタン使用時
35
+ '----------------------------
36
+
37
+ Private Sub Button_Add_Click()
38
+
39
+ Me.Requery
40
+
41
+ '背景色(白)
42
+ Me.Text_CustomerName.BackColor = 16777215
43
+ Me.Text_Address.BackColor = 16777215
44
+
45
+ '未入力エラー処理 背景色(赤)
46
+ If IsNull(Me.Text_CustomerName) Or IsNull(Me.Text_Address) Then '顧客名
47
+ If IsNull(Me.Text_CustomerName) Then
48
+ Me.Text_CustomerName.BackColor = 12695295
49
+ End If
50
+ If IsNull(Me.Text_Address) Then '住所
51
+ Me.Text_Address.BackColor = 12695295
52
+ End If
53
+ MsgBox "未入力の項目があります", vbOKOnly + vbExclamation, "未入力エラー"
54
+ Exit Sub
55
+ End If
56
+
57
+ '追加・編集処理分岐
58
+
59
+ Select Case Me.OpenArgs
60
+
61
+ '追加モード
62
+ Case "追加"
63
+ Call add_tables
64
+ Call del_tables
65
+ MsgBox "追加しました", vbOKOnly + vbInformation, "確認"
66
+
67
+ 'マスタの更新
68
+ Dim a As String
69
+ a = IsNull(Me.Text_CustomerCode)
70
+ With Forms!F_CustomerMaster!Sub_CustomerMaster.Form
71
+ .Requery
72
+ .Recordset.FindFirst "F_CustomerCode = '" & 100 & "'"
73
+ End With
74
+
75
+
76
+ 'レコード数をカウントする
77
+ TOTAL = DCount("F_CustomerCode", "T_Customer", "F_DeleteFlag = False")
78
+ Forms!F_CustomerMaster.Text_Num = TOTAL + "件"
79
+
80
+ '採番値を+1する
81
+ CurrentDb.Execute "UPDATE T_Num SET F_MgtCode = F_MgtCode +1 WHERE F_TableName = 'Customer'"
82
+ wFormat = DLookup("F_Format", "T_Num", "F_TableName = 'Customer'")
83
+ wMgtCode = DLookup("F_MgtCode", "T_Num", "F_TableName = 'Customer'")
84
+ Text_CustomerCode = Format(wMgtCode, wFormat)
85
+
86
+ '編集モード
87
+ Case "編集"
88
+ wEdit = MsgBox("編集してもよろしいですか?", vbYesNo + vbQuestion, "確認")
89
+ If wEdit = vbYes Then
90
+ Call edit_tables
91
+ MsgBox "編集しました", vbOKCancel + vbInformation, "確認"
92
+ Exit Sub
93
+ Else
94
+ Exit Sub
95
+ End If
96
+ End Select
97
+ End Sub
98
+ ```

3

追記

2019/07/12 06:08

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -26,7 +26,4 @@
26
26
  といった感じが私としては、イメージがつきやすかったです。
27
27
 
28
28
  ##追記
29
- 動き的には、
30
- 例えばサブフォームに100件のレコードがあって、画面上に10件しか表示できないとし
31
- 最後までにスクロールし95件から100件を表示せている状態で新しく追加し場合状況では、1件から10件の表示になってまうとうことして
29
+ hatenaんが提示ださっ感じで追加後はサブフォーム帳票の方では、今追加しレコードをカレント?フォーカス?てある状況を作りたいで
32
- 本来ならば、登録後、Requeryしたら95件から101件が表示されている状況を作りたいのです。

2

追記

2019/07/11 08:40

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -23,4 +23,10 @@
23
23
  Requeryする前のレコードの番号を取得して
24
24
  Requery後にそのレコード番号へ移動 
25
25
 
26
- といった感じが私としては、イメージがつきやすかったです。
26
+ といった感じが私としては、イメージがつきやすかったです。
27
+
28
+ ##追記
29
+ 動き的には、
30
+ 例えばサブフォームに100件のレコードがあって、画面上に10件しか表示できないとし
31
+ 最後までにスクロールし95件から100件を表示させている状態で新しく追加した場合、今の状況では、また1件から10件の表示になってしまうということでして。
32
+ 本来ならば、登録後、Requeryしたら95件から101件が表示されている状況を作りたいのです。

1

補足

2019/07/10 05:02

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -15,4 +15,12 @@
15
15
  ```
16
16
  のような文を加えてあります。
17
17
 
18
- この手の問題は調べると関連した記事が多く出るのですが、いまいち理解できなかったためコチラで直接質問させていただきました。
18
+ この手の問題は調べると関連した記事が多く出るのですが、いまいち理解できなかったためコチラで直接質問させていただきました。
19
+
20
+ ##補足
21
+ (とある方の考え方を引用)
22
+ Requeryすると先頭のレコードへ移動してしまうので
23
+ Requeryする前のレコードの番号を取得して
24
+ Requery後にそのレコード番号へ移動 
25
+
26
+ といった感じが私としては、イメージがつきやすかったです。