3

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

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

Можно ли использовать SQL для этих функций в Excel?

2 ответа2

4

Вы можете использовать ADO с Excel VBA. Например:

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

''This is just a convenient name to test, it would probably be
''better to use the full file name eg C:\Docs\XL.xls
strFile = Workbooks(1).FullName

''For ACE see: http://www.connectionstrings.com/excel-2007
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
    & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"

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

cn.Open strCon

''Pick one:
strSQL = "SELECT * FROM DataTable" ''Named range
strSQL = "SELECT * FROM [Sheet1$A1:E346]" ''Range
strSQL = "SELECT * FROM [Sheet1$]" ''All the data in a sheet
strSQL = "SELECT * FROM [Excel 8.0;HDR=YES;IMEX=1;" _
       & "database=C:\Docs\LTD.xls].[Sheet1$]" ''Refer to second workbook

rs.Open strSQL, cn

''Write a recordset to a sheet
Worksheets("Sheet3").Cells(2, 1).CopyFromRecordset rs

Запрос может использовать все, что приемлемо в Jet SQL:

Fundamental Microsoft Jet SQL for Access 2000
Intermediate Microsoft Jet SQL for Access 2000
Advanced Microsoft Jet SQL for Access 2000

Вы найдете немного больше по адресу https://stackoverflow.com/, включая добавление в MS Access, SQL Server, MySQL и так далее.

1

Твой случай такой же, как у меня пару месяцев назад. Я также пытаюсь создать SQL-запрос в моей голове каждый раз, когда мне нужно выполнить некоторые манипуляции с данными в Excel. Итак, я создал небольшую надстройку под названием XLTools SQL Queries. Теперь я опубликовал его на нашем сайте для таких, как ты и я!

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

Это намного проще в использовании, если вам просто нужно создать и запустить SQL-запрос - без VBA, без сложных манипуляций с MS Query ...

Вот пример:

XLTools SQL Queries - Query Builder

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .