Сообщения

Сообщения за октябрь, 2009

"Самозаполнение" выпадающего списка

После того как в поле со списком "vidbir_zdiysneno" буде введено новое значение, проверяется существует ли такое значение в базе данных (в поле/таблице к которому прикреплен данный элемент управления). Если такого значения еще нет, то оно добавляеться в источник строк списка Private Sub vidbir_zdiysneno_AfterUpdate()     Call Req_source_vidbir_zdiysneno End Sub Private Sub Req_source_vidbir_zdiysneno() 'Заполняет поле со списком значениями из базы данных Dim rs As DAO.Recordset Dim sTemp As String Set rs = CurrentDb.OpenRecordset ("SELECT DISTINCT vidbir_zdiysneno FROM data_act_g") sTemp = "" With rs     If .RecordCount > 0 Then         Do While Not .EOF               If .Fields(0).Value <> "" Then sTemp = sTemp & Chr(34) & .Fields(0).Value & Chr(34) & ";"              .MoveNext         Loop         .Close     End If End With vidbir_zdiysneno.RowSource = sTemp End Sub

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

Используем два поля "Ключ(Char)" и "Время(Date-time)" Возможные значения ключа: t - время - точные данные по времени n - минута - данные усредненные за минуту h - час - данные усредненные за час d - день - данные усредненные за день w - неделя - данные усредненные за неделю m - месяц - данные усредененные за месяц q - квартал - данные усредененные за квартал p - полугодие - данные усредененные за полугодие y - год - данные усредененные за год "Время" содержит дату-время события, в случае ключа усреднения - дату-время начала периода усреднения. Начало в случае усреднения по m, q, p, y (наиболее частые случаи) начинается всегда с первого дня месяца. Sub try() Dim d As Date d = CDate("01-01-2008 00:00:00") d = DateAdd("yyyy", 1, d) Debug.Print format(d, "dd-mmmm-yyyy hh:mm:ss") End Sub

Access 2007 RunTime : "Неопределенная функция Format в выражении"

Изображение
Больше часа искал из-за чего в Access 2007 RunTime приложение, которое нормально работает в Access 2007 (в котором оно и разрабатывалось) , выбивает сообщение : "Неопределенная функция Format в выражении!" и закрывается. В Access 2007 RunTime никаких способов продебажить код естественно нет - все закрыто. В общем, "ужасть" весьма злобная. Через какое-то время улавливаю, что ни одна из "стандартных" функций VBA типа Trim, InStr, Replace не работает. Это и навело на правильную мысль. Не понимаю почему, но в полном варианте Access все работает и без объявления этой библиотеки. Хотя, как показал опыт, это тоже не факт. Решение. Не стоит забывать в проектах Access объявить библиотеку Microsoft Scripting Runtime

Access 2007 RunTime : Разрешаем все "макросы"

Был вопрос: "Можно как-то отключить предупреждение Access-2007 ( RunTime ) на открытие приложения с небезопасным содержимым?" Ответ 1 : Изменить уровень безопасности легко. Достаточно пройти по ветке меню Сервис – Макрос – Безопасность… и установить Низкий уровень. Конечно, всё это просто, но объяснять всё это нескольким десяткам пользователей – язык отвалится. Наш пользователь привык читать инструкцию уже после того, как понажимает все возможные кнопки. Им почему-то проще позвонить в другой город, чем прочитать одну страничку текста (наверно, читать не умеют). Выход – менять уровень защиты программно. Уровень защиты прописан в реестре. Для Aссess 2003 - это ветка HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Access\security\Level А для Access 2007 – это ветка HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Access\Security\VBAWarnings Размерность параметра – DWORD Значения уровня безопасности: 1 – низкий; 2 – средний; 3 – высокий. Ответ 2 : для Access 2007 Отключить преду