powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не работает импорт из OLAP
65 сообщений из 65, показаны все 3 страниц
Не работает импорт из OLAP
    #39297917
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Пытаюсь импортировать данные с OLAP и вставить в таблицу с помощью такого кода

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
Option Compare Database

Sub ИмпортИзOLAP()

Dim Cn As Object
Dim РекордсетИмпорт As Object
Dim РекордсетТаблицаAccess As Object

Set Cn = CreateObject("ADODB.Connection")
Cn.ConnectionString = "Provider=MSOLAP.3;" & _
    "Integrated Security=SSPI;" & _
    "Persist Security Info=True;" & _
    "Initial Catalog=profit;" & _
    "Data Source=.......................;" & _
    "MDX Compatibility=1;" & _
    "Safety Options=2;" & _
    "MDX Missing Member Mode=Error"
Cn.Open

Set РекордсетИмпорт = CreateObject("ADODB.Recordset")
Set РекордсетИмпорт.activeconnection = Cn
РекордсетИмпорт.Source = "Select {} on 0, [Города].[Город].[Город] on 1 from profit"

РекордсетИмпорт.Open

Set РекордсетТаблицаAccess = CreateObject("ADODB.Recordset")
РекордсетТаблицаAccess.Open "Города", CurrentProject.Connection

If Not (РекордсетИмпорт.BOF = True And РекордсетИмпорт.EOF = True) Then
    РекордсетИмпорт.MoveFirst
    
    Do While Not РекордсетИмпорт.EOF
        РекордсетТаблицаAccess.AddNew
        РекордсетТаблицаAccess.Fields(0) = РекордсетИмпорт.Fields(0)
        РекордсетИмпорт.MoveNext
    Loop
End If

'Set РекордсетИмпорт = Nothing
'Set РекордсетТаблицаAccess = Nothing
РекордсетИмпорт.Close
РекордсетТаблицаAccess.Close
Cn.Close

End Sub


1. Данные почему то не выгружаются, то есть отсутствуют строки. А через в Microsofr SQL Managment Studio выгружаются строки при таком запросе. Почему не выгружается строки, может отсутствует какой то параметр? Не знаю, может надо тип команды указать "По умолчанию" как в Excel при создании подключения. Может вначале надо писать не как "Provider=MSOLAP.3", а как "OLEDB;Provider=MSOLAP.4"

2. Я правильно написал код вывода полученных строк на таблицу в Access?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39297932
Фотография гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

не увидел метода .Update(UpdateBatch)...
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39297961
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гурДferzmikk,

не увидел метода .Update(UpdateBatch)...
Я правильно понимаю, что если использовать Update, то надо писать так
Код: vbnet
1.
2.
3.
4.
5.
6.
    Do While Not РекордсетИмпорт.EOF
        РекордсетТаблицаAccess.AddNew
        РекордсетТаблицаAccess.Fields(0) = РекордсетИмпорт.Fields(0)
        РекордсетТаблицаAccess.Update
        РекордсетИмпорт.MoveNext
    Loop


Если использовать UpdateBatch, то так
Код: vbnet
1.
2.
3.
4.
5.
6.
    Do While Not РекордсетИмпорт.EOF
        РекордсетТаблицаAccess.AddNew
        РекордсетТаблицаAccess.Fields(0) = РекордсетИмпорт.Fields(0)       
        РекордсетИмпорт.MoveNext
    Loop
 РекордсетТаблицаAccess.UpdateBatch


Верно?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298003
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk, и не будет туда ничего писаться
Код: vbnet
1.
РекордсетТаблицаAccess.Open "Города", CurrentProject.Connection

так рекордсет открывается типа - только чтение/только вперёд.


гурДне увидел метода .Update(UpdateBatch)..необязательно
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298007
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,
Код: vbnet
1.
РекордсетИмпорт.Source = "Select {} on 0, [Города].[Город].[Город] on 1 from profit"

а данные в нем есть?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298020
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургferzmikk, и не будет туда ничего писаться
Код: vbnet
1.
РекордсетТаблицаAccess.Open "Города", CurrentProject.Connection

так рекордсет открывается типа - только чтение/только вперёд.
И как быть? Может некоторые параметры указать, чтобы разрешить запись?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298021
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургferzmikk,
Код: vbnet
1.
РекордсетИмпорт.Source = "Select {} on 0, [Города].[Город].[Город] on 1 from profit"

а данные в нем есть?
Да. Через в Microsofr SQL Managment Studio выгружаются строки при таком запросе
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298036
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkПанургferzmikk, и не будет туда ничего писаться
Код: vbnet
1.
РекордсетТаблицаAccess.Open "Города", CurrentProject.Connection


так рекордсет открывается типа - только чтение/только вперёд.
И как быть? Может некоторые параметры указать, чтобы разрешить запись? Например, посмотреть в справке про остальные параметры метода Open
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298410
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургНапример, посмотреть в справке про остальные параметры метода Open
Написал так - заработало
Код: vbnet
1.
РекордсетТаблицаAccess.LockType = 2


По идее должно и так работать, но значение adLockPessimistic почему то видит как Empty
Код: vbnet
1.
РекордсетТаблицаAccess.LockType =adLockPessimistic
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298432
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkзначение adLockPessimistic почему то видит как Empty
Значит в референсах не присоединена библиотека адо - Microsoft Activex Data Objects XX.X.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298483
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkзначение adLockPessimistic почему то видит как EmptyЕстественно, Access про поименованные константы ADO ни сном, ни духом... У тебя же позднее связывание.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298510
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме рекордсета можно по другому обратиться к таблице access?

Если я не ошибаюсь, то в рекордсете нельзя сразу удалить все строки, а только перебором. Если таблица в Access, то ее перед обновлением в РекордсетТаблицаAccess нужно удалить строки перебором. Верно?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298657
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkКроме рекордсета можно по другому обратиться к таблице access?Можно
ferzmikkЕсли я не ошибаюсь, то в рекордсете нельзя сразу удалить все строки, а только перебором. Если таблица в Access, то ее перед обновлением в РекордсетТаблицаAccess нужно удалить строки перебором. Верно?Верно
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298666
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургferzmikkКроме рекордсета можно по другому обратиться к таблице access?Можно

Как?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298680
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если смотреть по свойствам, то здесь похоже таблицы нету
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298696
Фотография гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkЯ правильно понимаю, что если использовать Update, то надо писать так
Код: vbnet
1.
2.
3.
4.
5.
6.
    Do While Not РекордсетИмпорт.EOF
        РекордсетТаблицаAccess.AddNew
        РекордсетТаблицаAccess.Fields(0) = РекордсетИмпорт.Fields(0)
        РекордсетТаблицаAccess.Update
        РекордсетИмпорт.MoveNext
    Loop



Если использовать UpdateBatch, то так
Код: vbnet
1.
2.
3.
4.
5.
6.
    Do While Not РекордсетИмпорт.EOF
        РекордсетТаблицаAccess.AddNew
        РекордсетТаблицаAccess.Fields(0) = РекордсетИмпорт.Fields(0)       
        РекордсетИмпорт.MoveNext
    Loop
 РекордсетТаблицаAccess.UpdateBatch



Верно?
Да
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298721
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гурДferzmikkЯ правильно понимаю, что если использовать Update, то надо писать так
Код: vbnet
1.
2.
3.
4.
5.
6.
    Do While Not РекордсетИмпорт.EOF
        РекордсетТаблицаAccess.AddNew
        РекордсетТаблицаAccess.Fields(0) = РекордсетИмпорт.Fields(0)
        РекордсетТаблицаAccess.Update
        РекордсетИмпорт.MoveNext
    Loop



Если использовать UpdateBatch, то так
Код: vbnet
1.
2.
3.
4.
5.
6.
    Do While Not РекордсетИмпорт.EOF
        РекордсетТаблицаAccess.AddNew
        РекордсетТаблицаAccess.Fields(0) = РекордсетИмпорт.Fields(0)       
        РекордсетИмпорт.MoveNext
    Loop
 РекордсетТаблицаAccess.UpdateBatch



Верно?
Да
У UpdateBatch есть ограничения по количеству строк?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298777
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk, у набора данных ADO ( Recordset ) метод Update использовать необязательно. При переходе на следующую запись для редактировавшейся записи апдейт произойдёт автоматически.

Удалить записи можно как методом Delete
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
If not rst.EOF Then
    rst.mofelast
    Do until rst.bof
        rst.Delete
        rst.MovePrevious
    Loop
end if


Или использовать метод объекта Connection Execute и выполнить инструкцию SQL "DELETE * FROM [ИмяТвоейТаблицы];"

Вроде всё, может где и ошибся...
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298791
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkЕсли смотреть по свойствам, то здесь похоже таблицы нетуЗачем тебе таблица? Для каких целей? Если работать с данными, то ответ выше. Если для других, то смотреть нужно ADOX (работа с частями таблицы) или CurrentData (AllTables).

Это всё ADO. Есть и другая аналогичная (почти) библиотека доступа к данным - DAO
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298793
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург, поправил, опечатался всё таки
Код: vbnet
1.
rst.movelast
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298801
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургferzmikkЕсли смотреть по свойствам, то здесь похоже таблицы нетуЗачем тебе таблица? Для каких целей? Если работать с данными, то ответ выше. Если для других, то смотреть нужно ADOX (работа с частями таблицы) или CurrentData (AllTables).
Про Adox и CurrentData( AllTables) не в курсе. Они для каких целей используются?
Это всё ADO. Есть и другая аналогичная (почти) библиотека доступа к данным - DAO
Говорят что DAO устарела
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298805
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем задача такая. Из OLAP нужно выгрузить несколько плоских таблиц. Потом сложные перекрестные соединения. Промежуточные таблицы, которые будут использоваться не один раз в запросе. В результате надо получить несколько обработанных таблиц. Разрабатываю макрос, который запускает обновление и выводит таблицы в Excel с оформлениями. Поэтому хочу подобрать оптимальную технологию выгрузки и обновления. Строк очень много. И не мало колонок.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298807
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,авторГоворят что DAO устарела говорят, что в Мацкве кур доят...
Каждая технология хороша к месту.
ferzmikkВ общем задача такая. Из OLAP нужно выгрузить несколько плоских таблиц. Потом сложные перекрестные соединения. Промежуточные таблицы, которые будут использоваться не один раз в запросе. В результате надо получить несколько обработанных таблиц. Разрабатываю макрос, который запускает обновление и выводит таблицы в Excel с оформлениями. Поэтому хочу подобрать оптимальную технологию выгрузки и обновления. Строк очень много. И не мало колонок.Выгружай, перекрещивай, обновляй, выводи и обновляй

Дорогу осилит идущий (с) кто-то сказал
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298811
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чОрт, опять двойка...

ferzmikk, рассматривай для начала выполнеие всех операций запросами. Так будет гораздо быстрее.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298815
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургferzmikk, рассматривай для начала выполнеие всех операций запросами. Так будет гораздо быстрее.
Кстати. В Access после использования конструктора запросов запросы получаются не структурированные, то есть трудно читаемые. Трудно дорабатывать в режиме SQL. Есть какая нибудь возможность, чтобы запросы были читабельны как в 1С в конструкторе запросов?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298817
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk, нормальных способов нет
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298819
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk, мало того, будь готов, что Access будет править вложенные запросы сам и потом будет на свои же правки ругаться, вплоть до невозможности попасть в редактор в особо тяжёлых случаях.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298826
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургferzmikk, нормальных способов нет
Получается, вместо подзапросов использовать промежуточные таблицы, чтобы потом можно было доработку и отладку делать? Если использовать промежуточные таблицы, то это влияет не только на размер файла, но и на производительность. Верно? А надстройки нету специальной?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298832
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургferzmikk, мало того, будь готов, что Access будет править вложенные запросы сам и потом будет на свои же правки ругаться, вплоть до невозможности попасть в редактор в особо тяжёлых случаях.
Мне вот интересно, что за случаи такие?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298841
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkПанургferzmikk, нормальных способов нет
Получается, вместо подзапросов использовать промежуточные таблицы, чтобы потом можно было доработку и отладку делать? Если использовать промежуточные таблицы, то это влияет не только на размер файла, но и на производительность. Верно? А надстройки нету специальной? К чему все эти рассуждения? Для каждого конкретного случая есть своё решение. Иногда выгодно промежуточные данные выгружать в таблицы. Вложенные запросы можно хранить отдельно и использовать как таблицы. Можно всё что не запрещено. Про производительность и размер не понял. Всё зависти от рукожопости, а выше головы не прыгнешь...
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298842
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkПанургferzmikk, мало того, будь готов, что Access будет править вложенные запросы сам и потом будет на свои же правки ругаться, вплоть до невозможности попасть в редактор в особо тяжёлых случаях.
Мне вот интересно, что за случаи такие?будут - узнаешь. Ничего страшного, работают же люди столько лет.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298844
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,

Понял. Спасибо!
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39299308
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургferzmikk, у набора данных ADO ( Recordset ) метод Update использовать необязательно. При переходе на следующую запись для редактировавшейся записи апдейт произойдёт автоматически.
Но проблема возникает при добавлении последней записи. На выделенной строке пишет "Операция не допускается в данном контексте".
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub Test()
Dim РекордсетТаблицаAccess As Object
Set РекордсетТаблицаAccess = CreateObject("ADODB.Recordset")
РекордсетТаблицаAccess.LockType = 2
РекордсетТаблицаAccess.Open "Города", CurrentProject.Connection

For i = 1 To 5
РекордсетТаблицаAccess.AddNew
РекордсетТаблицаAccess.Fields("Города") = "Город " & i
'РекордсетТаблицаAccess.Update
Next i

РекордсетТаблицаAccess.Close
Set РекордсетТаблицаAccess = Nothing
End Sub


Как тут быть?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39299311
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургИли использовать метод объекта Connection Execute и выполнить инструкцию SQL "DELETE * FROM [ИмяТвоейТаблицы];"

Вроде всё, может где и ошибся...
Похоже неправильно делаю
Код: vbnet
1.
2.
3.
4.
Dim РекордсетТаблицаAccess As Object
Set РекордсетТаблицаAccess = CreateObject("ADODB.Recordset")
РекордсетТаблицаAccess.LockType = 2
РекордсетТаблицаAccess.Open "Города", CurrentProject.Connection.Execute("Delete * from [Города]")
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39299354
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkПохоже неправильно делаю
[/src]Неправильно конечно.
Почитай -> FAQ/MS Access/Как запускать запросы из VBA
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301005
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запускаю такой код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Sub ИмпортИзOLAP()

Dim Cn As Object
Dim РекордсетИмпорт As Object
Dim cmd As Object

Dim СтрокаПодключения As String, ТекстЗапроса As String

СтрокаПодключения = "Provider=MSOLAP.3;" & _
    "Integrated Security=SSPI;" & _
    "Persist Security Info=True;" & _
    "Initial Catalog=profit;" & _
    "Data Source=...................;" & _
    "MDX Compatibility=1;" & _
    "Safety Options=2;" & _
    "MDX Missing Member Mode=Error"
    
ТекстЗапроса = "SELECT [Measures].[Отгрузки шт] on 0, [Города].[Город].[Город] on 1 from profit"

Set Cn = CreateObject("ADODB.Connection")
Cn.ConnectionString = СтрокаПодключения
Cn.Open

Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = Cn
cmd.CommandType = 4 'adCmdStoredProc
cmd.CommandText = ТекстЗапроса
Set РекордсетИмпорт = CreateObject("ADODB.Recordset")
РекордсетИмпорт = cmd.Execute()

Set cmd = Nothing
РекордсетИмпорт.Close
Set РекордсетИмпорт = Nothing
Cn.Close
Set Cn = Nothing
End Sub

и на выделенной строке появляется ошибка "Query(1,6) Синтаксический анализатор: Неверный синтаксис "SELECT"."

А если написать так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
...
Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = Cn
cmd.CommandType = 4 'adCmdStoredProc
'cmd.CommandText = ТекстЗапроса
Set РекордсетИмпорт = CreateObject("ADODB.Recordset")
РекордсетИмпорт = cmd.Execute(ТекстЗапроса)
...

то пишет "Недопустимый синтаксис запросов. Ожидался допустимый запрос MDX или DAX"

Такой запрос нормально выгружается через Microsoft SQL Managment Studio.

Что тут не так?

Еще. Если смотреть в отладчик в объект Command, то в свойстве CommandText = "exec SELECT ...". В начале запроса стоит "exec ". Это нормально?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301022
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk, глубоко не копал, но сразу замечание
Код: vbnet
1.
2.
cmd.CommandType = 4 'adCmdStoredProc ну где же тут сохранённая процедура?
cmd.CommandType =1 'adCmdText
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301028
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И так не надо...ferzmikk
Код: vbnet
1.
РекордсетИмпорт = cmd.Execute(ТекстЗапроса)

Код: vbnet
1.
2.
Set РекордсетИмпорт = CreateObject("ADODB.Recordset")
РекордсетИмпорт.Open cmd
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301035
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk
Код: vbnet
1.
2.
Set РекордсетИмпорт = CreateObject("ADODB.Recordset")
РекордсетИмпорт = cmd.Execute(ТекстЗапроса)

Вот сейчас посмотрел, а чего ты пытаешься сделать? Ты пытаешься открыть Recordset и всунув в другой Recordset скопировать данные? Если да, то так ничего не получится. Таким образом можно по 1 записи в цикле присваивая данные от одного набора другому перекинуть данные.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301038
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk, РекордсетИмпорт это не сам Recordset , это ссылка на объект Recordset . Так даже ссылки на объекты передавать не получится.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301044
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургferzmikk
Код: vbnet
1.
2.
Set РекордсетИмпорт = CreateObject("ADODB.Recordset")
РекордсетИмпорт = cmd.Execute(ТекстЗапроса)

Вот сейчас посмотрел, а чего ты пытаешься сделать? Ты пытаешься открыть Recordset и всунув в другой Recordset скопировать данные? Если да, то так ничего не получится. Таким образом можно по 1 записи в цикле присваивая данные от одного набора другому перекинуть данные.
Собираюсь получить данные с параметрами
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301050
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вставить в Access-таблицу
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301062
а так?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
РекордсетИмпорт.Open cmd
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301064
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так?
Код: vbnet
1.
РекордсетИмпорт.Open cmd


ОК
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301083
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавляю параметры
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
...
ТекстЗапроса = "SELECT [Measures].[Отгрузки шт] on 0, [Города].[Город].[Город] on 1 from profit WHERE @ПараметрДата"

SelectDateMDX = "[Время].[Месяц].&[2016-07-01T00:00:00]"

Set Cn = CreateObject("ADODB.Connection")
Cn.ConnectionString = СтрокаПодключения
Cn.Open

Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = Cn
cmd.CommandType = 1
cmd.CommandText = ТекстЗапроса
cmd.Parameters.Append cmd.CreateParameter("ПараметрДата", 129, 1, 1000, SelectDateMDX) ' ,adChar, adParamInput
Set РекордсетИмпорт = CreateObject("ADODB.Recordset")

РекордсетИмпорт.Open cmd
...

Пишет "Параметр задан неверно". Не те параметры в Parameter стоят?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301198
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу так
Код: vbnet
1.
cmd.Parameters.Append cmd.CreateParameter("@ПараметрДата", 129, 1, 1000, SelectDateMDX) 


тоже не работает
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301724
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему не работает?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301783
а в студии
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ваш запрос с таким параметром работает?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301826
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в студииваш запрос с таким параметром работает?

Если запускать на Microsoft SQL Managment Studio, то запрос
Код: plsql
1.
SELECT [Measures].[Отгрузки шт] on 0, [Города].[Город].[Город] on 1 from profit WHERE [Время].[Месяц].&[2016-07-01T00:00:00]

выполняется

А в модуле - нет
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301891
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

а формат даты нормальный?
я в sql новичок, но где то в хелпах успел прочитать
для ОDBC - формат - YYYY-MM-DD
в студии все так и есть
а из акса как?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301962
а так?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ferzmikkЕсли запускать на Microsoft SQL Managment Studio, то запрос
Код: plsql
1.
SELECT [Measures].[Отгрузки шт] on 0, [Города].[Город].[Город] on 1 from profit WHERE [Время].[Месяц].&[2016-07-01T00:00:00]

выполняется

А в модуле - нет

а так?

Код: sql
1.
2.
3.
4.
5.
6.
declare @p datetime 
declare @p1 char(100)
set @p='[Время].[Месяц].&[2016-07-01T00:00:00]'
set @p1='[Время].[Месяц].&[2016-07-01T00:00:00]'
SELECT [Measures].[Отгрузки шт] on 0, [Города].[Город].[Город] on 1 from profi WHERE @p
SELECT [Measures].[Отгрузки шт] on 0, [Города].[Город].[Город] on 1 from profi WHERE @p1
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39304046
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так?а так?

Код: sql
1.
2.
3.
4.
5.
6.
declare @p datetime 
declare @p1 char(100)
set @p='[Время].[Месяц].&[2016-07-01T00:00:00]'
set @p1='[Время].[Месяц].&[2016-07-01T00:00:00]'
SELECT [Measures].[Отгрузки шт] on 0, [Города].[Город].[Город] on 1 from profi WHERE @p
SELECT [Measures].[Отгрузки шт] on 0, [Города].[Город].[Город] on 1 from profi WHERE @p1


Запускается не SQL-запрос, a MDX-запрос. MDX не поддерживает параметры. Возможно через XMLA. Но не работал еще c XMLA и не знаю как вставлять в Command и будет ли работать.

Похоже проще использовать не параметры в Command, а текст. То есть имеется MDX-запрос с параметрами внутри (начинается с символа, например, @) потом эти параметры заменяем конкретные значения методом Replace, и после этого вставляем в текст запроса Command или Recordset.

Хотелось бы сделать так, только не знаю можно сделать так в Access. Форма имеется два объекта типа надпись. В первом объекте вставляется сам MDX-запрос с параметрами, оттуда берется запрос. А во втором размещается MDX-запрос со значениями параметрами, то есть размещается после replace. Аналогично для других MDX-запросов. В Excel есть такой объект это надпись, а в Access что то не могу найти. В Access это можно сделать или может есть какой нибудь объект, который поддерживает такую функцию?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39304532
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так выглядит в excel. На лист размещается два объекта-надписи. Слева размещается запрос с параметром, справа запрос со значением параметра после Replace.

Как можно так сделать в Access? На форме так возможно? Может в Access есть специальные хранилища для подобных текстов и удобно открыть и посмотреть. Учитывая что там несколько таких запросов и они очень длинные.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39304758
а так?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39304833
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39304901
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но как в Access можно хранить длинные тексты, чтобы удобно было смотреть, а также программно считывать и заносить?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39304907
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkНо как в Access можно хранить длинные тексты, чтобы удобно было смотреть, а также программно считывать и заносить?В таблице. Ваш, кэп.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39306334
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургferzmikkНо как в Access можно хранить длинные тексты, чтобы удобно было смотреть, а также программно считывать и заносить?В таблице. Ваш, кэп.
Но там же не удобно будет смотреть в таблице длинный текст с отступами и с переходами на новую строку. Важно, чтобы удобно было редактировать.

Хотелось бы как указано в скриншоте
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39306354
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkНо там же не удобно будет смотреть в таблице длинный текст с отступами и с переходами на новую строку. Кому и кобыла невеста © 12 стульев

Кому неудобно? В чём проблемы принципиальные?
Узкие строки? - Расширь...
Ты спросил в чём хранить? - На то и БД, чтобы в таблицах хранить.
Смотреть? - Ну так сочини пользовательский интерфейс. Сейчас в новых версиях поддерживаются html-тэги, можно всё красивенько оформить.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39306360
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39318150
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургНу так сочини пользовательский интерфейс. Сейчас в новых версиях поддерживаются html-тэги, можно всё красивенько оформить.
Можно пример кода?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39318262
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkПанургНу так сочини пользовательский интерфейс. Сейчас в новых версиях поддерживаются html-тэги, можно всё красивенько оформить.
Можно пример кода?Какого кода?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39318504
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургferzmikkпропущено...

Можно пример кода?Какого кода?

Пример как построить пользовательский интерфейс с поддержкой html. Форма, чтобы имела многострочную текстовую область с прокруткой
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39318519
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkПанургпропущено...
В таблице. Ваш, кэп.
Но там же не удобно будет смотреть в таблице длинный текст с отступами и с переходами на новую строку. Важно, чтобы удобно было редактировать.

Хотелось бы как указано в скриншоте
Access 2007\2010 позволяет хранить форматированный текст.
http://accesshelp.ru/pole-memo-v-access/
С уважением.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39319122
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkПанургпропущено...
Какого кода?

Пример как построить пользовательский интерфейс с поддержкой html. Форма, чтобы имела многострочную текстовую область с прокруткойВообще-то там всё практически настраивается руками в конструкторе
...
Рейтинг: 0 / 0
65 сообщений из 65, показаны все 3 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не работает импорт из OLAP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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