Запрос таблицы базы данных SQL Server 2005 из электронной таблицы Excel - PullRequest
1 голос
/ 24 февраля 2010

Сценарий

У меня есть база данных, состоящая из 4 столбцов и 6 миллионов строк. Я хочу иметь возможность использовать Excel для запроса этих данных таким же образом, как я могу запросить их с помощью Sql Server Management Studio.

У меня был гугл и я прочитал несколько статей, но, честно говоря, я не знаю достаточно о реализации, чтобы действительно знать, что искать в руководстве.

Вопрос

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

EDIT:

Так, например - У меня есть несколько простых запросов, которые я хочу выполнить на этих данных. Как мне их настроить? Является ли идея, что все данные сначала загружаются в таблицу Excel (или, по крайней мере, связаны с таблицей Excel, чтобы пользователь мог выбрать данные для просмотра на лету?) - я не могу физически загрузить 6 миллионов строк в формате Excel не может принять этот уровень данных .....

1 Ответ

2 голосов
/ 25 февраля 2010

Определенно не тяните все данные в Excel, это поставит их на колени.

Обычно, когда мне нужна книга Excel (VBA) для извлечения некоторых данных из базы данных, я просто подключаю Excel к базе данных с соответствующей строкой соединения, передаю строку запроса SQL в базу данных и извлекаю возвращенный файл. записей. Ниже приведен пример кода VBA, который извлекает некоторую информацию из базы данных MS Access.

txtQueryString = "SELECT * " 
    & "FROM myDataTable " _
    & "WHERE fld1 = '" & myCriteria & "'"

txtConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & dbPathString & ";" _
& "Persist Security Info=False"

Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.Open txtQueryString, txtConnectString, adOpenKeyset, adLockReadOnly, adCmdText

myData1 = rst.Fields("fld1").Value 
myData2 = rst.Fields("fld2").Value 
   .
   .
   .
    rst.Close
    Set rst = Nothing

Строка подключения к SQL Server будет другой. Я использую этот веб-сайт для всех моих потребностей в строке подключения.

...