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


Немножко всего .. из жизни администратора ms sql server

Несколько примеров работы из MS SQL Server  с таблицами формата Excel(.xls,.xlsx):

1)С использованием функции OPENROWSET или с OPENDATASOURCE:

SELECT * FROM OPENROWSET('MSDASQL',

'Driver={Microsoft Excel Driver (*.xls)};

DBQ=[C:\gr_otchet.xls]', 'SELECT * FROM [Sheet1$A8:D10000]'

Пример для OPENDATASOURCE из BOL:

SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',

'Data Source=C:\DataFolder\Documents\TestExcel.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ;

Одна из распространенных  проблем, это отсутствие драйверов под х64 платформу, или установка х32 битных под х64 систему. Например, драйверов Microsoft.Jet.OleDB нет 64 битных,в этом случае  можно использовать другие драйвера, к примеру  Microsoft.ACE.OLEDB.12.0.

Не забудьте только про Примечание из  BOL:

Функция OPENROWSET  или  OPENDATASOURCE может быть использована для доступа к удаленным данным из источников данных OLE DB только в том случае, если для заданного поставщика параметр реестра DisallowAdhocAccess явно установлен в 0 и включен параметр Ad Hoc Distributed Queries расширенной настройки. Если эти параметры не установлены, поведение по умолчанию запрещает нерегламентированный доступ.

Если параметр Ad Hoc Distributed Queries выключен, то  об будет информационное сообщение. Включение параметра осуществляется через хранимую процедуру sp_configure.

sp_configure 'Ad Hoc Distributed Queries', 1;

RECONFIGURE;

GO

2) Второй спосб через Linkedserver и ODBC драйвер.

1-ый способ хорошо, когда необходимо использовать разово, для частого и широко использования лучше использовать технологию связанного сервера(Linked Server)

Для этого необходимо установить на сервере MS SQL Server ODBC драйвер а для Excel, затем создать источник данных( Администрирование ->Источники данных)

Указывает имя источника данных ,версию Excel и сам файл.

Сохраняем источник.

После этого создаем связанный сервер LinkedServed (связанный сервер):

Указываем имя нашего  связанного сервера и имя созданного нами раннего ODBC источника.

Сохраняем.

Теперь можно выполнять запросы к нашему связанному серверу, к примеру:

select * from openquery(excel,'select * from [sheet1$]') – получение всех данныз из экселя

select * from openquery(excel,'select * from [Sheet1$A10:D2]') – получение данных диапозона $A10:D2

select * from openquery(excel,'select * from [Sheet1$A10:D]') – получение данных диапозона с A10:D до конца файла.

3) Еще одни, способ, когда необходим импорт разово, то можно использовать «SQL Server Import and Export Wizard»:

Выделяем БД,  правая кнопка, Задачи, Выбираем пункт Импорт или Экспорт:

Выбираем источник данных, наш файл Excel, версию Excel-я. :

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

После этого можно пакет запустить немедленно или его сохранить для дальнейшего использования.

4) Кстати, 4 способ, это как раз создание пакета SSIS в Microsoft Visual Studio, результатом которого так же будет пакет, похожий на то, что было создано в варианте 3

Делается он просто

Выбирается Элемент потока управления

Затем выбирается источник и сервер назначения:

В источнике соединений создается новое соединение с нашим файлом Excel, в  Назначение указываем наш MS SQL Server, указываем таблицу, сопоставляем столбцы:

После этого сохраняем пакет, и его запускаем.

Пакет создали  и должен работать.

Удачи .

dbasimple.blogspot.com

Обзорные статьи, опыты, эксперименты, блоги

Жмем отмена.

Жмем да

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

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

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

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

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

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

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

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

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

Нажать на ок.

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

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

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

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

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

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

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

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

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

Жмем ок

Ок

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

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

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

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

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

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

servicecall.ru

Импорт данных из Excel в SQL Server « NC’s Blog

Импорт данных из Excel в SQL Server

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 источнику может быть передан сквозной запрос:

nikpro.wordpress.com

Автоматизация обработки таблиц в Excel и перенос данных в MySQL [Разбор кейса]

Благодарность: Карло Мелис (Carlo Melis), ИТ консультант, работает по заданию международного негосударственного органа по сертификации пищевой продукции, Рим, Италия.

Надстройки в фокусе: Автоматизация без VBA (извлечение таблиц, SQL запросы, экспорт из Excel в MySQL). Поддерживается в версии XLTools 5.0.0.762 и выше.

 

Обзор кейса

Карло, ИТ консультант, работал над сложной, но довольно типичной задачей. Ему нужно было разработать систему, которая бы создавала отчеты для руководства на основе Excel файлов, полученных от порядка 10-20 исследовательских лабораторий.

Сначала эти отчеты создавали в Excel – в основном вручную – и направляли руководству и лабораториям в печатном виде или PDF.

В таком подходе нет нужного уровня автоматизации и гибкости. Поэтому Карло решил найти способ выгружать данные из файлов лабораторий, организовывать их в заданном порядке, и экспортировать данные в базу данных MySQL. Потом, уже в веб интерфейсе, создавать необходимые отчеты, напр., графики динамики по годам, и направлять всем участникам ссылку на финальный отчет.

Первоначальный подход занимал около 20 дней ужасной работы. Нам приходилось иметь дело с ошибками после копирования огромного объема данных из одного сводного отчета в Excel в отдельные отчеты по каждой задействованной лаборатории. Форматы очень разные, поэтому не представлялось возможным автоматизировать этот процесс в Excel. Кроме того, клиенту нужны были графики, где можно было бы сравнить результаты, полученные много месяцев назад – такое возможно только при выгрузке данных в MySQL.

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

Один из подходов к автоматизации – создать специальный макрос VBA. Но при таком большом объеме необходимых операций написание макроса с нуля займет неоправданно много времени. Кроме того, если вы хоть раз пробовали настроить интеграцию макроса с внешней базой данных, вы представляете, насколько утомительной может быть синхронизация вручную. Одно небольшое изменение в процессе (к примеру, другое название исходной таблицы) ведет к бесконечным правкам в скрипте.

Надстройка XLTools, с другой стороны, дала Карло гибкие инструменты для автоматизации всего процесса без VBA: извлечь, подготовить и экспортировать данные в базу данных MySQL.

XLTools Автоматизация – это мощный и многоцелевой инструмент. Последовательность всех операций записана на одном листе Excel, и все операции вручную сводятся к нажатию одной единственной кнопки.

Мой клиент очень доволен результатами, потому что теперь мы можем выполнить всю работу за 2 часа вместо 20 дней. XLTools помог нам облегчить работу с текущей XLS структурой. Процесс открыт для правок в будущем – скрипт очень легко изменить. Сейчас мы переносим данные в базу данных за минуты, где уже формируем все нужные отчеты.

Рассмотрим некоторые операции, автоматизированные в этом процессе.

 

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

Именно это и выполняет команда XLTools.ExtractTable:

  • Она извлекает данные из внешних Excel или CSV файлов. Вы можете собрать все необходимые данные в одном месте и продолжить работу с полным объемом данных. По большому счету, это инструмент копирования-вставки.
  • Извлекая простой диапазон, он будет вставлен как именованная таблица. Только данные в формате таблицы могут служить источником данных для дальнейших операций, в т.ч. для выполнения SQL запросов в Excel.

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

Для этого, пропишем команду автоматизации XLTools.ExtractTable:

XLTools.ExtractTable

WorkbookFile:

source.xls

Range:

LABCODE!E:F

SkipTopRowsCount:

4

ApplyTableName:

LabCodes

Headers:

lab,stat

PreserveFormat:

TRUE

OutputTo:

NewHiddenSheet[LabCodes]

Укажите диапазон данных, которые нужно извлечь:

  • Книга под названием “source.xls”. Обратите внимание, что исходные файлы должны находиться в той же папке, что и ваш файл автоматизации.
  • Диапазон E:F на листе “LABCODE”
  • Пропустить (Skip) 4 строки сверху, поскольку данные по факту начинаются со строки 5

Укажите, куда поместить извлеченные данные:

  • Назвать новую таблицу “LabCodes”
  • Присвоить заголовки “lab” and “stat”
  • Сохранить формат ячеек (PreserveFormat)
  • Поместить результат на новый скрытый лист “LabCodes”. Нам не нужно, чтобы лист был видимый – извлечение данных это лишь промежуточный шаг к дальнейшим операциям.

Выполнив эту команду, получим такую таблицу “LabCodes”, начиная с ячейки A1 на новом скрытом листе “LabCodes”:

Точно так же мы извлекли другие необходимые таблицы из файлов лабораторий. После этого мы готовы к работе с полным объемом данных.

 

Шаг 2. Объединить две таблицы Excel c помощью автоматизированного SQL запроса

В самом начале проекта, Карло составил схему, как конкретные записи должны быть выгружены из Excel в MySQL. Используя эту схему, мы помогли автоматизировать подготовку данных к экспорту.

Для обработки данных мы рекомендуем команду XLTools.SQLSelect. Мы очень любим и сами часто используем эту команду:

  • SQL запросы – первый выбор, если нужно объединить две или более таблиц по общему полю;
  • XLTools позволяет применять SQL SELECT запросы напрямую к таблицам Excel и быстро подготовить данные;
  • SQL позволяет выполнять несколько сложных задач за один раз – можно реорганизовать и отформатировать данные всего за пару запросов.

Например, нам нужно было объединить эти две таблица и переименовать столбцы. Кроме того, нам нужно было обработать положительные/отрицательные значения: столбец “sign” указывает, что значения в столбце “d” положительные или отрицательные.

Для этого, мы используем команду XLTools.SQLSelect:

XLTools.SQLSelect

SQLQuery:

SELECT      tbl2.[lab] as [ic_code],      tbl1.[Nb] as [rank],      tbl1.[%] as [percent],      tbl1.[N°] as [lab_code],       CASE WHEN tbl1.[sign] = '-' THEN -1 * tbl1.[d]  ELSE tbl1.[d] END as [dev],      tbl1.[Sd] as [s_dev],      tbl1.[D2] as [dist],      tbl1.[Method] as [method],FROM [source.xls].[Table1] tbl1LEFT JOIN [LabCodes] tbl2 ON tbl1.[Nb] = tbl2.[stat]

PreserveFormat:

TRUE

ApplyTableName:

data

OutputTo:

NewSheet[data]

Укажите, какие поля нужно выбрать (SELECT):

  • Взять столбец “lab” из таблицы 2 и назвать “ic_code”
  • Взять столбец “Nb” из таблицы 1 и назвать “rank”
  • Взять столбец “%” из таблицы 1 и назвать “percent”
  • Взять столбец “N°” из таблицы 1 и назвать “lab_code”
  • Взять столбец “sign” из таблицы 1 и назвать “dev”. В то же время добавляем условие (CASE WHEN): если значение в столбце “sign” равно “-”, тогда умножить значение в столбце “d” на -1
  • Взять столбец “Sd” из таблицы 1 и назвать “s_dev”
  • Взять столбец “D2” из таблицы 1 и назвать “dist”
  • Взять столбец “Method” из таблицы 1 и назвать “method”
  • Найти и выбрать таблицу “Table1” из (FROM) книги “source.xls”
  • Объединить таблицы по значениям (LEFT JOIN ON) в столбцах “Nb” и “stat”

Укажите, как выгрузить результат запроса:

  • Сохранить формат ячеек (PreserveFormat)
  • Присвоить новой таблице название “data”
  • Поместить результат на новый лист “data”

Как только вы выполните эту команду, через секунду будет сгенерирована таблица результата:

Обратите внимание, что все столбцы имеют новые названия. Значения в столбце “dev” либо положительные, либо отрицательные. XLTools.SQLSelect – отличный инструмент для автоматизации обработки таблиц Excel. Практически все сложные манипуляции в проекте Карло мы выполнили с помощью SQL запросов.

 

Шаг 3. Автоматически экспортировать данные из Excel в базу данных MySQL

В проекте Карло было немало сложных и вдохновляющих задач (СПАСИБО)! Если извлечение данных и SQL запросы уже давно включены в Автоматизацию XLTools, то экспорт из Excel в MySQL – новая разработка.

После того, как мы подготовили и нужным образом отформатировали данные, создаем команду XLTools.ExportToMySQL:

XLTools.ExportToMySQL

Tables:

zscore-fix,zscore-pt,outliers,repeatability,data

Server:

Имя сервера или IP адрес сервера

Database:

Имя вашей БД

Uid:

Имя пользователя для доступа в вашу БД

Pwd:

Пароль для доступа в вашу БД

ApplyTableName:

ExportResults

OutputTo:

NewSheet[ExportResults]

Укажите, какие таблицы нужно экспортировать в базу данных:

  • Взять таблицы “zscore-fix”, ”zscore-pt”, ”outliers”, ”repeatability”, ”data”

Введите данные для подключения к MySQL:

  • Введите учетные данные для входа в вашу БД: сервер, база данных, имя пользователя и пароль. Это позволит XLTools связаться с вашей базой данных.

Укажите, где поместить отчет об экспорте данных:

  • Присвоить таблице имя “ExportResults”
  • Поместить результат на новый лист “ExportResults”

По завершении выполнения, команда выгрузит данные в MySQL и создаст сводный отчет об экспорте:

Отчет показывает, сколько записей (строк) из каждой таблицы Excel было экспортировано в БД. В случае ошибок во время экспорта, они будут указаны с последнем столбце. Кстати, описание ошибок будет приведено на языке вашей базы данных. Наш клиент Карло работает в Риме, и ошибки будут выводиться на итальянском.

В данном случае, экспорт двух записей в таблице “zscore-fix” не был успешен. Похоже, некоторые ячейки в этой таблице были пустыми – а такие записи не могут быть экспортированы в MySQL. Теперь легко вернуться и исправить ошибки.

 

Привязать выполнение всего процесса к одной кнопке

XLTools Автоматизация также позволяет назначать пользовательские кнопки для этих команд. В примерах, рассмотренных выше, мы выполняли каждую команду отдельно. Но мы можем выделить всю последовательность команд и привязать их к собственным кнопкам на вкладке XLTools. 

Напр., команды Карло привязаны к трем кнопкам. “Prepare & Export” запускает весь процесс (извлечение, подготовка и экспорт данных) по нажатию всего одной кнопки:

 

У вас есть процессы в Excel, которые можно автоматизировать?

Свяжитесь с нами! Готовы помочь.  

Обсудим вашу задачу и убедимся, что XLTools может с ней справиться. Помощь с настройкой кастомизированной автоматизации включена в стоимость лицензии.

Что если в XLTools нет (пока нет) функционала, нужного для вашей конкретной задачи? Мы постараемся разработать его для вас. В основе многих новых надстроек – предложения наших пользователей. Благодаря проекту Карло, Автоматизация теперь поддерживает Экспорт из Excel в MySQL.

 

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

— Карло Мелис, ИТ консультант

Также по теме:Появились вопросы или предложения? Оставьте комментарий ниже.

xltools.net

Решение: Выгрузка SQL отчетов в Excel

Всем привет ) На досуге нужда меня заставила освоить VBA для решения задачи выгрузки SQL отчетов в EXCEL. Как мне кажется решение получилось довольно интересным и функциональным ) Но тем не менее уверен что нет предела совершенству - поэтому я решил выложить его на суд общественности - может что - нибудь добавите в код, или подскажите более изящное решение ) Основная страничка проекта

textual Option Explicit      Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)  ' it's used for running first report       Dim arrComment As Variant   Dim arrStr As Variant   Dim vReportId As String   Dim vReportSqlBody As String   Dim vReportSQLWhere As String   Dim vReportName As String   Dim intCount As Integer   Dim vTypeOfReport As String     vTypeOfReport = ""      On Error Resume Next     arrComment = Split(ActiveCell.Comment.Text, vbLf)                If InStr(arrComment(0), "Otl") > 0 Then     vTypeOfReport = "OTL"         For intCount = LBound(arrComment) To UBound(arrComment)                    arrStr = Split(arrComment(intCount), "=")                    Select Case arrStr(0)                                 Case "ReportID"                   vReportId = arrStr(1)                                 Case "ReportSqlBody"                   vReportSqlBody = arrStr(1)                                   Case "ReportSQLWhere"                   vReportSQLWhere = arrStr(1)                                  Case "ReportName"                   vReportName = arrStr(1)                             End Select                     Next intCount                If Range("ifWhere") Then           vReportSQLWhere = ActiveCell.Next.Value          Else           vReportSQLWhere = ""        End If            End If        On Error GoTo 0        If Len(vReportSqlBody) > 0 Then       getSQlReport vReportId, vReportSqlBody, vReportSQLWhere, vReportName, vTypeOfReport    End If   End Sub       Private Sub Workbook_BeforeClose(Cancel As Boolean)     DeleteCustomMenu  'remove possible duplicates End Sub   Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)       DeleteCustomMenu  'remove possible duplicates       If InStr(UCase(ActiveSheet.Name), "REP") > 0 Then     BuildRepCustomMenu ("REP") 'build new menu  End If   End Sub     Private Sub BuildRepCustomMenu(vTypeOfMenu As String)           Dim ctrl As CommandBarControl     Dim btn As CommandBarControl         Dim iCount As Integer     Dim jCount As Integer         Dim arrComment As Variant     Dim arrStr As Variant     Dim arrRec As Variant         Dim vStr As String     Dim vStrRes As String      If InStr(UCase(vTypeOfMenu), "REP") > 0 Then                 Set ctrl = Application.CommandBars("List Range Popup").Controls.Add _     (Type:=msoControlPopup, Before:=1)         ctrl.Caption = "Drill to SQL Report..."     ctrl.Tag = "CST"     On Error Resume Next        arrComment = Split(ActiveSheet.Range("A1").Comment.Text, "@@")     If Len(arrComment(0)) > 0 Then   On Error GoTo 0     For iCount = LBound(arrComment) To (UBound(arrComment) - 1)                    arrStr = Split(arrComment(iCount), "#")                   vStrRes = ""         For jCount = LBound(arrStr) To UBound(arrStr)                    arrRec = Split(arrStr(jCount), "~")                      Select Case arrRec(0)                                 Case "LinkReportid"                   vStr = arrRec(1)                                 Case "LinkSqlBody"                   vStr = arrRec(1)                                   Case "LinkWhereClause"                   vStr = arrRec(1)                                  Case "LinkDescriptions"                   vStrRes = arrRec(1)                             End Select            Next jCount                   Set btn = ctrl.Controls.Add                 btn.Tag = arrComment(iCount)         btn.OnAction = "getDrillThroughReport"         btn.Caption = vStrRes             Next iCount      End If End If   End Sub   Private Sub DeleteCustomMenu()           Dim ctrl As CommandBarControl            'go thru all the cell commandbar controls and delete our menu item    For Each ctrl In Application.CommandBars("Cell").Controls         If ctrl.Tag = "CST" Then ctrl.Delete     Next         For Each ctrl In Application.CommandBars("List Range Popup").Controls         If ctrl.Tag = "CST" Then ctrl.Delete     Next               End Sub

studassistent.ru

Импорт данныз из xls в MS SQL

Вопрос: Мастер импорта и экспорта

экспериментрую малехо.. из Access в MS SQL Server Management Studio получается базы импортировать.. а вот с экспортом из MS SQL - проблемка.. выбивает ошибку.. хочется понять откуда она и что у меня не так с этим экспортом. чегото кажется в настройках не так, но что??????помогите пожалуйста. поскольку хочется чтоб у меня БД из сервера в Access переходила

содержание отчета к ошибке, скрину:Операция остановлена...

- Инициализация задачи потока данных (Успешно)

- Инициализация соединений (Успешно)

- Установка команд SQL (Успешно)

- Установка соединения с источником (Успешно)

- Установка соединения с назначением (Успешно)

- Проверка (Успешно)

- Подготовка к выполнению (Остановлено)

- До выполнения (Остановлено)

- Выполнение (Ошибка) Сообщения * Ошибка 0xc0202009: {BFAE74F6-11A3-4BF6-B3CC-B12F2621C31E}: Код ошибки служб SSIS: DTS_E_OLEDBERROR. Возникла ошибка OLE DB. Код ошибки: 0x80040E73. Доступна запись OLE DB. Источник: "Microsoft OLE DB Service Components" Результат: 0x80040E73 Описание: "Формат строки инициализации не соответствует спецификации OLE DB.". (Мастер импорта и экспорта SQL Server)

* Ошибка 0xc00291ec: Задача SQL 1 - "Подготовка SQL": Сбой выделения соединения "DestinationConnectionOLEDB". Возможно, соединение настроено неправильно или отсутствуют разрешения, необходимые для этого соединения. (Мастер импорта и экспорта SQL Server)

- Копирование в `Бронирования` (Остановлено)

- Копирование в `Номера` (Остановлено)

- Копирование в `Сотрудники` (Остановлено)

- Копирование в `Список клиентов` (Остановлено)

- После выполнения (Остановлено)

Ответ:

Сообщение от Кто-там

хочется чтоб у меня БД из сервера в Access переходила

Да сделайте это не экспортом из сервера, а импортом из Access. Зайдите в Access, выберите "Внешние данные" - "Источник даных ODBC" - Импорт; Создать источник данных ODBC, прописать настройки, выбрать из объектов БД, какие будут предложены, те, которые вам нужны, ОК.

Сообщение от texnik-san

Тут довольно подробно расписано для Access 2003. В более новых версиях Access немного иначе выглядит интерфейс (например, в 2007 кнопку в меню искать так ), но суть та же.

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

forundex.ru

xls перевести данные в sql « 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

nikpro.wordpress.com