Оператор On Error не работает, когда внутри цикла возникает ошибка - PullRequest
2 голосов
/ 27 декабря 2011

это может быть ошибкой? или я скучаю по 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 не работает при наличии этой ошибки.

Я должен использовать Do While Loop Не могу изменить его на ошибку.

Как мне избежать запроса об ошибке и почему On Error оператор не работает на этом этапе.

1 Ответ

3 голосов
/ 27 декабря 2011

Есть несколько проблем с вашим примером, но чтобы ответить на ваш вопрос, измените ваш обработчик ошибок на On Error Resume Next или добавьте фактический обработчик ошибок, проверьте номер 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

Я бы также предложил перенести ваше заявление GoTo прямо перед заявлением 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...