あるコードスニペットです:は5つのレコードを削除しますが、と、RecordsAffectedプロパティは、ここで0
Private Sub frmSearch_UnMarkAll()
Const sqlD As String = "DELETE * FROM PickList WHERE TableName = ""CARS"" AND KeyNo IN (" & _
"SELECT RecNo FROM Cars "
If frmSearch.WhereSql <> vbNullString Then
CurrentDb.Execute sqlD & frmSearch.WhereSql & ")"
End If
Stop
End Sub
この関数はfrmSearchフォーム上のコマンドボタンをクリックすることによって呼び出されます。このボタンは、上記のコードで処理されるイベントを発生させます。 WhereSqlは、検索画面に表示されるリストボックスのwhere句です。
? Currentdb.RecordsAffected
0 is the result.
私はピックリストテーブルと、適切なチェック:それは、コードがStopステートメントに達したときに「> 1441 Cars.RecNoはWHERE」 が、私はすぐに窓やタイピングを使用してRecordsAffectedプロパティをチェックするような値を持っていますアイテムが削除されました。
私の質問:これはバグですか?それとも、レコードを削除してもそれが影響を受けないのは普通ですか?
私はこの問題を回避しました。 PickListテーブルからSequenceNoフィールドを削除しました。私は、PickListテーブルのTableNameとKeyNoを作成してインデックスを作成し、Uniqueをyesと指定しました。今、私はちょうど
INSERT INTOピックリスト(テーブル名、LastChangedDate、KeyNo)
値(今()テーブル名、tablenamedからRECNO)
INSERTは、3022エラーのため失敗した場合、それはこの例では重複して入力を試みます。他のすべては、私が最初に機能したかったやり方で機能します。 RecordsAffectedプロパティは、コードまたはビューでデバッガで印刷してテストすると常にゼロです。インタラクティブにアクセスからアクションクエリを実行すると、その情報がすべて表示されるため、まだ難解です。他のリレーショナルDBMS(標準のもの)を実行する場合は、クエリエンジンを使用するときに常にフィードバックがあります。これがアクセスのバグであれば、他の人が失敗しているとは信じられません。私は何とかやめたと思う傾向があります。うまくいけば、私は孤独なパイオニアではない。ありがとう、事前にこれを見て。