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

回答編集履歴

3

説明修正

2020/05/03 05:59

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  SQLを使うなら、saziさんの回答のような方法で一気にするのがいいでしょう。
6
6
 
7
- レコードセットでの追加はAddNewメソッド、更新はEditメソッドを使います。
7
+ レコードセットでの追加はAddNewメソッド~~、更新はEditメソッド~~を使います。代入後、Updateメソッドで更新します。
8
8
 
9
9
  下記のようなコードになります。
10
10
 

2

コード修正

2020/05/03 05:59

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -13,11 +13,9 @@
13
13
  With adoRS2
14
14
  .MoveFirst
15
15
  .Find "日付け = #" & adoRS1!日付け.Value & "#", 0, adSearchForward
16
- If adoRS2.EOF Then '同じ日付けのレコードがなければ
16
+ If adoRS2.EOF Then '同じ日付けのレコードがなければ新規追加
17
17
  .AddNew
18
18
  !日付け.Value = adoRS1!日付け.Value
19
- Else
20
- .Edit
21
19
  End If
22
20
  !終値.Value = adoRS1!終値.Value
23
21
  !始値.Value = adoRS1!始値.Value

1

説明追記

2020/05/03 05:57

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -29,4 +29,13 @@
29
29
  Loop
30
30
  ```
31
31
 
32
- 検索(Findメソッド)すれば adoRS2.MoveNext は不要。また、検索の方が高速。
32
+ 検索(Findメソッド)すれば adoRS2.MoveNext は不要。また、検索の方が高速。
33
+
34
+
35
+ > ・デバッグでF8を押しながら一行ずつ確認、adoRS2.MoveNext行を通過後
36
+ イミディエイトウィンドウにて[?adoRS2("日付け")]と確認するも値の変更なし
37
+ ・IF文の中にadoRS2.MoveNextを書いても値の変化無し、IFの外に書いても値の変化無し。
38
+
39
+ > この原因についてお分かりになる方いらっしゃいましたら、ご教示願います。
40
+
41
+ これに関しては、SQL の Update文に抽出条件がないので、すべてのレコードを更新してしまってます。それによってすべてのレコードの日付が同じになってしまいますので、レコード移動しても日付は同じになるというこかと推測します。