Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
формула среднего значения по совпадающим данным, подсчет среднего значения по совпадающим данным
 
1)создать копию таблицы и применить "Данные-удалить дубликаты" по полю "название" - получите список искомого
2) в поле "выручка" новой таблицы забить формулу СРЗНАЧЕСЛИ со ссылкой на старую
Ошибка применения параметра с датой в SQL-запросе, Excel MS Office-2019 prof plus: ошибка при создании запросов в БД
 
на службе обновили офис до MS Office-2019 профессиональный плюс. С удивлением столкнулся, что перестали работать старые запросы в MS Query (равно как и вновь создаваемые) по причине выдаваемой ошибки "ORA-01847: день месяца должен быть между 1 и последним днем месяца". Причина в параметре запроса, задаваемого как дата начала/конца из ячейки листа.
Код
...WHERE (ARCHIV.DATETIME>=? And ARCHIV.DATETIME<=?) AND (OBJECTID=419)...
Предполагаю, что причина ошибки в том, что параметры MS Query по умолчанию имеют тип Varchar2 а не дата, но не понимаю, как изменить тип?
Изменено: Дятел - 04.04.2019 11:23:58
Метод CopyFromRecordset
 
Ну, похоже причину нашел. Дело в неоднородности выкаченных данных. В одной записи присутствуют текстовые, числовые поля и даты. Оставив в запросе только числовые поля  CopyFromRecordset заработал. Вполне вероятно, возможны какие-то танцы с бубнами по решению проблемы в целом, но... Комизм ситуации в том, что я им все равно не воспользовался, поскольку рекордсет надо было еще транспонировать, а массив нет. ))) По времени выполнения фифти-фифти.  
Так что Артем, воспользовался вашей подсказкой, за что и благодарю. ))
Метод CopyFromRecordset
 
Нет, с рекордсетом все в порядке, я же сразу уточнил что данные в нем лежат. Это легко проверить например:  
arr() = ogranMax.GetRows  
maks! = arr(6, 0) '-возвращает искомое значение, и оно не пустое.  
Так что установка курсора на первую запись не причем ИМХО.
Метод CopyFromRecordset
 
Оживлю ка я, пожалуй, темку.  
Коллеги, прошу помочь! Имеем код, который из под Экселя не возвращает данные на активный лист, причем никакой ругани, - тихий игнор:    
 
Код:  
 
Dim sis As New ADODB.Connection    
sis.ConnectionString = "Provider=MSDAORA.1;Password=***;User ID=***;Data Source=***;Persist Security Info=True"    
sis.Open    
Dim ogranMax As New ADODB.Recordset    
ogranMax.CursorType = adOpenStatic    
  ogranMax.Open "SELECT ....", sis    
  ogranMax.MoveFirst    
     
Range("A1").CopyFromRecordset ogranMax    
 
ogranMax.Close    
sis.Close    
End Sub  
 
Библиотеки вроде все подключены, метод определяется. Запрос рабочий, данные в рекордсет возвращаются (проверял). Офис-2003. Явное объявление книги и листа проблему не решает. Сам запрос к БД Оракл "тянет" даты , числа, текст. Если у кого работает этот метод прошу перечислить подключенные к проекту библиотеки. Больше не знаю где и искать...
Страницы: 1
Наверх