Access VBA質問箱 IV

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

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


5077 / 9994 ←次へ | 前へ→

【8148】Re:レコード削除
発言  855  - 06/7/3(月) 18:16 -

引用なし
パスワード
   こんにちは、まず小僧さんが言われたようにFor文の中のI = I + 1はいらないですね。
あと↓これも修正必要ですね。
>ご提示のコードですと rs1 が 2レコード目になった際、
>rs3 が Close したままになっているためそこでエラーが返って来てしまいますね。

小僧さんが言われた、
> ロジックで疑問なのですが、
> > 「距離」ワークテーブルの「KyoriX」フイールドの上位5位
> を出したいという事なのですが、
> > rs3![kyoriX] = rs2![X1] - rs1![X]
> しか処理をしていないという事は
> 実質「位置」テーブルの「X1」フィールドの上位5位と
> 変わりがないのではないでしょうか。
> もしそうであるならばもう少し簡単に上位5位が取って来れそうですね。

では、

>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

位置テーブルのrs2![X1]がrs2.MoveNextで値が変わるので、
単純に「X1」フィールドの上位5位では無理そうですね。


以下気になった点、、


>rs3.Close
>rs3.CursorLocation = adUseClient
>rs3.Open "距離", cn, adOpenKeyset, adLockOptimistic
わざわざrs3をClose・Openさせなくてもいい気がします。(何のエラーにもなりませんけど。)

>rs3.Sort = "kyoriX DESC"
のあとに rs3.MoveFirst が必要かも。?

>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

I = 0 はいらないですね。
I = I + 1 も省いて。
このFor文にrs3のMoveNextがないので同じ値しか書き込みにいってないです。

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

この処理に入る前にrs3のMoveFirstが必要です。

色々書きましたけど、Delete時のエラー解決にはなってないと思います。。
実際に動かさずに書いた文章なので間違いがあったらすいません。
683 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 お礼

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