Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5098 / 9994 ←次へ | 前へ→

【8127】レコード削除
質問  Satsuki  - 06/7/3(月) 13:53 -

引用なし
パスワード
   こんにちは。Satsukiと申します。
かなりおかしい所があると思われますが、どこを調べてもわかりません。どなたかご教示よろしくお願いいたします。

「データ」テーブルと「位置」テーブルのすべての値を計算し、「距離」ワークテーブルに追加していくのですが、1件目のデータテーブルの値とすべての位置テーブルの値が計算し終わったところで、「距離」ワークテーブルの「KyoriX」フイールドの上位5位を「TOP5」に入れ、もとの「距離」ワークテーブルのレコードをすべて消すという動作を繰り返したいのですが、
rs3.Deleteのところで
「キー列の情報が足りないか、正しくありません。更新の影響を受ける行が多すぎます」とでます。
ちなみにrs3(距離)テーブルは、一巡めで4472件になります。
また、上位5件のはずが、「TOP5」テーブルには3件までしか追加されていません。また位置テーブルは全部で4512件で、「距離」テーブルは40件ほど足りません。
「データ」テーブルは1572件あります。

Public Sub keisan()
Dim cn As ADODB.Connection
Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset
Dim rs3 As ADODB.Recordset
Dim rs4 As ADODB.Recordset

Set cn = CurrentProject.Connection
Set rs1 = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
Set rs3 = New ADODB.Recordset
Set rs4 = New ADODB.Recordset

rs1.Open "データ", cn, adOpenStatic, adLockReadOnly
rs2.Open "位置", cn, adOpenStatic, adLockReadOnly
rs3.Open "距離", cn, adOpenKeyset, adLockOptimistic
rs4.Open "TOP5", cn, adOpenKeyset, adLockOptimistic

rs1.MoveFirst

Do Until rs1.EOF
  rs2.MoveFirst
  Do Until rs2.EOF
    rs3.AddNew
      rs3![kyotenmei] = rs2![拠点名]
      rs3![kyoriX] = rs2![X1] - rs1![X]
      rs3![kyoriY] = rs2![Y1] - rs1![Y]
    rs3.Update
  rs2.MoveNext
  Loop

  rs3.Close
  rs3.CursorLocation = adUseClient
  rs3.Open "距離", cn, adOpenKeyset, adLockOptimistic
  rs3.Sort = "kyoriX DESC"
  i = 0
  For i = 1 to 5
    rs4.AddNew
      rs4![kyotenmei] = rs3![kyotenmei]
      rs4![kyoriX] = rs3![kyoriX]
      rs4![kyoriY] = rs3![kyoriY]
      i = i + 1
    rs4.Update
  Next i

  Do Until rs3.EOF
    rs3.Delete
    rs3.MoveNext
  Loop

  rs3.Close

rs1.MoveNext
Loop


rs1.Close
rs2.Close
rs3.Close

cn.Close

End Sub
898 hits

【8127】レコード削除 Satsuki 06/7/3(月) 13:53 質問
【8137】Re:レコード削除 小僧 06/7/3(月) 16:52 発言
【8148】Re:レコード削除 855 06/7/3(月) 18:16 発言
【8150】Re:レコード削除 小僧 06/7/4(火) 10:01 発言
【8155】Re:レコード削除 Satsuki 06/7/4(火) 10:59 お礼
【8157】Re:レコード削除 Satsuki 06/7/4(火) 11:27 お礼
【8154】Re:レコード削除 Satsuki 06/7/4(火) 10:29 質問
【8159】Re:レコード削除 小僧 06/7/4(火) 11:47 回答
【8161】Re:レコード削除 855 06/7/4(火) 16:07 発言
【8163】Re:レコード削除 Satsuki 06/7/4(火) 17:10 お礼
【8162】Re:レコード削除 Satsuki 06/7/4(火) 17:06 お礼
【8165】Re:レコード削除 小僧 06/7/4(火) 17:24 回答
【8167】Re:レコード削除 Satsuki 06/7/4(火) 17:54 お礼

5098 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078228
(SS)C-BOARD v3.8 is Free