Как да импортирате събиране на данни Препоръчано от Excel към SQL сървър

Преводи на статии Преводи на статии
ID на статията: 321686 - Преглед на продукти, за които се отнася тази статия.
Разгъване на всички | Сгъване на всички

На тази страница

Кратко изложение

Тази статия показва как да импортирате събиране на данни Препоръчано от работни листове на Microsoft Excel в бази събиране на данни на Microsoft SQL сървър с помощта на различни методи.

Описание на техниката

Пробите в тази статия импортиране на Excel събиране на данни с помощта на:
  • SQL Server събиране на данни преобразуване услуги (DTS)
  • Microsoft SQL Server 2005 интеграция услуги (SSIS)
  • Сървъри SQL сървър, свързани
  • SQL сървър разпределени заявки
  • Обекти на ActiveX събиране на данни (ADO) и Microsoft OLE базаданни доставчика за SQL Server
  • ШУМ и Microsoft OLE базаданни доставчика за Jet 4.0

Изисквания

Следващият външен списък резюмира Препоръчителен хардуер, софтуер, мрежова инфраструктура и сервизни пакети, които се изискват:
  • Налични екземпляр на Microsoft SQL Server 7.0 или Microsoft SQL Server 2000 или Microsoft SQL Server 2005
  • Microsoft Visual Basic 6.0 за ADO проби, които използват Visual Basic
Части Препоръчано от тази статия се предполага, че сте запознати със следните теми:
  • Услуги за трансформация на събиране на данни
  • Свързани сървъри и разпределени заявки
  • ADO развитие на Visual Basic

Проби

Внос срещу Добавяне

Примерни SQL команди, които се използват в тази статия демонстрира заявки за създаване на таблица, които импортирате Excel събиране на данни в нова таблица на SQL Server с помощта на избор...В...Препоръчано от синтаксис. Можете да конвертирате тези отчети да се добави заявки чрез вмъкване в...ИЗБЕРЕТЕ...Препоръчано от синтаксис докато продължават да позоваване на източника и дестинацията обекти, както е показано в тези код проби.

Употреба, DTS или SSIS

Можете да използвате съветника за импортиране на SQL сървър събиране на данни преобразуване услуги (DTS) или импортиране на SQL сървъра и съветника за експортиране да импортирате Excel събиране на данни в таблици за SQL Server. Когато се засили чрез съветника и изберете източника таблици на Excel, не забравяйте, че преобразуване на имена на обекти на Excel, които са приложени със знака за долар ($) представляват работни листове (например Sheet1$), и че преобразуване на имена на обикновен обекти без знак за долар представляват Excel наименувани диапазони.

Използвайте свързан сървър

За да се опрости заявки, можете да конфигурирате работна книга на Excel като свързан сървър в SQL Server.За допълнителна информация щракнете върху номера на статия по-долу, за да видите съответната статия в база знания на Microsoft:
306397 HOWTO: Използвайте Excel със SQL Server свързани сървъри и разпределят заявки
Следният код импортира събиране на данни Препоръчано от клиенти работен лист на 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 клиенти в нови таблици за 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$]')
				

Използвайте шум и SQLOLEDB

Когато сте свързани към SQL Server в ADO приложение с помощта на Microsoft OLE базаданни за SQL сървър (SQLOLEDB), можете да използвате същия синтаксис "разпределена заявка" Препоръчано от Използване на разпределени заявки раздел, за да импортирате Excel събиране на данни в SQL Server.

Следните Visual Basic 6.0 код проба изисква да добавяте консолидиран проект препратка към ActiveX Data Objects (ADO). Този код проба също така показва как да използвате OPENDATASOURCE и OPENROWSET във връзка с SQLOLEDB.
    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
				

Използвайте шум и доставчика на Jet

Пробата в предишния раздел използва шум с доставчика на SQLOLEDB да се свърже с местоназначението на вашия Excel към SQL внос. Можете също да използвате OLE базаданни доставчик за Jet 4.0, за да се свържете с източника на Excel.

Реактивен двигател транзитна база събиране на данни събиране на данни може да препращат външни бази събиране на данни в SQL отчети с помощта на специален синтаксис, който има три различни формати:
  • [Пълният път до Microsoft Access транзитна база събиране на данни събиране на данни].[име за влизане на таблица]
  • [ИПМ име за влизане;ИПМ низ за връзка].[име за влизане на таблица]
  • [ODBC;ODBC връзка низ].[име за влизане на таблица]
Този раздел използва формата на третия да направи на ODBC връзка към транзитна база събиране на данни събиране на данни на SQL сървъра местоназначение. Можете да използвате ODBC събиране на данни източник името (DSN) или DSN-малко връзка низ:
DSN:
    [odbc;DSN=<DSN name>;UID=<user>;PWD=<password>]

DSN-less:
   [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
				
Можете също да използвате този синтаксис, който доставчикът на Jet поддържа, да импортирате данните на Excel в други бази събиране на данни на Microsoft Access, индексирани последователен достъп метод (ISAM) ("работен плот") бази събиране на данни или ODBC бази събиране на данни.

Отстраняване на неизправности

  • Не забравяйте, че преобразуване на имена на обекти на Excel, които са приложени със знака за долар ($) представляват работни листове (например Sheet1$), а че преобразуване на имена на обикновен обекти Excel наименувани диапазони.
  • В някои случаи особено когато вие определяте събиране на данни източник на Excel с помощта на името на таблицата вместо селектиране, колоните в таблицата на SQL сървъра местоназначение се пренареждат в азбучен ред.За допълнителна информация относно този проблем с доставчика на Jet щракнете върху номера на статия по-долу, за да видите съответната статия в база знания на Microsoft:
    299484 НРБ: Колони са подредени по азбучен ред, когато използвате ADOX за извличане на колони Препоръчано от таблица на Access
  • Когато доставчикът на Jet определя, че Excel колоната съдържа смесени текст и числови събиране на данни, доставчикът на Jet избира типа "мнозинство" събиране на данни и връща несъпоставими стойности като NULLs.За допълнителна информация как да отстраните този проблем щракнете върху номера на статия по-долу, за да видите съответната статия в база знания на Microsoft:
    194124 НРБ: Excel стойности, върнати като NULL, използвайки Николова OpenRecordset

Библиография

За допълнителна информация как да използвате Excel като източник на събиране на данни щракнете върху номера на статия по-долу, за да видите съответната статия в база знания на Microsoft:
257819 HOWTO: Използвайте шум с събиране на данни на Excel Препоръчано от Visual Basic или VBA
За допълнителна информация относно начините за прехвърляне на събиране на данни в Excel щракнете върху номерата по-долу, за да отворите статиите в база знания на Microsoft:
295646 HOWTO: Трансфер на събиране на данни Препоръчано от източника на събиране на данни на ADO в Excel с шум
247412 ИНФОРМАЦИЯ за: Методи за прехвърляне на събиране на данни в Excel Препоръчано от Visual Basic
246335 HOWTO: Трансфер на събиране на данни Препоръчано от ADO набор записи в Excel с автоматизация
319951 Как да: Трансфер на събиране на данни в Excel с помощта на услуги за трансформация на събиране на данни на SQL сървър
306125 Как да: Импортиране на събиране на данни Препоръчано от SQL Server в Microsoft Excel

Свойства

ID на статията: 321686 - Последна рецензия: 22 май 2014 г. - Редакция: 3.0
Важи за:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Ключови думи: 
kbhowtomaster kbjet kbmt KB321686 KbMtbg
Machine-translated Article
ВАЖНО: Тази статия е преведена с използване на софтуер за машинен превод на Microsoft и може да бъде коригирана чрез технологията Рамка за превод от общността (CTF). Microsoft предлага статии, преведени машинно, допълнително редактирани от общността, и статии, преведени от хора, за да може да предостави достъп на много езици до всички статии в нашата База знания. Статиите, преведени машинно и редактирани допълнително, може да съдържат грешки в лексиката, синтаксиса и/или граматиката. Microsoft не носи отговорност за каквито и да било неточности, грешки или вреди, предизвикани от неправилен превод на съдържанието или използването му от нашите клиенти. Повече за CTF – на http://support.microsoft.com/gp/machine-translation-corrections/bg.
Щракнете тук, за да видите версия на тази статия на английски: 321686

Изпратете обратна информация

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com