2010-07-14 5 views
0

Я хочу добавить подключение к листу, чтобы каждый раз, когда ячейка обновляется, значение передается из SQL. Я хочу, чтобы он ссылался на текстовое поле на одном из других листов, где ID =Подключение к SQL

Как установить соединение для обновления с этим значением. Что я вставляю в строку подключения? Я могу заставить его работать статически.

+0

какой язык программирования? – onurbaysan

+0

VBA. Если он раньше не устанавливал теги, он теперь. – PowerUser

ответ

0

В Excel есть небольшая функция, называемая «Импорт внешних данных». Вот что я хотел бы сделать:

  1. В файле Excel, Гото Data ->Импорт внешних данных ->New Database Query (В вашем случае, опция импорта данных не будет лучший метод)

  2. Пройдите через мастер. Выберите свой источник данных и т. Д. За исключением последней опции, выберите Просмотреть данные или изменить запрос в Microsoft Query

  3. MS Query - это в основном небольшой дизайнер запросов. Выберите показать/скрыть критерии icon (выглядит как очки + воронка).

  4. Этот интерфейс для ввода критериев очень похож на Access. Выберите поле и вместо жестких значений кодировки используйте [Критерии] (или что-то).

  5. Закрыть запрос MS и вернуться в файл Excel.

  6. В вашем новом диапазоне данных, щелкните правой кнопкой мыши на Параметры .->Получить значение из следующей ячейки

  7. Не забудьте Обновить автоматически, когда значение ячейки изменяется

Подводя итоги, вы импортируете внешние данные с помощью параметра и объявляете значение этого параметра как ячейки в вашем файле. Ну, это был хороший небольшой перерыв в моей работе. Надеюсь, это поможет.

0

Что заставляет ячейку обновляться? Строка подключения будет зависеть от используемой вами базы данных. В приведенном ниже примере используется Access и требуется ссылка на Microsoft ActiveX Dataobjects. 2.8

Данные помещаются в ячейку (1,1) на листе1. Предложение where взято из текстового блока 1 на листе2:

Private Sub CommandButton1_Click() 

Dim sqlQuery As String 

sqlQuery = "SELECT * FROM myTable WHERE " & Worksheets("sheet2").TextBox1.Text 
fetchData "C:\file_databases\myDatabase.accdb", Worksheets("sheet1").Cells(1, 1), sqlQuery 

End Sub 

Private Function fetchData(databaseName As String, targetRange As Range, sqlQuery As String) 

Dim connection As New ADODB.connection 
Dim records As New ADODB.Recordset 
Dim connectionString As String 
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & databaseName & ";" 

connection.Open connectionString 
records.Open sqlQuery, connection 
targetRange.CopyFromRecordset records 

records.Close 
connection.Close 

End Function 
Смежные вопросы