Excel VBA для обновления таблицы SQL

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

Это работает хорошо некоторое время.

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

Поскольку каждая строка в этой таблице имеет уникальный идентификатор столбца. Существует 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, а не импортировать новые записи?

В очередной раз благодарим за помощь


person user307655    schedule 03.04.2010    source источник


Ответы (1)


Вместо AddNew для открытия новой записи используйте Find для поиска существующей. Нравиться:

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

Or:

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

Можно Find сделать несколько строк и циклически перемещаться по ним с помощью EOF и MoveNext.

person Andomar    schedule 03.04.2010