powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA Excel ADO. Нумерация строк в SQL запросе.
10 сообщений из 10, страница 1 из 1
VBA Excel ADO. Нумерация строк в SQL запросе.
    #36329428
Подлкючаюсь к XLS файлу с помощью ADO как описано в статье - http://support.microsoft.com/kb/257819.

Подключение, выборка данных - ОК.

Вопрос: как указать номер строки в SQL запросе. "SELECT field1, field2 FROM [Sheet1$]"
Гуглил - нашел функцию для SQL Server 2005 - row_number().
Для Excel данная функция не работает ("SELECT row_number(), field1, field2 FROM [Sheet1$]")
Эсть ли аналогичная функция для Excel?

Где можно почитать полную документация по SQL запросам для Excel?
...
Рейтинг: 0 / 0
VBA Excel ADO. Нумерация строк в SQL запросе.
    #36329535
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Lukjanenko, у баз данных в общем случае вообще нет номера строки. Почему бы не проставить номер в самом файле Excel, если он вам нужен?
...
Рейтинг: 0 / 0
VBA Excel ADO. Нумерация строк в SQL запросе.
    #36329541
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
ТСГде можно почитать полную документация по SQL запросам для Excel?
Запросы к Эксель, это тоже самое что запросы к Акцесс, к SQL Server... Просто в качестве таблиц выступают либо листы, либо диапазоны ячеек.
ТСкак указать номер строки в SQL запросе. "SELECT field1, field2 FROM [Sheet1$]"
Вероятно Вы не понимаете, что такое язык структурированных запросов SQL. Выборка происходит по критериям, либо же по наличию связанных значений в объедененных таблицах. Как сказал F , у баз данных в общем случае вообще нет номера строки. Как вариант, это может быть автоматическое поле счетчик, но делать по нему отбор это не правильно. Раскажите, что Вы пытаетесь сделать, откуда коннектитись к файлу Экселя, зачем Вам выбирать запись по номеру строки, и почему это нельзя сделать без использования запросов.
...
Рейтинг: 0 / 0
VBA Excel ADO. Нумерация строк в SQL запросе.
    #36329663
mЗапросы к Эксель, это тоже самое что запросы к Акцесс, к SQL Server... Просто в качестве таблиц выступают либо листы, либо диапазоны ячеек.

Да, есть стандарты. К примеру ANSI SQL-92, но многие компании, занимающиеся разработкой СУБД (например, Oracle, Sybase, Microsoft, MySQL AB), вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта.
Вот я и спрашиваю про особенности SQL для Excel.
К примеру имя таблицы - "[Sheet1$]" уже отступ от стандарта. ИМХО.

Мне нужен аналог функции ROW_NUMBER (Transact-SQL) http://msdn.microsoft.com/en-us/library/ms186734.aspx для выборки из Excel.

Если он есть, прошу подскажите.

mВероятно Вы не понимаете, что такое язык структурированных запросов SQL...

У меня есть примерно 300 xls файлов. Их необходимо объединить и сформировать несколько отчетов (тоже xls).
Объединение 300 файлов в 1 я выполнил, данные для отчетов я выбираю.
Получаю таблицу вида:
Имя |Фамилия|Должность
Вася |Пупкин |Директор
Петя |Иванов |Дворник
Оля |Пупкина |Бухгалтер

К этой таблице мне необходимо довавить колонку порядковый номер, чтоб получить таблицу вида:
№ |Имя |Фамилия|Должность
1 |Вася |Пупкин |Директор
2 |Петя |Иванов |Дворник
3 |Оля |Пупкина |Бухгалтер
Это можно сделать "руками", написав дополнительный цикл. Или использовать функцию типа ROW_NUMBER (Transact-SQL). В MSSQL она есть, в Oracle есть аналогичная. Есть ли аналог данной функции для Excel?

Спасибо.
...
Рейтинг: 0 / 0
VBA Excel ADO. Нумерация строк в SQL запросе.
    #36329666
йцкйцк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexander Lukjanenkoчтоб получить таблицу вида:
№ |Имя |Фамилия|Должность
1 |Вася |Пупкин |Директор
2 |Петя |Иванов |Дворник
3 |Оля |Пупкина |Бухгалтер
А вы сначала скажите, почему у дворника номер 2, а у бухгалтера номер 3 ?
Нумерация имеет смысл только на отсортированном по некоему критерию наборе
...
Рейтинг: 0 / 0
VBA Excel ADO. Нумерация строк в SQL запросе.
    #36329708
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander LukjanenkoВот я и спрашиваю про особенности SQL для Excel.Читай, наслаждайся:
http://office.microsoft.com/en-us/access/HP010322501033.aspx

Alexander LukjanenkoК примеру имя таблицы - "[Sheet1$]" уже отступ от стандарта. ИМХО.Вот это как раз не отступление. SQL не обязан знать как именно сервер хранит таблицы: в листах, файлах, виртуальных буферах или вообще на бумажках.

Alexander LukjanenkoМне нужен аналог функции ROW_NUMBER (Transact-SQL) http://msdn.microsoft.com/en-us/library/ms186734.aspx для выборки из Excel.Нет такой.
И вообще, нумерация строк это задача клиента а не сервера.
...
Рейтинг: 0 / 0
VBA Excel ADO. Нумерация строк в SQL запросе.
    #36330245
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
2 Alexander Lukjanenko ,
Серьйозные товарищи йцкйцк и White Owl я так понимаю уже все Вам объяснили.
С Вашего объяснения вообще не понятно, как будет использоваться запрос. Как вы объединили 300 файлов в один тоже не спрашиваю... Скажу еще такое, сам столкнулся недавно: при использовании ADODB в Экселе, возможна перегрузка оперативной памяти, так как Эксель не освобождает память при закрытии соеденения и снятия значения с объектной переменной. После 5-7 запросов, объем оперативной памяти, выделенной под Эксель, у меня равнялся 500 МБ! Об этом написано на сайте майкрософт здесь . Там же описаны варианты обхода такой ситуации, но мне они мало чем помогли.
Ответьте, пожалуйста, на вопрос йцкйцк и расскажите подробнее как именно Вы хотите использовать запрос к Экселю и откуда он будет производиться.
...
Рейтинг: 0 / 0
VBA Excel ADO. Нумерация строк в SQL запросе.
    #36331887
1. в каталоге in находится ~300 xls файлов. структура одинакова.
2. в каталог out небходимо сформировать N xls файлов.
3. я пишу xls файл в котом кроме макроса и большой копки "Сформировать" ничего нет.

- в начале обработки данных каталог out очищается
- объединяю данные из ~300 xls файлов в один all.xls

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" + inFolder + ReportFile + ";" & _
"Extended Properties=""Excel 8.0;HDR=No;IMEX=1;"""
strSQL = "INSERT INTO [" + DBListName + "$] IN '' [Excel 8.0;Database=" + outFolder + DBFileName + "] SELECT F1, F2, F3, F4, F5, F11, F45, F46, F48, f49, f51, f52, f53, f54, f55, f56, f57,f58, f59, f60,f61,f62 FROM [" + ReportWorkbookName + "$] where ((" + ReportWorkbookName + "$.F1 > '0'))"
cnn.Execute strSQL

- далее делаю выборку из all.xls. В выборку попадают записи только удовлетворющие нужным мне параметрам
strSQL = "SELECT '' as 'number', f2,f3,'-' as 'ff1',f11,f45,f46,f48,f52,f45*f52/100 as 'ff2',f46*f52/100 as 'ff3',f49,'-'as 'ff4','-' as 'ff5','-' as 'ff6',f46*f52/100 as 'ff7' INTO [Excel 8.0;Database=" & _
"" + outfile_full + "].[" + page_name + "] FROM [" + DBListName + "$] where f51 = '" & TexSpdList(0, i) & "'"

- вопрос был в том как пронумеровать строки в результирующей выборке. Ответ White Owl, исчерпывающий. Тему можно закрывать.

Спасибо.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
VBA Excel ADO. Нумерация строк в SQL запросе.
    #38996498
Guest1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlAlexander LukjanenkoВот я и спрашиваю про особенности SQL для Excel.Читай, наслаждайся:
// http://office.microsoft.com/en-us/access/HP010322501033.aspx

Alexander LukjanenkoК примеру имя таблицы - "[Sheet1$]" уже отступ от стандарта. ИМХО.Вот это как раз не отступление. SQL не обязан знать как именно сервер хранит таблицы: в листах, файлах, виртуальных буферах или вообще на бумажках.

Alexander LukjanenkoМне нужен аналог функции ROW_NUMBER (Transact-SQL) http://msdn.microsoft.com/en-us/library/ms186734.aspx для выборки из Excel.Нет такой.
И вообще, нумерация строк это задача клиента а не сервера.

Ссылка не открывается, а инфо нужна.
...
Рейтинг: 0 / 0
VBA Excel ADO. Нумерация строк в SQL запросе.
    #38996624
гр к
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Guest1White Owlпропущено...
Читай, наслаждайся:
// http://office.microsoft.com/en-us/access/HP010322501033.aspx

пропущено...
Вот это как раз не отступление. SQL не обязан знать как именно сервер хранит таблицы: в листах, файлах, виртуальных буферах или вообще на бумажках.

пропущено...
Нет такой.
И вообще, нумерация строк это задача клиента а не сервера.

Ссылка не открывается, а инфо нужна.
Читай файл-справку к Акцессу 2003-му. Как я понимаю, один диалект скуля.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA Excel ADO. Нумерация строк в SQL запросе.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]