1

最近2回、基本的に以下と同じコードが正しく実行されませんでした。

同じ時間枠の間に、それはまた通常何百回も実行されたでしょう。

2回、伝票が印刷されましたが、データベースにレコードが追加されず、ユーザーにエラーが報告されませんでした。

これがどうなるのか理解できません。

エラーが発生したコンピューターは、ケーブルネットワークを介して、約8台のコンピューターがインストールされている共有Jetデータベースにネットワーク接続されます。

On Error GoTo ErrorHandler1

BeginTrans
Dim RS as RecordSet
Dim strRS as string

strRS = "Select * from Blah"

Set RS = DB.OpenRecordset(strRS)

RS.AddNew
RS.Fields("Date1").value =  Now
RS.Fields("OpID").value =  intOpId
RS.Update                              

PrintSlip Now, intOpId                 
CommitTrans

Exit Sub

ErrorHandler1:
Rollback
MsgBox "There has been an error"

彼らは最近、新しいケーブルとマシンでネットワードをアップグレードしましたが、特にこれが問題になる理由はわかりません。

4

1 に答える 1

0

発生したエラーに依存する代わりに、QueryDefオブジェクトを使用してレコードを追加し、プロパティをテストして.RecordsAffected実際に追加されたレコード数を確認できます。

詳細はこちら: Access VBA の更新クエリ プロンプトから値を取得するにはどうすればよいですか?

要約する:

  1. 、、およびの 2 つのパラメーターを使用して追加クエリを作成します。[TheDate][TheOpID]
  2. 次のようなコードを実行します。

:

Dim qdf As New QueryDef
Set qdf = DB.QueryDefs("qappMyCoolParameterQuery")
With qdf
    !TheDate = Now
    !TheOpID = intOpId
    .Execute
    If .RecordsAffected = 0 Then
        'Freak Out, alert user, etc
    End If
End With
于 2013-03-02T16:39:24.333 に答える