Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Почему-то не срабатывает функция Date()
 
 автор: MS_4G   (29.04.2009 в 23:04)   личное сообщение
 
 

Здравтствуйте все!
Возникла неожиданная и довольно глупая проблема.

Я создаю приложения в Microsoft Office 2007 в среде Windows XP и Windows Vista. Приложения имеют формат Access 2002-2003 (.mdb-файлы), вопрос об их преобразовании в формат Access 2007 на данный момент не стоит.

По условиям функционирования базы данных основная разработка и модернизация приложений производится в среде Vista/Office 2007. Приложения получаются настроенными на эту среду, и время от времени производится сжатие и восстановление этих приложений. После накопления достаточного количества модернизаций приложения перебрасываются в среду XP/Office 2007, где производится ручная настройка на эту среду: изменяются ссылки на некоторые ADO-библиотеки в Tools/Reference (в среде XP более ранние версии этих библиотек), а также сжатие и восстановление этих приложений. Таким образом, для каждого приложения имеется два идентичных по функциональности .mdb-файла, настроенных на разные указанные выше среды функционирования.

Когда файл приложения, настроенный на свою среду, вызывается для функционирования в этой же среде, все получается нормально. Приключения начинаются, когда файл, настроенный для функционирования в среде XP/Office 2007, вызывается для работы в среде Vista/Office 2007 (так бывает нужно по условиям функционирования базы данных); в этом случае приложение рассматривает как ошибку использование стандартной функции Date(), в частности, когда эта функция используется для задания в формах обычным образом значения по умолчанию для некоторых полей типа Дата; именно, вместо надлежащего значения в поле формы при ее открытии появляется текст #Имя?, и работа приложения блокируется. Таких казусов не было, когда эти же приложения ранее настраивались на среды XP/Office 2003 и XP/Office 2007.

То, что вообще бывают проблемы переносимости программных продуктов в другие среды функционрования, не просто известно, но испытал на своей шкуре. Но чтобы в связи с функцией Date(), которая прошла несколько лет и несколько версий Access? Это непонятно.
Может быть, дело в том, что при вызове приложения на исполнение в более высокую среду идут втемную какие-то преобразования этого приложения? Или не сделаны какие-нибудь настройки при установке Vista или Office 2007?

Коллеги, если кто-то сталкивался с такой ерундистикой или может сообразить, в чем тут дело и как этого избежать, подскажите.
Заране признателен.

  Ответить  
 
 автор: osmor   (30.04.2009 в 09:37)   личное сообщение
 
 

что-то подобное было после выхода MSA 2000
контрол календарь встроенный в формы написанные под MSA97, на компах где был установлен MSA 2000 вызывал подобную ошибку, ходя все ссылки были на месте.
Самое смешное что файл OCX в обеих версиях MSA назывался одинаково. Помогало только удаление контрола из формы на компе с MSA 2000 И вставка его заново.
Исходя из вышесказанного, могу предположить, что библиотеки которые используются в программе на компах с XP и Vista имеют разные версии.
Как вариант предлагаю отключить ВСЕ подключенные библиотеки (ну какие возможно отключить), сохранить и закрыть приложение. Затем открыть приложение и подключить заново ВСЕ нужные библиотеки. Так же нужно поступить со всеми ActiveX, т.е. удалить из форм, сохранить и закрыть приложение, а затем вставить заново.

  Ответить  
 
 автор: MS_4G   (30.04.2009 в 16:17)   личное сообщение
 
 

Спасибо. Мысль интересная, попробую реализовать.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList