Данные Excel VBA SQL - PullRequest
       11

Данные Excel VBA SQL

1 голос
/ 02 апреля 2010

У меня есть небольшая программа Excel.

Я бы хотел использовать эту программу для обновления таблицы SQL.

Какая будет функция сказать обновление строки 2 в таблице SQL Test в базе данных ABC

Спасибо

Ответы [ 2 ]

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

Прежде всего вам необходимо добавить ссылку на библиотеку объектов данных ActiveX, которая содержит набор объектов, которые позволяют вам осуществлять доступ к базе данных - в редакторе Excel Visual Basic перейдите в раздел Инструменты | В диалоговом окне прокрутите вниз, пока не найдете Microsoft ActiveX Data Objects 2.8 Библиотека. Установите флажок рядом с именем библиотеки.
Диалог ссылок VBA с проверенной библиотекой ADO http://philippursglove.com/stackoverflow/adoreference.png

Ваш код для обновления базы данных должен выглядеть примерно так (используя SQL из ответа JohnK813):

'Declare some variables
Dim cnn As ADODB.Connection
Dim cmd As ADODB.Command
Dim strSQL As String

'Create a new Connection object
Set cnn = New ADODB.Connection

'Set the connection string
cnn.ConnectionString = myDatabaseConnectionString 'See http://connectionstrings.com if you need help on building this string for your database!

'Create a new Command object
Set cmd = New ADODB.Command

'Associate the command with the connection
cmd.ActiveConnection = cnn

'Tell the Command we are giving it a bit of SQL to run, not a stored procedure
cmd.CommandType = adCmdText

'Create the SQL
strSQL = "UPDATE Test SET YourField = NeValue WHERE IDField = 2"

'Pass the SQL to the Command object
cmd.CommandText = strSQL

'Open the Connection to the database
cnn.Open

'Execute the bit of SQL to update the database
cmd.Execute

'Close the connection again
cnn.Close

'Remove the objects
Set cmd = Nothing
Set cnn = Nothing
0 голосов
/ 02 апреля 2010

Я вижу, у вас есть другие открытые вопросы, связанные с фактическим подключением к SQL Server, поэтому я больше не буду добавлять это обсуждение.

Таблицы реляционной базы данных не воспринимают вещи в определенном порядке, поэтому вы не можете сказать, что определенная запись является «записью 2» или «строкой 2» только потому, что вы добавили ее в таблицу второй. Если, конечно, вы не используете поле для создания идентификационного номера, который увеличивается с каждой добавленной новой записью.

Тогда вы можете получить доступ к этой записи, сказав

UPDATE Test SET YourField=NewValue WHERE IDfield=2

Вот дополнительная информация о команде UPDATE , если вам это нужно.

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