回答編集履歴

2

コード追加

2022/05/11 05:40

投稿

hatena19
hatena19

スコア33755

test CHANGED
@@ -33,3 +33,22 @@
33
33
  End Sub
34
34
  ```
35
35
 
36
+ ---
37
+ 別案
38
+
39
+ 下記で同様の結果になります。こちらの方がシンプルかつ高速です。
40
+
41
+ ```vba
42
+ Private Sub コマンド1_Click()
43
+ Dim rs As New ADODB.Recordset
44
+
45
+ rs.Open "SELECT d_buban FROM dtrim INNER JOIN fl1 ON dtrim.ID=fl1.ID-1;", CurrentProject.Connection
46
+
47
+ Do Until rs.EOF
48
+ Debug.Print rs!d_buban
49
+ rs.MoveNext
50
+ Loop
51
+ rs.Close
52
+
53
+ End Sub
54
+ ```

1

コード追記

2022/05/11 05:26

投稿

hatena19
hatena19

スコア33755

test CHANGED
@@ -5,6 +5,31 @@
5
5
  rs2.Filter = "ID=" & rs1!ID - 1
6
6
  ```
7
7
 
8
- ただ、rs1 はその前で Close しているからエラーにはなります。
8
+ ただ、rs1 はその前で Close しているから、どちらにしてもエラーにはなります。
9
9
 
10
+ たぶん、やりたいことは下記ではなかろうか。
10
11
 
12
+ ```vba
13
+ Private Sub コマンド0_Click()
14
+ Dim rs1 As New ADODB.Recordset
15
+ Dim rs2 As New ADODB.Recordset
16
+
17
+ rs2.Open "dtrim", CurrentProject.Connection
18
+
19
+ With rs1
20
+ .Open "fl1", CurrentProject.Connection
21
+ Do Until .EOF
22
+ rs2.Filter = "ID=" & rs1!ID - 1
23
+ Do Until rs2.EOF
24
+ Debug.Print rs2!d_buban
25
+ rs2.MoveNext
26
+ Loop
27
+ .MoveNext
28
+ Loop
29
+ .Close
30
+ End With
31
+ rs2.Close
32
+
33
+ End Sub
34
+ ```
35
+