Разное

Excel запрос к sql: Как сформировать SQL запросы в Excel? — Разработка на vc.ru

Содержание

Выполнение SQL-запросов к таблице Excel в книге с макросом VBA

Я пытаюсь сделать макрос excel, который даст мне следующую функцию в Excel:

=SQL("SELECT heading_1 FROM Table1 WHERE heading_2='foo'")

позволяет мне искать (и, возможно, даже вставлять) данные в таблицах моей книги с помощью SQL-запросов.

вот что я сделал до сих пор:

Sub SQL()

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

strFile = ThisWorkbook.FullName
strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile _
& ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cn.Open strCon

strSQL = "SELECT * FROM [Sheet1$A1:G3]"

rs.Open strSQL, cn

Debug.Print rs.GetString

End Sub

мой скрипт работает как шарм с жестко диапазонов, таких как в приведенном выше фрагменте. Он также очень хорошо работает со статическими именованными диапазонами.

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

самое близкое, что я нашел ответ, Это этот парень, страдающий от того же недуга:
http://www.ozgrid.com/forum/showthread.php?t=72973

кому-то помогает?

редактировать

Я приготовил это до сих пор, я могу использовать полученное имя в моих SQL-запросах. Ограничение заключается в том, что мне нужно знать, на каком листе таблицы. Мы можем что-нибудь сделать? это?

Function getAddress()

    myAddress = Replace(Sheets("Sheet1").Range("Table1").address, "$", "")
    myAddress = "[Sheet1$" & myAddress & "]"

    getAddress = myAddress

End Function

спасибо!

25

автор: Joan-Diego Rodriguez

одна вещь, которую вы можете сделать, это получить адрес динамического именованного диапазона и использовать его в качестве входных данных в строке SQL. Что-то вроде:

Sheets("shtName").range("namedRangeName").Address

который выплюнет адресную строку, что-то вроде $A:$A

Edit:

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

ActiveWorkbook.Names.Item("namedRangeName").RefersToLocal

что результаты в строке, как =Sheet1!$C:$C. Поэтому для приведенного выше примера кода оператор SQL может быть

strRangeAddress = Mid(ActiveWorkbook.Names.Item("namedRangeName").RefersToLocal,2)

strSQL = "SELECT * FROM [strRangeAddress]"

12

автор: Jake Bathman

основываясь на рутине Джоан-Диего Родригеса с подходом Хорди и некоторым кодом Яцека Котовского, эта функция преобразует любое имя таблицы для активной книги в полезный адрес для SQL — запросов.

Примечание Для Микеля: добавление «[#All] » включает заголовки, избегающие проблем, о которых вы сообщили.

Function getAddress(byVal sTableName as String) as String 

    With Range(sTableName & "[#All]")
        getAddress= "[" & .Parent.Name & "$" & .Address(False, False) & "]"
    End With

End Function

3

автор: Craig Hatmaker

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

Function currAddressTest(dataRangeTest As Range) As String

    currAddressTest = ActiveSheet.Name & "$" & dataRangeTest. Address(False, False)

End Function

когда я выбираю аргумент источника данных для своей функции, он превращается в формат Sheet1$A1:G3. Если excel изменяет его на ссылку Table1[#All] в моей формуле, функция по-прежнему работает правильно

затем я использовал его в вашей функции (попытался воспроизвести и добавить еще один аргумент вводят туда, где…

Function SQL(dataRange As Range, CritA As String)

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim currAddress As String



currAddress = ActiveSheet.Name & "$" & dataRange.Address(False, False)

strFile = ThisWorkbook.FullName
strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile _
& ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cn.Open strCon


strSQL = "SELECT * FROM [" & currAddress & "]" & _
         "WHERE [A] =  '" & CritA & "'  " & _
         "ORDER BY 1 ASC"

rs. Open strSQL, cn

SQL = rs.GetString

End Function

надеюсь, что ваша функция развивается дальше, я нахожу ее очень полезной. Хорошего дня!

2

автор: Jacek Kotowski

Соединение Excel с MySQL / Песочница / Хабр

На работе встретился с такой задачей «Надо сделать отчет, который брал бы данные из MySQL и закидывал его в таблицу Excel».
Ну вот я сейчас и опишу процесс конекта.
Есть:
1. Сервер MySQL
2. База данных на MySQL
3. Microsoft Excel 2010

Начнем:

1. Самое первое что нужно сделать, это установить MySQL Connector, актуальную версию можно скачать здесь

2. Нужно создать источник данных, идем вот сюда Панель управления — Администрирование — Источники данных (ODBC)

2. 1. Вкладка Пользовательский DSN — Добавить — MySQL ODBC 5.1 Driver (должен появиться после манипуляций с п.1)

2.2. Откроется окно настройки источника, там в поле Data Source Name нужно написать имя сервера MySQL, порт оставляем стандартным (если вы при установке сервера не указали иной), User — имя пользователя, скорее всего root, Password — пароль, Database — тут можно указать базу, к которой подключаться, если все правильно на начальных этапах, то в выпадающем списке уже появятся существующие БД на сервере.

2.3. Ок. Источник данных создан.

3. Теперь необходимо создать строку подключения.

3.1. В любом месте компьютера создайте текстовый файл и переименуйте его в тип файла .udl

3.2. В открывшемся окне Использовать источник данных — выбрать ранее созданный источник данных (п. 2), ввести Пользователь и Пароль, жмем Ок.

3.3. Теперь созданный файл надо открыть с помощью Блокнот’а и там будет что-то подобное:
[oledb]

; Everything after this line is an OLE DB initstring

Provider=MSDASQL. 1;Persist Security Info=False;User ID=root;Data Source=MySQL


то, что начинается с Provider и до MySQL и есть строка подключения, т.е. Provider=MSDASQL.1;Persist Security Info=False;User ID=root;Data Source=MySQL она нам понадобиться при настройке Excel.

4. Теперь скачиваем специально подготовленный мной документ Excel

5. Открываем, возможно будет ругаться из-за того, что у вас сервер отличный от моего.

6. Идем на вкладку Данные — Параметры — Источник данных — Свойства подключения — Вкладка Определения.

6.1. Вводим Строка подключения, которая у нас появилась ранее (п. 3.3.), вводим текст SQL команды и жмем Ок.

Все, если все правильно было сделано, то в правой части должны появиться поля, которые вы хотели выбрать. Советую на сервере протестировать синтаксис и правильность своего SQL запроса, чтобы не появлялись дополнительные вопросы. Лично я работаю с MySQL через HeidiSQL, там сделал запрос, а потом просто скопировал его в Excel.

Sql запрос из excel в excel

SQL запросы в Microsoft Excel

​Смотрите также​ SQL cервер» -​ формы работы с​ 42745, 0, 42746,​: Все равно, спасибо​ из БД через​ (​ на базе данных.​ бесплатного пользования надстройкой​ по кнопке​, которая размещена на​ файла, после чего​Урок: «Умные» таблицы в​ сам редактор SQL​, стояла галочка, если​«Начать пробный период»​

​ После этого запустится​SQL – популярный язык​

​ ввожу имя сервера​ Access через VBA​ 2, 1, 2,​

Создание SQL запроса в Excel

​ )​ запрос rsORA.Open ‘SELECT…(тело​сервер​ При запуске запроса​ ограничен всего двумя​«Из других источников»​ ленте в блоке​ кликнуть на кнопку​ Экселе​ запросов. В нем​ заголовки в вашем​.​ окно, в котором​ программирования, который применяется​ — выбираю базу​ Excel — согласен.​ ‘Кратко’, ‘Полно’)​

Способ 1: использование надстройки

​Кстати, все заработало,​ запроса)’, cnORA ‘Вставка​и​ на ее языке​ календарными неделями.​, которая размещается на​ инструментов с одноименным​«OK»​Существует также способ создать​ нужно писать программный​ массиве действительно присутствуют. ​Далее мы возвращаемся к​ нужно будет подтвердить​ при работе с​ данных из выпадающего​ Но Access использую​Типы данных в​ когда я изменил​ даннных из полученого​

  1. ​Da​ записи другим пользователем,​​Автор: Максим Тютюшев​​ ленте в блоке​ названием.​.​ SQL запрос к​ код. Наименования столбцов​ Затем жмите на​ окну лицензии. Как​ согласие с лицензионным​ базами данных (БД).​ списка — выбираю​ только для хранения​ Access:​ процедуру подключения так:​ набора записей ‘1-й​йства базы данных​ вам будет предложено,​​Примечание:​​ инструментов​

  2. ​После этого запускается окно​Вслед за этим запускается​ выбранному источнику данных​ выбранной таблицы там​

  3. ​ кнопку​ видим, введенные вами​ соглашением на использование​ Хотя для операций​ интересующую таблицу -​ данных. Сделать полноценное​NoParent — число​​With conn .ConnectionString​​ вариант — все​

  4. ​), вы увидите в​ чтобы убедиться, что​

  5. ​Мы стараемся как​«Получение внешних данных»​ подключения к книге. ​ окно выбора таблицы​ с помощью встроенных​ уже будут отображаться​«OK»​​ значения уже отображаются.​​ продукции компании Microsoft​

  6. ​ с базами данных​ указываю диапазон, куда​ приложение в Access​NoResponsible — число​ = ‘Provider=MSDAORA; Data​ полученные записи вставляются​ строке, чтобы запросить​ вы знаете, запросов,​ можно оперативнее обеспечивать​. На этот раз​ В нем мы​ в указанной базе​ инструментов Эксель.​ автоматически. Выбор столбцов​​.​​ Теперь нужно просто​ — NET Framework​ в пакете Microsoft​ следует вставить данные.​ не получилось (слишком​​EosdoTask — boolean​​ Source=var1; ‘ &​

Решение: sql запрос к файлу excel

Public Function ADO_R_Dmitry(ByVal StrSql$, ByVal FilePath$, ByVal OutputRange As Range, _
ByVal FieldsName As Boolean, ByVal OutputFieldsName As Boolean, Optional TypeBase As Long = 0, Optional ColumnDelimeter As String = ",")
 
'==============================================================================
'* Автор R Dmitry
'==============================================================================
Dim sCon As String, FieldName As String
Dim rs As Object, cn  As Object
Set rs = CreateObject("ADODB.Recordset")
Set cn = CreateObject("ADODB.Connection")
If FieldsName Then FieldName = "Yes" Else FieldName = "No"
 
If TypeBase > 0 Then
    sCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    If TypeBase = 1 Then sCon = sCon & FilePath & ";User Id=admin;Password=;" 'Access
   'If TypeBase = 2 Then sCon = "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" & FilePath
    If TypeBase = 2 Then sCon = sCon & FilePath & ";Extended Properties=dBASE IV;User ID=Admin;Password=;" 'DBF
    'If TypeBase = 3 Then sCon = sCon & FilePath & ";Extended Properties=text;HDR=" & FieldName & ";FMT=Delimited " & ColumnDelimeter 'TXT
    If TypeBase = 3 Then sCon = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" & FilePath & ";Extensions=asc,csv,tab,txt;"
Else
    Select Case Val(Application.Version)
        Case Is < 12
            sCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath _
              & ";Extended Properties=""Excel 8.0;HDR=" & FieldName & ";IMEX=1"";"
        Case 12, 14
            sCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FilePath _
            & ";Extended Properties=""Excel 12.0;HDR=" & FieldName & ";IMEX=1"";"
    End Select
End If
cn.Open sCon
If Not cn.State = 1 Then Exit Function
Set rs = cn.Execute(StrSql)
If Not FieldsName Then OutputFieldsName = False
 If OutputFieldsName Then
    For i = 0 To rs.Fields.Count - 1
    OutputRange.Offset(0, i) = rs.Fields(i).Name
    Next
    Set OutputRange = OutputRange.Offset(1, 0)
 End If
 DoEvents
OutputRange.CopyFromRecordset rs
rs.Close:  cn.Close
Set cn = Nothing: Set rs = Nothing
End Function
Sub test()
Dim strSql2$
Dim Lr&
Lr = Cells(Rows.Count, 1).End(xlUp).Row
If Lr < 3 Then Lr = 3
Range("a3:q" & Lr).ClearContents
strSql2 = "select * from [Янв_Февр$] where [Код товара]like '%" & [a2].Value & "%'"
Call ADO_R_Dmitry(strSql2, ThisWorkbook.FullName, Sheets("Поиск").[a3], True, False)
End Sub
Sub test2()
Dim strSql2$
Dim Lr&
Lr = Cells(Rows.Count, 1).End(xlUp).Row
If Lr < 3 Then Lr = 3
Range("a3:q" & Lr).ClearContents
strSql2 = "select * from [Мар_Апр$] where [Код товара]like '%" & [a2].Value & "%'"
Call ADO_R_Dmitry(strSql2, ThisWorkbook.FullName, Sheets("Поиск").[a3], True, False)
End Sub

select * from excel « NC’s Blog

Microsoft Office Exel уже довольно давно стал ключевой программой при переносе разных баз, тк практически любая даже очень старая база работает с Exel и перевести в него данный не состовляет ни каких проблем. Это пошаговое руководство описывает различные способы импорта данных из листов Microsoft Excel в базы данных Microsoft SQL Server.

Требования перед началом

В приведенном ниже списке перечислены рекомендованные оборудование, программное обеспечение, сетевая инфраструктура, а также необходимые пакеты обновления:

  • Экземпляр Microsoft SQL Server 7.0, Microsoft SQL Server 2000, Microsoft SQL Server 2005 или Microsoft SQL Server 2008
  • Microsoft Visual Basic 6.0 для примеров объектов ADO, использующих Visual Basic

В ряде разделов данной статьи предполагается, что пользователь обладает достаточными знаниями в следующих областях:

  • Службы преобразования данных
  • Связанные серверы и распределенные запросы
  • Разработка объектов ADO на Visual Basic

Описание

В примерах, приведенных в данной статье, импорт данных Excel выполняется с помощью следующих функций:

  • Службы преобразования данных SQL Server (DTS)
  • Службы интеграции Microsoft SQL Server 2005 (SSIS)
  • Связанные серверы SQL Server
  • Распределенные запросы SQL Server
  • Поставщик объектов данных ActiveX(ADO) и Microsoft OLE DB для SQL Server
  • Поставщик ADO и Microsoft OLE DB для Jet 4.0

Примеры

Import или Append

В примерах команд SQL, используемых в статье, показаны запросы Create Table для импорта данных Excel в новую таблицу SQL Server с использованием конструкций SELECT…INTO…FROM. При сохранении ссылок на объекты-источники и получатели выражения, приведенные в примерах, могут быть преобразованы в запросы Append с использованием конструкций INSERT INTO…SELECT…FROM.

Использование DTS или SSIS

Для импорта данных Excel в таблицы SQL Server могут быть использованы мастер импорта служб преобразования данных (DTS) SQL Server или мастер импорта и экспорта SQL Server. При работе с мастером и выборе исходных таблиц Excel помните, что имена объектов Excel со знаком доллара ($) являются именами листов (например Лист1$), а имена объектов без знака доллара являются названиями именованных диапазонов Excel.

Использование связанного сервера

Для упрощения запросов книга Excel может быть настроена как связанный сервер в SQL Server. Для получения дополнительных сведений щелкните приведенный ниже номер статьи базы знаний Майкрософт: 306397 (http://support.microsoft.com/kb/306397/RU/ )

Следующая программа импортирует данные из рабочего листа «Customers» связанного сервера Excel «EXCELLINK» в новую таблицу SQL Server с именем XLImport1:

←**
SELECT * INTO XLImport1 FROM EXCELLINK...[Customers$]
**→

При использовании OPENQUERY источнику может быть передан сквозной запрос:


←**
SELECT * INTO XLImport2 FROM OPENQUERY(EXCELLINK,

‘SELECT * FROM [Customers$]’)

**→

Использование распределенных запросов

Если устанавливать существующее подключение к книге Excel как связанный сервер нежелательно, данные могут быть импортированы с использованием функций OPENDATASOURCE или OPENROWSET. В следующих примерах кода также производится импорт данных из рабочего листа Excel «Customers» в новые таблицы SQL Server:

←**
SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$]

SELECT * INTO XLImport4 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\test\xltest.xls', [Customers$])

SELECT * INTO XLImport5 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\test\xltest.xls', 'SELECT * FROM [Customers$]'
**→
Использование ADO и SQLOLEDB

Синтаксис «распределенных запросов», приведенный в разделе Использование распределенных запросов, может быть использован также в приложении ADO для импорта данных Excel в SQL Server, если для подключения к SQL Server используется Microsoft OLE DB для SQL Server (SQLOLEDB).

Для работы следующего примера программы на Visual Basic 6.0 требуется добавление ссылки на проект в объекты данных ActiveX (ADO). В этом примере показано использование функций OPENDATASOURCE и OPENROWSET для подключения SQLOLEDB.

on Visual Basic

←**
    Dim cn As ADODB.Connection
    Dim strSQL As String
    Dim lngRecsAff As Long
    Set cn = New ADODB.Connection
    cn.Open "Provider=SQLOLEDB;Data Source=<server>;" & _
        "Initial Catalog=<database>;User ID=<user>;Password=<password>"

    'Import by using OPENDATASOURCE.
    strSQL = "SELECT * INTO XLImport6 FROM " & _
        "OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', " & _
        "'Data Source=C:\test\xltest.xls;" & _
        "Extended Properties=Excel 8.0')...[Customers$]"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff

    'Import by using OPENROWSET and object name.
    strSQL = "SELECT * INTO XLImport7 FROM " & _
        "OPENROWSET('Microsoft.Jet.OLEDB.4.0', " & _
        "'Excel 8.0;Database=C:\test\xltest.xls', " & _
        "[Customers$])"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff

    'Import by using OPENROWSET and SELECT query.
    strSQL = "SELECT * INTO XLImport8 FROM " & _
        "OPENROWSET('Microsoft.Jet.OLEDB.4.0', " & _
        "'Excel 8.0;Database=C:\test\xltest.xls', " & _
        "'SELECT * FROM [Customers$]')"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff

    cn.Close
    Set cn = Nothing
**→
Использование ADO и Поставщика данных Jet

В примере из предыдущего раздела при импорте из Excel в SQL для связи с получателем использовались ADO и поставщик SQLOLEDB. Для подключения к источнику Excel можно воспользоваться поставщиком данных OLE DB для Jet 4.0.

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

  • [Полный путь к базе данных Microsoft Access].[Название таблицы]
  • [Название ISAM;Строка подключения ISAM].[Название таблицы]
  • [ODBC;Строка подключения ODBС].[Название таблицы]

В этом разделе для создания подключения ODBC к базе данных SQL Server используется третий формат. Может использоваться имя источника данных (DSN) ODBC или строка подключения без определения DSN:

←**
DSN:
    [odbc;DSN=<DSN name>;UID=<user>;PWD=<password>]

Подключение без определения DSN:
   [odbc;Driver={SQL Server};Server=<server>;Database=<database>;
       UID=<user>;PWD=<password>]
**→

Для работы следующего примера программы на Visual Basic 6.0 требуется добавление ссылки на проект в ADO. В примере показан импорт данных Excel в SQL Server через подключение ADO с использованием поставщика данных Jet 4.0.

←**
    Dim cn As ADODB.Connection
    Dim strSQL As String
    Dim lngRecsAff As Long
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=C:\test\xltestt.xls;" & _
        "Extended Properties=Excel 8.0"

    'Import by using Jet Provider.
    strSQL = "SELECT * INTO [odbc;Driver={SQL Server};" & _
        "Server=<server>;Database=<database>;" & _
        "UID=<user>;PWD=<password>].XLImport9 " & _
        "FROM [Customers$]"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff

    cn.Close
    Set cn = Nothing
**→

Для импорта данных Excel в другие базы данных Microsoft Access, базы данных индексно-последовательного метода доступа (ISAM) или базы ODBC также могут использоваться конструкции, поддерживаемые поставщиком данных Jet.

Устранение неполадок

  • Помните, что объекты Excel, имена которых содержат знак доллара ($), являются листами (например, Лист1$), другие объекты являются именованными диапазонами Excel.
  • В некоторых ситуациях, особенно если источник данных Excel представлен именем таблицы, а не запросом SELECT, столбцы таблицы-получателя SQL Server переупорядочиваются по алфавиту.Для получения дополнительных сведений о проблеме в работе поставщика данных Jet щелкните следующий номер статьи базы знаний Майкрософт:
    299484 (http://support.microsoft.com/kb/299484/RU/ )
  • Обнаружив, что в столбцах Excel содержатся числовые и текстовые данные, поставщик данных Jet выбирает «доминирующий» тип данных и возвращает NULL вместо значений другого типа.Для получения дополнительных сведений об обходе этой проблемы щелкните следующий номер статьи базы знаний Майкрософт:
    194124 (http://support.microsoft.com/kb/194124/RU/ )

—————————————————-

Полезные ссылки:

306397 (http://support.microsoft.com/kb/306397/RU/ )

Использование Excel со связанными серверами SQL Server и распределенными запросами

299484 (http://support.microsoft.com/kb/299484/RU/ )

При использовании ADOX для получения столбцов таблицы Access столбцы упорядочиваются по алфавиту

194124 (http://support.microsoft.com/kb/194124/RU/ )

При использовании DAO OpenRecordset данным в Excel присваивается значение NULL

6 мая, 2009

Posted by nikpro |
Администрирование и Настройка | ActiveX, ADO, ado select excel, adodb подключение к sql server vb, DSN, Администрирование, импорт в ms sql, импорт данные из excel в datasource tabl, импорт excel в mssql, импорт excel в sql server 2005, перенос данных из sql в excel, получение данных из excel в access, пример подключения к sql visual basic, программа для переноса excel в .mdf, программа для переноса excel в .sql, excel в mssql, from openrowset excel, insert into import from excel, Microsoft OLE, Microsoft SQL Server, MS Office Exel, ms sql импорт из excel связанный сервер, ms sql связанные сервера xls excel, MS Windows, mssql excel получить имена столбцов, создать поставщик microsoft jet ole db, строка подключения к sql server, строка подключения excel, ODBC, open dts sql sever 2008, openquery, openquery excel, openquery sql server, select * from excel, SQL 2005, SQL 2008, sql запрос из excel, sql мастер импорта данных, SQL Server, Visual Basic, xls перевести данные в sql, xls select |
12 комментариев

Не знаете, как выгрузить данные из SQL в Excel для отчета?

Windows XP

Итак, перед нами поставлена задача сделать автоматизированный отчет на основании данных сервера SQL . Есть несколько способов решения данной задачи: вы можете использовать Microsoft Office Access, но мы п ойдем простым путем и сделаем этот отчет в Microsoft Office Excel. ВНИМАНИЕ: для создания данного отчета Вам необходимо проверить настройки (Источники данных (ODBC) в панели управления. В разделе системный DNS добавьте коннектор, который будет смотреть на Ваш сервер SQL . Также проверьте, что для Вашей учетной записи доступны те вьюхи и те таблицы которые вам нужны для отчета. После настройки ODBC мы открываем Microsoft Office Excel.

На листе 2 пишем период отчета.

Переходим на страницу куда будут выгружаться данные. Я переименовал страницу «Лист1» в «Запрос». Теперь необходимо сделать связку на наш SQL сервер «Действие >Импорт внешних данных > Создать запрос»

В данном окне Вам необходимо вбить логин и пароль на доступ к SQL серверу. Который Вам должен предоставить администратор SQL сервера.

В водим пароль и логин.

Далее вываливается список доступных таблиц и вьюх по данному логину.

Жмем отмена.

В диалоговом окне « Microsoft Query »

Жмем да

Выбираем вьюху или таблицу из которой вам нужно выгружать данные.

Видим такую картинку

Нажать на эту кнопку.

Выбираем поле дата_создания и в значении пишем

>=[Начало периода] И <[Окончание периода]

Внимание: Если у Вас для выгрузки используется другое поле, не ДАТА_СОЗДАНИЯ, как у меня, то Вам нужно указать ключ по которому Вы будете выгружать данные из базы.(Можно без ключа, только не забывайте про ограничения Exl )

Теперь сохраняем запрос.

Дважды щелкнуть на * (Левой кнопкой мыши)

Указать начало периода.

Указать окончание периода.

Нажать на ок.

Получили данные, теперь их нужно загрузить в эксель.



Нажмите «Файл» «Вернуть данные в Microsoft Office Excel»

Указали строчку с которой начнутся выгружаться данные.

На листе «Запрос»

Нажимаем на Параметры

Видим  картинку параметров.

Выбираем нижнее значение и указываем поле, в котором будет указанна дата начала периода.

То, что указанно на Листе 2

Теперь выбираем окончание периода. Тоже самое только на строчку ниже.

Жмем ок

Ок

Теперь сохраняем файл.

Переименовываем страницу.

Ну а дальше дело техники.

Теперь для обновления отчета Вам понадобится только сменить интервал времени и обновить данные на листе «Запрос». Правой кнопкой на данные и выбрать пункт «Обновить запрос»

Мы получили данные с SQL в Microsoft Office Excel. Для анализа данных используете связанные таблицы, или Вы можете написать свои VB скрипты.

Если у Вас возникли вопросы по теме обращайте на наш форум.

Возврат к списку


Форум для отзывов 21 не существует.

 

Использование Excel VBA для запроса базы данных SQL Server

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

Используя VBA, мы можем это сделать!

Мы рассмотрим пример, который позволяет нам найти значение общего дохода клиента по формуле Excel.

VBA для запроса базы данных SQL Server

Следующая функция VBA может использоваться в проекте Excel VBA.Однако вам необходимо сначала добавить в проект библиотеку ADODB.

  Поиск общедоступной функции AWCustomerRevenue (intID до тех пор) как валюта
    Dim conn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim strConnString As String
 
    Если intID = 0, то
        LookupAWCustomerRevenue = 0
    Еще
        strConnString = "Поставщик = SQLOLEDB; Источник данных = W10NBMJD \ SQL2014;" _
                        & "Начальный каталог = AdventureWorks2014; Интегрированная безопасность = SSPI;"
        
        Установите conn = New ADODB.Подключение
        conn.Open strConnString

        Установите rs = conn.Execute ("SELECT SUM (TotalDue) AS CustRev FROM Sales.SalesOrderHeader WHERE CustomerID =" & intID)
        
        Если не IsNumeric (rs.Fields ("CustRev"). Value), то
            LookupAWCustomerRevenue = 0
        Еще
            LookupAWCustomerRevenue = rs.Fields ("CustRev"). Значение
            rs.Close
        Конец, если
    Конец, если
    
Конечная функция  

В этом примере мы используем соединение ADO для подключения к экземпляру SQL Server (DBSRV \ SQL2014):

  strConnString = "Поставщик = SQLOLEDB; Источник данных = DBSRV \ SQL2014;" _
                        & "Начальный каталог = AdventureWorks2014; Интегрированная безопасность = SSPI;"  
  • Параметр Provider указывает, что соединение OLDEB будет установлено, а параметр Data Source указывает на экземпляр SQL Server.
  • Параметр исходного каталога определяет запрашиваемую базу данных (AdventureWorks2014)
  • Параметр встроенной безопасности указывает, что для проверки подлинности с SQL Server будет использоваться аутентификация Windows.

Объект RecordSet (rs) используется для создания набора записей из оператора SELECT:

  Set rs = conn.Execute ("SELECT SUM (TotalDue) AS CustRev FROM Sales.SalesOrderHeader WHERE CustomerID =" & intID)  

Оператор SELECT состоит из литеральной строки и передаваемого значения переменной intID в функцию при ее вызове.

Оператор If в начале проверяет значение intID, равное 0. Целочисленные переменные по умолчанию имеют нулевое значение, если они не инициализированы (другими словами, если при вызове функции значение не указано). Если в функцию не передается никакого значения, в качестве значения дохода возвращается значение 0.

  Если intID = 0 Тогда
               LookupAWCustomerRevenue = 0  

Второй оператор If проверяет нечисловое значение, возвращаемое оператором SELECT.Если идентификатор клиента, переданный в функцию, действителен, но они не отправили заказов, выражение SUM (TotalDue) вернет значение NULL . Если это произойдет, функция вместо этого вернет значение 0.

  Если не IsNumeric (rs.Fields ("CustRev"). Value), то
            LookupAWCustomerRevenue = 0  

Сценарий со значением NULL можно увидеть на следующем снимке экрана.

Я поместил точку останова в строку кода VBA, содержащую оператор If, и открыл окно Locals Window , чтобы я мог видеть все значения переменных в этой точке выполнения.

Я протестировал функцию, выполнив ее из окна Immediate Window в редакторе VBA:

 ? LookupAWCustomerRevenue (1)  

Если установлена ​​точка останова, выполнение кода автоматически останавливается на отмеченной строке и позволяет нам просматривать среду в этой точке выполнения.

Окно Locals на приведенном выше снимке экрана показывает переменную объекта Recordset rs и, в частности, значение для первого поля из rs, «CustRev». Мы видим, что он установлен на Null .Это связано с тем, что клиент со значением CustomerID 1 не размещал никаких заказов и, следовательно, не имеет итогового значения дохода.

На следующем снимке экрана показано, что запрос возвращает NULL при запуске непосредственно на экземпляре SQL Server:

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

  ПоискAWCustomerRevenue = rs.Поля ("CustRev"). Значение  

Вызов функции VBA из формулы Excel

Вызвать функцию VBA из формулы Excel очень просто. Когда вы создаете формулу Excel, вводя ее в ячейку, intellisense отображает соответствующие функции VBA, а также встроенные функции. На следующем снимке экрана показано это:

Вы можете видеть, что есть две перечисленные выше функции VBA, которые начинаются с Lo : LookupAWCustomerRevenue и LookupPersonName .

В следующем примере показана функция LookupAWCustomerRevemue, используемая в ячейке для вычисления общего дохода для значения CustomerID, указанного в столбце A рабочего листа:

Сводка

В этой статье мы познакомились с кодированием VBA, некоторыми методами обработки ошибок и отладки VBA, а также увидели, как можно вызывать функции VBA из формулы Excel. Не стесняйтесь, напишите нам по адресу [email protected], если у вас есть какие-либо вопросы, касающиеся этой статьи.Существует также версия этой статьи для Access.

Вы можете обнаружить, что эти курсы время от времени появляются в предложениях о поздней доступности, предлагая экономию 30%.

Как экспортировать данные SQL Server в файл CSV

В этой статье будут объяснены различные способы экспорта данных из SQL Server в файл CSV. В этой статье будут рассмотрены следующие методы:

  1. Экспорт данных SQL Server в CSV с помощью мастера экспорта SQL Server
  2. Экспорт данных SQL Server в CSV с помощью утилиты bcp
  3. Экспорт данных SQL Server в CSV с помощью служб отчетов SQL Server (SSRS) в SQL Server Data Tools (SSDT) ​​в Visual Studio
  4. Экспорт данных SQL Server в CSV с использованием результатов полного копирования ApexSQL как CSV

Экспорт данных SQL Server в CSV с помощью мастера экспорта SQL Server

Одним из способов экспорта данных SQL Server в CSV является использование мастера импорта и экспорта SQL Server.Перейдите в SQL Server Management Studio (SSMS) и подключитесь к экземпляру SQL. В обозревателе объектов выберите базу данных, щелкните правой кнопкой мыши и в контекстном меню в подменю Tasks выберите опцию Export Data :

Откроется приветственное окно мастера импорта и экспорта SQL Server:

Нажмите кнопку Next , чтобы продолжить экспорт данных.

В окне « Выбор источника данных» выберите источник данных, из которого вы хотите скопировать данные.В нашем случае в раскрывающемся списке Data source выберите SQL Server Native Client 11.0. В раскрывающемся списке Server name выберите экземпляр SQL Server. В разделе Аутентификация выберите аутентификацию для подключения к источнику данных, а в раскрывающемся списке База данных выберите базу данных, из которой будут скопированы данные. После того, как все настроено, нажимаем кнопку Next :

В окне Выберите назначение укажите расположение данных, которые будут скопированы с SQL Server.Поскольку данные из базы данных SQL Server будут экспортированы в файл CSV в раскрывающемся списке Destination , выберите элемент Flat File Destination . В поле File name укажите CSV-файл, в который будут экспортированы данные из базы данных SQL Server, и нажмите кнопку Next :

В окне Укажите копию таблицы или Запрос получите все данные из таблицы / представления, выбрав переключатель Копировать данные из одной или нескольких таблиц или представлений , или укажите, какие данные будут экспортированы в файл CSV, написав Запрос SQL путем выбора Написать запрос, чтобы указать данные для передачи радиокнопки.В этом примере выбран переключатель Копировать данные из одной или нескольких таблиц или представлений . Чтобы продолжить, нажмите кнопку Next :

В окне Настроить назначение плоского файла выберите таблицу или представление в раскрывающемся списке Исходная таблица или представление для экспорта данных в файл CSV:

Чтобы просмотреть, какие данные будут экспортированы в файл CSV, нажмите кнопку Preview .Появится окно Preview Data с данными, которые будут экспортированы:

Если вас устраивают данные предварительного просмотра, нажмите кнопку Next , чтобы продолжить экспорт данных. Откроется окно Сохранить и запустить пакет . Оставьте настройки как есть и нажмите кнопку Далее :

В окне Complete Wizard отображается список вариантов, которые были сделаны в процессе экспорта:

Чтобы данные из SQL Server в файл CSV, нажмите кнопку Finish .В последнем окне отображается информация о процессе экспорта, успешно он был или нет. В этом случае процесс экспорта был успешно завершен:

На изображении ниже показан файл ExportData.csv в Excel и Блокноте с экспортированными данными:

Мастер импорта и экспорта SQL Server может быть запущен без использования SSMS, перейдите к началу и введите слово «Экспорт», в результатах поиска выберите 64-разрядную или 32-разрядную версию мастера импорта и экспорта SQL Server:

Экспорт данных SQL Server в CSV с помощью утилиты bcp

Утилита bcp (программа массового копирования) используется для копирования данных между экземпляром SQL Server и файлом данных.С помощью служебной программы bcp пользователь может экспортировать данные из экземпляра SQL Server в файл данных или импортировать данные из файла данных в таблицы SQL Server.

Чтобы начать экспорт данных SQL в файл CSV, сначала откройте командную строку (cmd), перейдите к началу, введите cmd и щелкните элемент Command Prompt :

Откроется окно командной строки :

Затем введите bcp? и нажмите клавишу Enter , чтобы проверить, все ли работает как надо.В нашем случае возникает ошибка:

Как видно из окна сообщения об ошибке, отсутствует файл msodbcsql13.dll. Чтобы решить эту проблему, загрузите и установите драйвер Microsoft ODBC 13 для SQL Server.

Теперь, когда в окне командной строки отображается bcp? команда будет выполнена, появится следующая информация:

На приведенном выше экране показаны все различные переключатели, которые можно использовать в утилите bcp.Итак, давайте воспользуемся некоторыми из этих переключателей и экспортируем данные SQL Server в CSV.

В окне командной строки введите слово bcp , за которым следует имя таблицы SQL, из которой следует экспортировать данные, введя следующие шаги, сначала введите имя базы данных , которая содержит таблицу, из которой вы хотите для экспорта данных, за которым следует точка . После точки введите имя схемы таблицы, после имени схемы введите точка и после точки введите имя таблицы , которая содержит данные для экспорта (например,грамм. AdventureWorks2014.Person.AddressType ):

После имени таблицы SQL нажмите клавишу пробела и введите слово из :

из копирует данные из таблицы базы данных или просмотра в указанный файл.

Также существует команда queryout, которая копирует данные из запроса SQL в указанный файл.

Команда in копирует данные из файла в указанную таблицу базы данных.

После команды out добавьте расположение CSV-файла, в которое будут помещены данные из таблицы SQL, например ( C: \ Test \ ExportData.csv )

Теперь, когда указан файл csv, необходимо включить еще несколько переключателей, чтобы экспортировать данные SQL Server в файл CSV.

После типа файла CSV переключатель -S и имя экземпляра SQL Server, к которому нужно подключиться (например, WIN10 \ SQLEXPRESS ):

Затем введите переключатель -c, а после этого введите переключатель -t, чтобы установить терминатор поля, который будет разделять каждый столбец в экспортируемом файле.В этом примере будет использоваться разделитель запятая (,) :

В конце введите переключатель, который определяет, как он будет доступен для SQL Server. Если установлен переключатель -T, это означает, что доверенный (проверка подлинности Windows) будет использоваться для доступа к SQL Server. Для проверки подлинности SQL используйте переключатель -U для пользователя SQL Server и -P для пароля пользователя SQL Server.

В этом примере будет использоваться доверенное соединение (переключатель -T):

Теперь при нажатии клавиши Enter появится аналогичное сообщение с информацией о скопированных данных:

Чтобы подтвердить, что данные из указанной таблицы были скопированы в файл CSV, перейдите в место, где файл был создан, в нашем случае это будет C: \ Test:

И откройте ExportData.csv файл:

Экспорт данных SQL Server в CSV с помощью служб отчетов SQL Server (SSRS) в SQL Server Data Tools (SSDT) ​​в Visual Studio

SSRS позволяет сохранять экспортированные данные в одном из следующих форматов: PDF, Excel, XML, MHTML, Word, CSV, PowerPoint и формат TIFF.

Чтобы начать создание проекта сервера отчетов, сначала откройте SSDT. Перейдите в меню File и в подменю New выберите опцию Project :

В разделе Business Intelligence выберите элемент Службы Reporting Services и справа выберите параметр Мастер проекта сервера отчетов:

Примечание : В любом случае параметры Business Intelligence или Report Server Project Wizard не отображаются, SSDT необходимо обновить с помощью шаблонов Business Intelligence.Дополнительную информацию об этом можно найти на странице загрузки инструментов данных SQL Server (SSDT).

В поле «Имя» введите имя проекта (например, ExportData) и в поле «Местоположение» выберите, где будет создан проект:

После установки нажмите кнопку OK, появится окно мастера отчетов, нажмите кнопку Next , чтобы продолжить:

Появится окно Select the Data Source :

В поле Строка подключения можно ввести строку подключения к базе данных SQL Server, из которой можно создать отчет, или нажмите кнопку Изменить в окне Выберите источник данных и в окне Свойства подключения установите строку подключения к нужной базе данных, как на изображении ниже, и нажмите кнопку OK :

Это будет в поле Строка подключения в окне Выберите источник данных .Нажмите кнопку Next , чтобы продолжить настройку:

В окне «Дизайн запроса » укажите запрос, который нужно выполнить для получения данных для отчета. Есть два способа получить выполнение запроса. Один из способов — использовать окно конструктора запросов, нажав кнопку «Построитель запросов» в окне «Создание запроса ».

И второй способ — ввести желаемый запрос в поле Строка запроса :

После настройки запроса нажмите кнопку Далее .На выберите окно Report Type , оставьте настройки по умолчанию и нажмите кнопку Next :

В окне Design the Table оставим все как есть и нажмем кнопку Next :

В окне Завершение мастера показаны все шаги / настройки, которые выполняются в процессе создания отчета. Нажмите кнопку Finish , чтобы создать отчет:

После того, как мы нажали кнопку «Готово», появится созданный отчет.На вкладке Preview нажмите кнопку Export и выберите в меню, в каком формате будут экспортированы сгенерированные данные (например, CSV):

Экспорт данных SQL Server в CSV с использованием результатов полного копирования ApexSQL в качестве опции CSV

Код копирования как — это функция в ApexSQL Complete, бесплатной надстройке для SSMS и Visual Studio, которая копирует данные из таблицы результатов в буфер обмена в одном из следующих файлов данных: CSV, XML, HTML всего за несколько минут. один клик.

В редакторе запросов введите следующий код и выполните:

 ЕГЭ AdventureWorks 2014

ВЫБЕРИТЕ at. * FROM Person.AddressType в 

В сетке результатов будут отображаться следующие результаты:

В таблице результатов выберите часть или все данные, щелкните правой кнопкой мыши и в контекстном меню в подменю Копировать результаты как выберите команду CSV :

Это скопирует выбранные данные из сетки результатов в буфер обмена.Теперь все, что нужно сделать, это создать файл, в который должны быть вставлены скопированные данные:

Код ApexSQL Complete Copy в качестве опции может сэкономить вам много времени, когда вам нужно скопировать повторяющиеся данные SQL в другой формат данных.

См. Также:

Экспорт SQL в Excel

Как экспортировать таблицу из SQL Server в электронную таблицу Excel с помощью SQL Server
Мастер импорта и экспорта

Экспорт таблицы базы данных SQL в электронную таблицу Excel за девять шагов.

Следуя инструкциям на этой странице, вы можете легко экспортировать таблицу из Microsoft.
SQL Server в электронную таблицу Excel с помощью мастера импорта и экспорта SQL Server .
Вы можете использовать мастер в SQL Server Standard, Enterprise, Developer или Evaluation.
редакции.

1. Подготовьте электронную таблицу Excel для получения данных таблицы SQL

  • Сначала подготовьте электронную таблицу Excel для получения данных из таблицы SQL, добавив
    точные заголовки , которые находятся в таблице в верхней строке электронной таблицы
    (см. два скриншота ниже).

Целевая электронная таблица Excel с добавленными заголовками таблиц SQL

Исходная таблица, dbo.Sheet1 $ , в Microsoft SQL Server Management Studio

2. Запустите мастер импорта и экспорта SQL

.

  • Затем в Windows запустите мастер импорта и экспорта на Пуск / Все
    Программы / Microsoft SQL Server 2008 / Импорт и экспорт данных.
  • Появится страница Добро пожаловать . Нажмите Далее .

Мастер импорта и экспорта SQL в меню «Пуск» Windows

3. Выберите свою таблицу SQL в качестве источника данных

  • В раскрывающемся списке Data Source страницы Choose a Data Source ,
    примите стандартный SQL Server Native Client 10.0 .
  • В раскрывающемся списке Имя сервера введите имя сервера. Пример
    является удаленным сервером, поэтому были указаны IP-адрес и порт сервера.
  • Выберите тип Аутентификация . Пример — удаленный сервер, поэтому SQL Server
    требуется аутентификация с использованием имени пользователя и пароля.
  • В раскрывающемся списке База данных выберите или введите имя базы данных.
  • Нажмите Далее .

4. Выберите электронную таблицу Excel в качестве назначения

  • В раскрывающемся списке Destination на странице Choose a Destination выберите
    Microsoft Excel .
  • В поле Путь к файлу Excel укажите путь к файлу целевой электронной таблицы Excel.
  • Выберите версию в раскрывающемся списке Excel версия .
  • Убедитесь, что Первая строка содержит имена столбцов. установлен.
  • Нажмите Далее .

5. Укажите, как копировать данные

  • Параметр по умолчанию, Копировать данные из одной или нескольких таблиц или представлений, работает для
    этот пример.
  • Нажмите Далее .

6. Выберите исходные таблицы и представления

  • В этом примере работают настройки по умолчанию, как показано.
  • В столбце Назначение укажите имя электронной таблицы Excel. В
    шаг 1, Sheet2 использовался, поэтому здесь показан выбранный лист.
  • Щелкните Preview , чтобы увидеть, как ваши данные будут отображаться в целевой электронной таблице.
  • Вы можете нажать Изменить сопоставления , чтобы изменить способ назначения ваших данных в месте назначения
    таблицу, но в этом примере это не обязательно, поскольку вы ввели
    данные в электронную таблицу Excel.
  • Нажмите Далее .

7. Запускаем «Пакет»

Внизу страницы Run Package появляется следующее сообщение: In SQL
Server Express, Web или Workgroup, вы можете запустить пакет, который используется для импорта и экспорта.
Мастер создает, но не может сохранить. Чтобы сохранить пакеты, созданные мастером, вы
необходимо обновить до SQL Server Standard, Enterprise, Developer или Evaluation.

«Пакет» — это все настройки, которые вы настроили до сих пор. В
коммерческие версии SQL Server, вы можете сохранить пакет для повторного использования, чтобы
не нужно вводить все настройки при следующем запуске мастера. В
Express (бесплатная) версия Microsoft SQL Server 2008 Management Studio ,
вы должны повторно вводить все параметры каждый раз, когда запускаете SQL Server Import и
Мастер экспорта.

8. Убедитесь, что пакет успешно выполнен.

  • Щелкните Report , чтобы просмотреть полезную информацию о процессе передачи данных.
  • Если вы получаете сообщение об ошибке, указывающее, что количество строк неверно, убедитесь, что
    заголовки в электронной таблице Excel соответствуют таблице SQL точно , поскольку
    показано на шаге 1.
  • Щелкните Закройте .

9. Просмотрите электронную таблицу с импортированными строками таблицы в Excel

.

  • Просмотрите электронную таблицу с добавленными строками данных.

Новая таблица, Sheet2 , в Microsoft Excel .

Вы также можете использовать Мастер импорта и экспорта для
импортировать данные из электронной таблицы Excel в таблицу в SQL Server.

Пожалуйста, присылайте любые предложения или комментарии об этой странице на , отзывы на 66pacific.com .

SQL Server Helper — Советы и приемы

Запрос листа Excel

Допустим, у вас есть файл Excel с именем «Адреса».xls, содержащий адреса
люди со следующими выборочными данными:

 | А | B | C | D | E | F |
-------------------------------------------------- ----------------------------------------------
1 | FirstName | Фамилия | Адрес | Город | Состояние | ZIP |
2 | Микки | Мышь | Мир Уолта Диснея | Lake Buena Vista | FL | 32830 |
3 | Дональд | Утка | Мир Уолта Диснея | Lake Buena Vista | FL | 32830 |
4 | Джордж | Буш | 1600 Пенсильвания-авеню NW | Вашингтон | DC | 20500-0003 |
5 | Джордж | Клуни | Эль-Камино, 151 | Беверли-Хиллз | CA | 

-2704 | 6 | Том | Круиз | 9830 Wilshire Boulevard | Беверли-Хиллз | CA |

-1804 |

Для запроса этих данных из файла Excel без использования DTS для импорта их в таблицу
в SQL Server вы можете выполнить следующий оператор SELECT с OPENROWSET :

 ВЫБРАТЬ *
ОТ OPENROWSET ('Microsoft.Jet.OLEDB.4.0 ',
                'Excel 8.0; База данных = C: \ Source \ Addresses.xls',
                'ВЫБРАТЬ * ИЗ [Лист1 $]') 

Лист1 — это имя рабочего листа в файле Excel. Удостовериться
что после имени рабочего листа стоит знак доллара ($), когда
указание в запросе. Если знак доллара не указан,
возникнет следующая ошибка:

Сервер

: Msg 7399, уровень 16, состояние 1, строка 1
Поставщик OLE DB 'Microsoft.Jet.OLEDB.4.0 'сообщил об ошибке.
[Поставщик OLE / DB вернул сообщение:
Ядру базы данных Microsoft Jet не удалось найти объект Sheet1.
Убедитесь, что объект существует и вы правильно написали его имя и путь.]
Трассировка ошибки OLE DB
[Поставщик OLE / DB 'Microsoft.Jet.OLEDB.4.0' IColumnsInfo :: GetColumnsInfo вернул 0x80004005:].
 

Результат этого запроса будет следующим:

 Имя Фамилия Адрес Город Штат Почтовый индекс
---------- ---------- ------------------------------ -------------------- ------ ----------
Микки Маус Уолт Дисней Уорлд Lake Buena Vista FL NULL
Дональд Дак Уолт Дисней Уорлд Озеро Буэна-Виста FL NULL
Джордж Буш 1600 Пенсильвания Авеню Северо-Запад Вашингтон 20500-0003
Джордж Клуни, 151 El Camino Drive, Беверли-Хиллз, Калифорния, 

-2704 Том Круз 9830 Wilshire Boulevard Beverly Hills CA

-1804

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

Следует отметить, что файл Excel должен находиться на сервере SQL, где
вы подключены, а не на своем локальном компьютере. Указанный диск C:
в функции OPENROWSET — это диск C: SQL Server, к которому вы подключены.
на, а не на локальный диск C :. Если файл Excel указан в строке provider_string
параметр функции OPENROWSET не существует или неверен,
возникнет следующая ошибка:

Сервер

: Msg 7399, уровень 16, состояние 1, строка 1
Поставщик OLE DB 'Microsoft.Jet.OLEDB.4.0 'сообщил об ошибке.
Провайдер не сообщил об ошибке.
Трассировка ошибки OLE DB [поставщик OLE / DB 'Microsoft.Jet.OLEDB.4.0'
IDBInitialize :: Initialize вернул 0x80004005:
Провайдер не предоставил никакой информации об ошибке.].
 

Как и любой оператор SELECT, в запрос могут быть включены условия
отфильтровать записи из рабочего листа Excel, просто указав его в
Предложение WHERE.Например, чтобы отображать только адреса людей из
Флорида, вы можете сделать следующее:

 ВЫБРАТЬ *
ОТ OPENROWSET ('Microsoft.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *