Excel VBA для обновления таблицы SQL - PullRequest
2 голосов
/ 03 апреля 2010

У меня есть небольшая программа Excel, которая используется для загрузки данных на сервер SQL.

Некоторое время это работало хорошо.

Моя проблема сейчас в том, что я хотел бы предложить пользователям функцию обновления существующей записи в SQL.

Поскольку каждая строка в этой таблице имеет уникальный идентификатор columne. Существует UID вызова столбца, который является первичным ключом.

Это часть кода для загрузки новых данных:

Set Cn = New ADODB.Connection
    Cn.Open "Driver={SQL Server};Server=" & ServerName & ";Database=" & _
        DatabaseName & ";Uid=" & UserID & ";Pwd=" & Password & ";"

rs.Open TableName, Cn, adOpenKeyset, adLockOptimistic

For RowCounter = StartRow To EndRow
    rs.AddNew
    For ColCounter = 1 To NoOfFields
        rs(ColCounter - 1) = shtSheetToWork.Cells(RowCounter, ColCounter)
    Next ColCounter
Next RowCounter
rs.UpdateBatch

 ' Tidy up
rs.Close
Set rs = Nothing
Cn.Close
Set Cn = Nothing

Можно ли как-нибудь изменить этот код для обновления определенного UID вместо импорта новых записей?

Еще раз спасибо за вашу помощь

1 Ответ

3 голосов
/ 03 апреля 2010

Вместо AddNew, чтобы открыть новую запись, используйте Find, чтобы найти существующую. Как:

rs.Find "id = 100"
rs(1) = "ColumnOneValue"

Или:

rs.Find "LastName = 'Bush'"
rs("LastName") = "Blush"

Можно Find несколько строк и циклически перебирать их, используя EOF и MoveNext.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...