powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Подключение к excel-листам
48 сообщений из 48, показаны все 2 страниц
Подключение к excel-листам
    #39239146
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

В excel-ом файле на каждом листе "Лист1" и 'Лист2" есть по одной таблице с подключением с MDX-запросом. На "Лист3" нужно вставить таблицу с подключением с SQL-запросом к этим двум листам. Нужно сделать внешнее соединение из этих двух таблиц.

Логичнее было сделать так: обойтись без первых двух листов и вставить на лист таблицу с подключением с непосредственным SQL-запросом на сервер. Но такой возможности нет.

Делаю так. Данные - Из других источников- Из Microsoft Query. Но фишка в том, что синтаксис Microsoft Query не совсем такой как SQL. Более капризный. Запутался там как делать внешнее соединение Для данной задачи нужно подключаться через Microsoft Query или можно подключаться по другому (через другой провайдер)? ADO не вариант, там ограниченный SQL.
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39239682
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, сделал так

В меню "Из других источников" - "С сервера SQL сервер" - выбираю любую базу данных, потом меняю свойства подключении и текст запроса.

Вариант 1
В строке подключения ввел так Provider=Microsoft.ACE.OLEDB.12.0;Excel 12.0;Database=C:\Users\User\Desktop\СМ2.xlsm. Тип команды - SQL. Текст запроса
Код: sql
1.
Select * From [ИД1$]

Выгрузились данные нормально.

Захожу в свойства подключения и в строке подключения теперь другая запись
Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source="";Mode=Share Deny None;Extended Properties="Excel 12.0;Database=C:\Users\User\Desktop\СМ2.xlsm";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False

Теперь вставляю такой текст простого запроса с объединением
Код: sql
1.
2.
3.
4.
5.
6.
Select
[ИД1$].[Поле1],
[ИД2$].[Поле3]
From [ИД1$]  JOIN [ИД2$]
ON
[ИД1$].[Поле1]=[ИД2$].[Поле2]

Пишет, что ошибка в From. Вроде все по синтаксису написал.


Вариант 2

Если в строке подключения написать Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\User\Desktop\СМ2.xlsm;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"" .Тип команды - SQL. И текст запроса
Код: sql
1.
Select [ИД1$].[Поле1],[ИД1$].[Поле2] From [ИД1$][ИД1$]

Данные выгружаются нормально.

Захожу в свойства подключения и в строке подключения теперь также другая запись как в первом варианте.

Если вставить такой текст запроса
Код: sql
1.
2.
3.
4.
5.
6.
Select
[ИД1$].[Поле1],
[ИД1$].[Поле3]
From [ИД1$][ИД1$] JOIN  [ИД2$][ИД2$]
ON
[ИД1$].[Поле1]=[ИД2$].[Поле2]

Пишет также, что ошибка в From.

Что не так делаю? Может надо что в строке подключения изменить?

Какой вариант подключения лучше использовать?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39240445
anvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток
Странно всё это. Попробуйте явно указать тип соединения INNER JOIN
ferzmikkКакой вариант подключения лучше использовать?, а вот подключение лучше использовать ODBC . С OLEDB периодически возникают проблемы с блокировкой файла. При подключении запроса к самому себе, всё нормально, а вот с другими бывают проблемы.
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39241091
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvg,

вместо JOIN написал INNER JOIN - заработал.

Потом FULL JOIN не работал. Использовал UNION - заработало. Похоже SQL к excel листам ограниченный.
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39241096
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvgferzmikkКакой вариант подключения лучше использовать?, а вот подключение лучше использовать ODBC .
Тут я не совсем понял.
Код: xml
1.
2.
Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};
DBQ=C:\MyExcel.xlsx;

Это писать в строке подключения?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39241124
anvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Потом FULL JOIN не работаДля обращения к листам Excel используется движок Access, а он года с 97, в плане SQL, не развивается. Там есть только Left Join, Right Join, Inner Join
Тут я не совсем понял.

Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};
DBQ=C:\MyExcel.xlsx;

Это писать в строке подключения?
Смотря как вы создавали подключение. В уже существующем, если не ошибаюсь, перейти с OleDb на ODBC не получится (не эксперементировал). А так да, по минимальному тексту подключения всё правильно
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39241358
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvgСмотря как вы создавали подключение. В уже существующем, если не ошибаюсь, перейти с OleDb на ODBC не получится (не эксперементировал). А так да, по минимальному тексту подключения всё правильно
Получилось. Делал так: в меню "Из других источников" - "С сервера SQL сервер" - выбираю любую базу данных, потом меняю свойства подключении и текст запроса.
Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=C:\Users\User\Desktop\СМ2.xlsm;
Только потом excel изменил запись в подключении
Provider=MSDASQL.1;Persist Security Info=True;Extended Properties="DBQ=C:\Users\User\Desktop\СМ2.xlsm;Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DriverId=1046;MaxBufferSize=2048;PageTimeout=5;"

Тут фишка в том, что если этот файл будет открывать другой пользователь, то ему надо будет изменить строку подключения, а именно, изменить путь к файлу. Такая проблема только макросом решается, который в строке подключения меняет путь к файлу, или есть другие варианты решения?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39241373
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обратил внимание. Если в свойствах подключении ставить тип команды "По умолчанию" или "SQL", то таблица формируется. А если ставить "Таблица", то выходит такое сообщение
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39241595
anvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Provider=MSDASQL.1;Увы, это слой с ODBC в OLEDB. Чтобы чистый ODBC получить делайте через MS Query, а потом точно также редактируете строку подключения.
Такая проблема только макросом решается, который в строке подключения меняет путь к файлуУвы, да, макросом или "ручками". Можете, попробовать вариант с Power Query, там, используя, таблицу параметров, можно через функцию ЯЧЕЙКА("filename"; A1) в ней получить путь к файлу в котором выполняется запрос, а по нему сконструировать относительный путь к вашему файлу-источнику данных.
"По умолчанию" или "SQL", то таблица формируется. А если ставить "Таблица", то выходит такое сообщение Естественно, вы же запрос помещаете. Оставьте только, например, [ИД1$], тогда будет и "Таблица" работать.
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39241829
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvgProvider=MSDASQL.1;Увы, это слой с ODBC в OLEDB. Чтобы чистый ODBC получить делайте через MS Query, а потом точно также редактируете строку подключения.
DSN=Excel Files;DBQ=C:\Users\User\Desktop\СМ3.xlsm;DefaultDir=C:\Users\User\Desktop;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;

Тип команды - SQL, но тут неактивно поле, то есть нельзя изменить.

Если в свойствах подключении нажать на "Изменить запрос", то вылезает такое сообщение. Как можно изменить запрос в конструкторе?

Почему кнопка "параметры" не активна? Даже бывает не активна, когда подключаешься к кубу. Как еe сделать активной?

Какую роль играет файл подключения?

В интернете мало информации на тему Создание подключений к excel листам, где прописаны такие тонкие логические нюансы
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39242007
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39242746
anvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ип команды - SQL, но тут неактивно поле, то есть нельзя изменить.При Odbc подключении другого и нет. А вам зачем?
Я обычно для создания подключения пользуюсь такой заготовкой, а потом допиливаю подключение.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Sub CreateOdbcConnection()
    Const connStr = "ODBC;DBQ=$1;Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};MaxBufferSize=2048;PageTimeout=5;ReadOnly=1;ExtendedAnsiSQL=1;"
    Dim pLO As ListObject, pSheet As Worksheet
    Set pSheet = ThisWorkbook.Worksheets.Add
    Set pLO = pSheet.ListObjects.Add(xlSrcExternal, Replace$(connStr, "$1", ThisWorkbook.FullName), True, xlYes, pSheet.Range("A1"))
    With pLO.QueryTable
        .CommandType = xlCmdSql
        .CommandText = "Select * From [Лист1$]"
        .Refresh
        .WorkbookConnection.Description = "Connection to Лист1"
        .WorkbookConnection.Name = "Query" & Format$(Now, "yyyymmddhhnnss")
    End With
End Sub


Успехов.
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39243204
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvg,

Обнаружил такую фишку. В запросе присутствует 2 параметра и записываем их как знаками "?".
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Public Sub CreateOdbcConnection()
    Const connStr = "ODBC;DBQ=$1;Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};MaxBufferSize=2048;PageTimeout=5;ReadOnly=1;ExtendedAnsiSQL=1;"
    Dim pLO As ListObject, pSheet As Worksheet
    Set pSheet = ThisWorkbook.Worksheets.Add
    Set pLO = pSheet.ListObjects.Add(xlSrcExternal, Replace$(connStr, "$1", ThisWorkbook.FullName), True, xlYes, pSheet.Range("A1"))
    
    Set Параметр1 = pLO.QueryTable.Parameters.Add("@Параметр1", xlParamTypeVarChar)
    Параметр1.SetParam xlConstant, "Город1"
    
    Set Параметр2 = pLO.QueryTable.Parameters.Add("@Параметр2", xlParamTypeVarChar)
    Параметр2.SetParam xlConstant, "SKU1"    
       
    With pLO.QueryTable
        .CommandType = xlCmdSql
        .CommandText = "SELECT * FROM `ИД1$`  WHERE (`Поле1` = ? AND `Поле2` = ?) "
        .Refresh
        .WorkbookConnection.Description = "Connection to ÈÄ1"
        .WorkbookConnection.Name = "Query" & Format$(Now, "yyyymmddhhnnss")
    End With
End Sub


Какой именно знак "?" соответствует для заданного параметра, определяется последовательность заданных параметров Set Параметр1 и Set Параметр2.

Записывал в тексте параметры не как "?", а как "@Параметр1" и "@Параметр2". Но так почему то не работает.

Как надо правильно записывать в тексте запроса разные параметры (без знаков вопросов)?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39243341
anvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какой именно знак "?" соответствует для заданного параметра, определяется последовательность заданных параметров Set Параметр1 и Set Параметр2.По опыту использования по порядку следования. 1-ый параметр 1-ому ?, второй - второму. С другой стороны с глубокой вложенностью параметров не экспериментировал - есть ли приоритет параметра по положению в основном запросе ли или в подзапросе или главное порядковый номер ? в тексте SQL. Если установите то или другое, сообщите, пожалуйста.
Именованных параметров в Access нет, увы.
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39243452
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvgесть ли приоритет параметра по положению в основном запросе ли или в подзапросе или главное порядковый номер ?
Это пример простого запроса, на самом деле будет сложным. Разные таблицы на разных листах, в запросе присутствуют подзапросы, несколько параметров. Со временем будут изменяться столбцы, добавляться еще таблицы. Хотелось бы сделать запрос мобильным, чтобы потом легко дорабатывать. Конечно здесь не такого удобного конструктора как в 1С - СКД.
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39243875
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реально ли с помощью программы SQL Server Management Studio подключиться к excel-листу?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39244284
anvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подключиться не подключиться, а вот брать данные из закрытой книги вполне возможно.
Using OPENROWSET to Read Excel Worksheets from SQL Server: Part 1 – How to Set Up the System , Импорт данных из Excel в SQL Server
Успехов.
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39245466
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот на двух первых листах присутствуют таблицы с подключением с MDX-запроса. На третьем листе делаю SQL-запрос к этим двум листам. Первые два листа обновляю, потом обновляю третий. После после обновления двух листов данные свежие. Потом обновляю третий лист, но данные берутся из двух листов, но которые были до обновления. Почему так происходит? Как исправить?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39245467
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже если менять SQL-запрос, то все равно обращается к данным до обновления
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39246097
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как сделать корректное обновление?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39246294
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может надо параметры подключения изменить?

DBQ=C:\Users\User\Desktop\СМ3.xlsm;Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DriverId=1046;ExtendedAnsiSQL=1;MaxBufferSize=2048;PageTimeout=5;ReadOnly=1;
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39247368
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обратил внимание на следующее.

Если обновить таблицы на первых двух листах с подключением OLAP с помощью MDX-запросов, то данные обновляются корректно. Если обновить лист с SQL-запросом к этим двум листам, то отображаются данные с листов до обновления.

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

Если добавить новый лист с таблицей с подключением OLAP и также программно создать лист с SQL-запросом, то также все.

Если создать новый файл с такими же таблицами, то данные свежие. Но если в этом новом файле опять обновить данные на первых двух листах, то опять такая же проблема.

Почему так происходит? Как сделать так, чтобы данные можно корректно обновлять без создании новых файлов?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39249702
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvgДля обращения к листам Excel используется движок Access, а он года с 97, в плане SQL, не развивается. Там есть только Left Join, Right Join, Inner Join
Может эту тему перенести в "Microsoft Access"?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39249802
anvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток
Извиняюсь, давно не заглядывал.
Могу предположить следующее. Не эксперементировал. При обновлении запрос обращается не к текущей открытой книге, а к её версии на диске. Естественно, что там изменений нет.
Поэтому, скорее всего стоит написать макрос, который сначала обновляет mdx запросы, сохраняет книгу, а затем обновляет запрос к листам с результатами mdx запросов. Скорее всего в настройках подключения mdx запросов стоит включить синхронное обновление, иначе сохранение может прервать их обновление, либо каким- то образом отслеживать факт завершения обновления. По RefreshAll есть толпа обсуждений, но, правда, законченного решения проблемы нет. Всё же там можно будет, найти что-то полезное по поводу асинхронного обновления.
Успехов
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39249948
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvgСкорее всего в настройках подключения mdx запросов стоит включить синхронное обновление, иначе сохранение может прервать их обновление
Такая строка подключения
Provider=MSOLAP.4;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=profit;Data Source=...;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error
Что тут нужно дописать?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39250056
anvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да не здесь. Диалог "Свойства подключения", вкладка "Использование" сбросить галку "Фоновое обновление". Или если программно обновляете, то QueryTable.Refresh False
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39250115
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvgДа не здесь. Диалог "Свойства подключения", вкладка "Использование" сбросить галку "Фоновое обновление". Или если программно обновляете, то QueryTable.Refresh False
Ура! Наконец то получилось. Надо было снять Фоновое обновление, обновить, сохранить и только потом обновить подключение с SQL-запросом к листам.)
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39250134
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkanvgПотом FULL JOIN не работаДля обращения к листам Excel используется движок Access, а он года с 97, в плане SQL, не развивается. Там есть только Left Join, Right Join, Inner Join
Пытаюсь использовать функцию ROW_NUMBER, не работает чего то. Может быть ограничение из за этого. Есть где нибудь список функции и возможностей , которые можно применять, а также которые не будут работать для обращении к excel листам, но предлагаются альтернативы ?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39250211
anvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А когда ROW_NUMBER появился в SQL Server, если помните? а Access в смысле SQL не развивался с 97 :)
Есть где нибудь список функции и возможностейКто бы его составил, раз сразу поиском не находится. По зарезервированным словам . По функциям можно посмотреть в самом Access, а можно и поискать давайте сделаю это за вас ;)
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39250456
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvgКто бы его составил, раз сразу поиском не находится. По зарезервированным словам . По функциям можно посмотреть в самом Access, а можно и поискать давайте сделаю это за вас ;)
Спасибо!)
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39250579
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvgДля обращения к листам Excel используется движок Access, а он года с 97, в плане SQL, не развивается.
Мне вот интересно узнать. Если это так, то на сегодняшний день наверняка есть другая наиболее оптимальная технология выгрузки данных.

У меня ситуация такая. Безусловно, самый лучший вариант это выгружать данные из сервера с помощью SQL-запроса. Но не разрешают пользоваться. Есть OLAP. Если делать MDX-запросы, то запросы получаются очень большими и запутанными. А также MDX не соединяет таблицы как SQL, имеет другую логику. Поэтому делаю так: на каждый excel-лист выгружаю данные с OLAP и потом запускаю SQL-запрос с ограниченным функционалом к этим листам, соединяются таблицы как надо, расчеты разные и выводит результат на другой лист. Сам SQL-запрос очень большой. Я трачу много времени на экспериментирование, изучение тонкостей, написание запроса учетом ограничении функционала. Может для данной ситуации есть наиболее оптимальное решение? Учитывая такой логический нюанс, что разрабатываю инструмент, который формирует нужный отчет нажатием одной кнопки с помощью макросов, и запускать будут другие пользователи.
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39250604
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще учитывая такой момент, что SQL-запрос к листам сложный, там много полей, вложенности, соединений. Если вдруг заказчик скажет добавить еще несколько полей, то доработка будет сложной, запутанной и займет много времени на поиск ошибок и тестирование. Есть какая нибудь возможность или технология, которая позволяет облегчить эту процедуру?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39250840
anvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот с OLAP ничем помочь не могу. Даже не видел, кроме Power Pivot. Может через промежуточный SQL Express или MS SQLLocalDb? Написать там хранимую процедуру (можно и с параметрами) и её дёргать из Excel.
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39251249
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня Microsoft Office 2007. Windows 7. Тип системы - 64. Сегодня установили Бизнес скайп. В пуске появилась папка "Средства Microsoft Office 2016". Пишет что не может загрузить драйвер. Потом восстановили. Как то странно работает. Теперь вылезает такая ошибка в экселевском файле при создании подключения к листу. Что делать?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39251632
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь в запросе использовать временную таблицу. Пишу запрос с использованием INTO. Такая функция должна работать в Microsoft Access SQL.
Код: sql
1.
2.
3.
4.
5.
6.
SELECT 
	*
INTO
	ТаблицаОсновная 
FROM 
	`ИД1$`


Запускаю. Выдает сообщение об ошибке. Здесь возможно использовать временные таблицы путем INTO или надо по другому делать? Если разрешить доступ к базе данных, в даннном случае к листу, то логически как временную таблицу можно поместить на лист, если там находятся исходные данные?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39252189
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если написать такой запрос
Код: sql
1.
2.
WITH TEMP AS (SELECT * FROM `ИД1$`)
SELECT * FROM TEMP

то выдает сообщение об ошибке.

Похоже WITH для сохранения промежуточного результата запроса не поддерживается
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39260882
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На моем локальном компьютере обновление происходит нормально. Но на другом компьютере - вылезает сообщение.

Свободных гигабайтов на диске много. Возможно установлена квота (2 гигабайта). Где найти и увеличить эту квоту? И возможно ли определить размер необходимой квоты?

Может быть есть смысл изменить строку подключения и указать максимальным размер базы?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39260902
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkСвободных гигабайтов на диске много. Возможно установлена квота (2 гигабайта). Где найти и увеличить эту квоту? И возможно ли определить размер необходимой квоты?Это ограничение ядра MS JET, посредством которого происходит работа с данными БД MS Access и/или MS Excel.
Обойти его можно, храня разные таблицы в разных базах данных. Либо используя MS SQL Server - у него ограничение размера БД до 10 Тб.
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39260994
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GaryaОбойти его можно, храня разные таблицы в разных базах данных.
Есть несколько листов, где на каждом листе одна таблица и запускается локальный SQL-запрос к этим листам и выводит результат на отдельный лист. Я правильно понимаю, что в данном случае, только разбить локальный SQL-запрос на два запроса с промежуточным результирующим листом?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39317742
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GaryaferzmikkСвободных гигабайтов на диске много. Возможно установлена квота (2 гигабайта). Где найти и увеличить эту квоту? И возможно ли определить размер необходимой квоты?Это ограничение ядра MS JET, посредством которого происходит работа с данными БД MS Access и/или MS Excel.
Обойти его можно, храня разные таблицы в разных базах данных. Либо используя MS SQL Server - у него ограничение размера БД до 10 Тб.
Если передать все расчеты на Access, то там тоже будет такое ограничение?

Фишка в том, что данные выгружались по одному городу и такое ограничение вылезает. Но надо будем по всем городам. Access сможет как то обработать?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39318253
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ferzmikk,
в спецификации о ссылке вроде четко сказано - ограничение размера БД именно Aсcess.
если городов много, наткнетесь, не дай Бог, еще и на ограничения числа одновременных запросов, таблиц и т.п.

Вам действительно нужен Access или просто ломает от мысли перевода уже сделанного на MS SQL или Oracle ?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39318539
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bobgosferzmikk,
Вам действительно нужен Access или просто ломает от мысли перевода уже сделанного на MS SQL или Oracle ?
У нас есть OLAP, оттуда выгружаются разные таблицы и заталкиваются в каждый лист. Потом сложный SQL запускает. Приходится промежуточные таблицы вставлять в дополнительных листах (это случаи, когда подзапрос повторяется). Потом макросом добавлять дополнительные поля. Для такого случая excel не идеально подходит.

MS SQL не продоставляют, так как будет влить на основные процессы, поэтому ищу возможные пути реализации.
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39319074
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы все города выгружать в Access я вижу такое решение: с помощью цикла выгружать по отдельному городу обрабатывать с помощью SQL. И выводит в конечную таблицу. Аналогично для остальных городов, и полученные строки добавляет в эту конечную таблицу. В итоге получится обработанная конечная таблица по всем городам. Понятно, что эту таблицу нельзя поместить в Excel целиком, тут либо по городам, либо без разбивки по SKU. Тут другой вопрос. Вот Access сможет ли выдержать такую конечную таблицу просто для хранения обработанных данных?
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39319112
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

У Access ограничение на 2ГБ если помню верно (по количеству объектов/таблиц и пр. - 32К) , да и в Excel есть Power Pivot модель (VertiPaq DB на ColumnStore) с достаточно удобными дополнительными функциями, там-же можно успешно работать с диаграмами модели/базы и соединять ключами разные запросы (SQL и MDX) на миллионы строк
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39319114
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати в твоём случае для работы на SQL достаточно минимальных прав хотя-бы на TempDB, главное чтобы там дрова нужные стояли (вроде ACE) и OpenQuery/OpenRowSet были разрешены.. тогда сможешь использовать обычный T-SQL в Temp пространстве для работы со всеми внешними запросами, ну и Join-ить как вздумается SQL с MDX результатами..
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39319129
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkivкстати в твоём случае для работы на SQL достаточно минимальных прав хотя-бы на TempDB, главное чтобы там дрова нужные стояли (вроде ACE) и OpenQuery/OpenRowSet были разрешены.. тогда сможешь использовать обычный T-SQL в Temp пространстве для работы со всеми внешними запросами, ну и Join-ить как вздумается SQL с MDX результатами..
Там есть такая возможность настроить, чтобы запущенные нужные запросы на сервере не сильно тормозили основные главные процессы?

Получается надо будет предоставить некоторым пользователям эти права, кто будет запускать такой запрос.
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39319162
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

1) можно
2) зависит от конфигурации, есть как минимум например guest/public
...
Рейтинг: 0 / 0
Подключение к excel-листам
    #39324973
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkivкстати в твоём случае для работы на SQL достаточно минимальных прав хотя-бы на TempDB, главное чтобы там дрова нужные стояли (вроде ACE) и OpenQuery/OpenRowSet были разрешены.. тогда сможешь использовать обычный T-SQL в Temp пространстве для работы со всеми внешними запросами, ну и Join-ить как вздумается SQL с MDX результатами..
Тут вместо TempDB можно использовать Табличную переменную? Или у TempDB больше возможностей?
...
Рейтинг: 0 / 0
48 сообщений из 48, показаны все 2 страниц
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Подключение к excel-листам
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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