2011-12-27 12 views
2

これはバグである可能性がありますか?またはここにsmtがありませんか?ユニークキーエラーを取得しますが、私はしたいが、次の行、それだけのためにしたい履歴書を求められることがいけないループ内でエラーが発生したときにエラーステートメントが機能しない

Do While Not somevalue= "" 

sorgu = "INSERT INTO somedb VALUES('" & somevalue & "')" 
On Error GoTo est 
rs.Open sorgu, cnn 

j = j + 1 

est: Loop 

イム。

On Error doesntの仕事このエラーを持ちます。

私はDo While Loopを使用する必要があります。

エラーのプロンプトが表示されないようにするにはどうすればよいのですか。なぜこの時点でOn Error文が動作しないのですか。

+3

VB6のIDEメニューでは、[ツール - >オプション]で[一般]タブを選択し、[未処理のエラーでブレーク]のみを設定します。 – wqw

+0

あなたが知っていることを知ってうれしく思っています。 –

+0

@Deannaはタイトルを修正してくれてありがとう。 –

答えて

3

例にいくつか問題がありますが、質問に答えるには、エラーハンドラをに変更してください。エラー再開次のを追加するか、実際のエラーハンドラを追加してerr.Numberを確認し、

Do While Not somevalue= "" 

     sorgu = "INSERT INTO somedb VALUES('" & somevalue & "')" 
     On Error GoTo est 
     rs.Open sorgu, cnn 

     j = j + 1 

    Loop 

est: 
    'some error handling code 

また、Go文をDo文の直前に移動することもお勧めします。あなたが持っているので、ループが実行されるたびにOn Errorリダイレクトを不必要に割り当てます。

On Error GoTo est 
    Do While Not somevalue= "" 

     sorgu = "INSERT INTO somedb VALUES('" & somevalue & "')" 
     rs.Open sorgu, cnn 

     j = j + 1 

    Loop 

est: 
    If err.Number = (unique key error) 
     Resume Next 
    Else 
     MsgBox "An error occurred while inserting records. Error " & CStr(Err.Number) & ", " & Err.Description 
関連する問題