Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2009, 12:34   #1
fireye
Новичок
Джуниор
 
Регистрация: 23.11.2009
Сообщений: 9
По умолчанию Проблема при запросе даты из БД MSSQL

Добрый день!
отчет, формируемый по данным из БД MSSQL прилагаю...
исходный текст макроса писал не я...
но предидущий автор что-то намудрил с форматом даты и теперь какой бы формат даты не вводился в соответствующие поля запроса, выдается ошибка:
[Microsoft][ODBC SQL Server Driver][SQL Server]Conversion failed when converting datetime from character string.

подскажите как избавиться от этой ошибки...
спасибо!
Вложения
Тип файла: rar SQLDATA_.rar (134.1 Кб, 21 просмотров)

Последний раз редактировалось fireye; 24.11.2009 в 13:03.
fireye вне форума Ответить с цитированием
Старый 24.11.2009, 13:37   #2
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

Посмотри, нет ли предупреждения Missing на файл XLODBC.XLA
мне кажется что именно в нем заключена ошибка. Не исключено что этот файл не соответствует необходимому тебе запросу.
Юнлинг вне форума Ответить с цитированием
Старый 24.11.2009, 14:10   #3
fireye
Новичок
Джуниор
 
Регистрация: 23.11.2009
Сообщений: 9
По умолчанию

это я проверил сразу...

библиотека эта есть и файл шаблона (вроде он имеет расширение .XLA) тоже на месте...

куда дальше смотреть не знаю :-(
fireye вне форума Ответить с цитированием
Старый 25.11.2009, 08:44   #4
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

Открой этот шаблон и проверь макрос именно там находятся все форматы. Используй тот формат который там определен для даты. Если не поможет, то создай свой ODBC запрос при обращении к нужной таблице. Проверь на соответствие переменных запроса в файле XLODBC.XLA с созданным файлом с расширением .ODC (учти в данном файле используется формат записи HTML). Сравнив переменные можно будет увидеть правильность переобразования запроса в запрос MS SQL.
Если файл XLODBC.XLA закрыт паролем поищи на форуме как раскрывать пароли. (Кстати если предыдущий программист ушел со скандалом он мог удалит одну две переменных в файле шаблона и закрыть паролем)
И последнее, но это уже как невозможный вариант, он мог переобозвать переменную времени или изменить используемые переменные во внутреней процедуре таблицы в MS SQL. Для переменной необходимо иметь расшифровку таблиц и используя для MS SQL2000 (для 2005 не знаю) Enterprise manager подправь нужную таблицу. Но, если бы я что-то делал в этом направлении то подправил внутреннюю процедуру SQL запроса. Расшифровку этой процедуры достать достаточно проблематично, а эффект удручающий. Все проги написанные мной перестали бы работать выдавая именно такие сообщение.
Юнлинг вне форума Ответить с цитированием
Старый 25.11.2009, 10:45   #5
fireye
Новичок
Джуниор
 
Регистрация: 23.11.2009
Сообщений: 9
По умолчанию

нет, предидущий программист ушел нормально....
но он уехал и связи с ним нет....

соответствующая колонка в таблице БД имеет тип datetime....с этим, вроде, все нормально...
никакую процедуру, относящуюся к соответствующей таблице я не нашел...в БД вообще только системные процедуры..других нет

не могу открыть файл XLODBC.XLA...
он просто открывается, но экран абсолютно пустой...
просто запускается сам excel и все....

Последний раз редактировалось fireye; 25.11.2009 в 10:53.
fireye вне форума Ответить с цитированием
Старый 25.11.2009, 11:07   #6
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

Цитата:
Сообщение от fireye Посмотреть сообщение
соответствующая колонка в таблице БД имеет тип datetime....с этим, вроде, все нормально...
никакую процедуру, относящуюся к соответствующей таблице я не нашел...в БД вообще только системные процедуры..других нет
Процедуры находятся там же где и таблицы. Если их не использовать, то формат времени типа datetime воспринимаемый БД MS SQL имеет следующий вид MM.DD.YYYY hh:mm:ss PM(AM) плюс смещение на Гринвич. Если в БД делаешь запрос незаполнив хотя бы один символ, то MS SQL возвращает ошибку - неправильный формат времени.

Цитата:
Сообщение от fireye Посмотреть сообщение
не могу открыть файл XLODBC.XLA...
он просто открывается, но экран абсолютно пустой...
просто запускается сам excel и все....
Конечно он будет пустой все размещено в процедуре (project), извените в макросе. Жми ALT+F11, чтобы увидеть его.

Нюанс. НЕльзя говорить из какой таблицы беруться данные пока ты не расшифруешь макрос XLODBC.xla

Последний раз редактировалось Юнлинг; 25.11.2009 в 11:20. Причина: Нюанс
Юнлинг вне форума Ответить с цитированием
Старый 25.11.2009, 12:35   #7
fireye
Новичок
Джуниор
 
Регистрация: 23.11.2009
Сообщений: 9
По умолчанию

спасибо, Юнлинг, я разобрался...

не обращаясь к файлу XLODBC.xla и к процедурам в MS SQL,...
я просто подправил функцию преобразованию даты и все заработало....
если интересуют подробности, то напишу, но там все довольно просто...

спасибо ВСЕМ откликнувшимся!
fireye вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зависание при пост запросе Фенрир Работа с сетью в Delphi 1 14.12.2009 15:18
Даты в запросе Kinoshka Microsoft Office Access 4 10.04.2009 23:16
проблема с регистром в запросе SQL Abbatik Помощь студентам 2 28.01.2008 00:48
Ошибка при запросе SQL в IB Алекс1 БД в Delphi 2 24.06.2007 22:37