You are viewing [info]5codelines's journal

entries friends calendar user info My Website Previous Previous
5codelines
Add to Memories
Share

Запись опубликована 5 строк кода. Please leave any comments there.

Если в строку разместить несколько полей, добавить в оформлении рамку, то получим таблицу, как Word или Excel. Весь кайф может поломать всего лишь одно поле, которое содержит много текста и нужно ставить «Да» свойству «Расширение».

В этом случае придется немного по программировать. Для начала уберем у полей рамку. Добавим одну линию в конце нашей записи — lineEndRow. Вертикальные линии будем рисовать самостоятельно методом Report.Line меду началом секции «Область данных» и линией lineEndRow. Функцию ниже нужно вызывать из события ОбластьДанных_Print.

Читать запись полностью »

Tags: , ,

Add to Memories
Share

Запись опубликована 5 строк кода. Please leave any comments there.

Что бы поменять стандартную иконку MS Access на что-нибудь свое необходимо открыть окно параметры запуска приложения и указывать там путь к изображению. Заодно можно поменять его руками. Естественно этот параметр можно задавать программно см. имена и значения коллекции CurrentDb.Parametrs.

Для изменения параметров из коллекций типа CurrentDb.Parametrs я написал функцию VC_PropertyChange(), которая располагается в модуле mc_objects.

Dim stAppTitle as String
dim stPathToIco as String

'-- изменить название приложения
Call mc_objects.VC_PropertyChange(CurrentDb, "AppTitle", dbText, stAppTitle)
'-- изменить иконку по умолчанию
Call mc_objects.VC_PropertyChange(CurrentDb, "AppIcon", dbText, stPathToIco)
Call mc_objects.VC_PropertyChange(CurrentDb, "UseAppIconForFrmRpt", dbBoolean, True)
'-- отобразить изменения
Application.RefreshTitleBar

Также в модуле mc_objects располагается еще одна полезная функция VC_PropertyValue(), которая читает значения параметра:

Dim stMenu As String
'-- получить меню по умолчанию
stMenu = VC_PropertyValue(CurrentDb, "StartUpMenuBar")

Текст функций:

Читать запись полностью »

Tags: , ,

Add to Memories
Share

Запись опубликована 5 строк кода. Please leave any comments there.

Очень замечательная книга. Уже давно прочитал ее. Расскрывает многие принципы хорошего подхода к программированию. Рекомендую к прочтению.

До встречи!

(с) Скоков Сергей

Подписаться на: RSS или e-mail рассылку или добавить в ЖЖ друзья.

Tags:

Add to Memories
Share

Запись опубликована 5 строк кода. Please leave any comments there.

Я хочу поделиться очень полезными функциями CM_ResizeCtl() и CM_ResizeWidth(), которые подгоняют элемент управления при изменении размеров форм. В основном я использую их для подчиненных форм в табличном виде.

Что нужно сделать:

  • Создать новую форму.
  • Убрать область выделения, полосы прокрутки, область выбора записей.
  • Разместить в области данных элемент управления в левом верхнем углу. Назовем его f_spis_. Элементом управления может быть любой тип. Я чаще использую для подобных случаев подчиненную форму в табличном виде. Элемент управления можно размещать и в заголовке или примечании формы, но в этом случае элемент управления будет меняться только по ширине.
  • Создать событие формы «Изменение размера» следующего вида:

Читать запись полностью »

Tags: , ,

Add to Memories
Share
Add to Memories
Share

Originally published at 5 строк кода. You can comment here or there.

Хочу представить Вам функции, без которых нормальная жизнь программы на MS Access не возможно.

Их всего три:

  • CM_LT_AddAllExt() – добавляет в текущую базу ссылки на таблицы из mdb файла
  • CM_LT_AddAllExt_ODBC() – добавляет в текущую базу ссылки на ODBC таблицы на сервере
  • CM_LT_DelAll() – удаляет таблицы-ссылки из текущей базы

Они позволяют создать в интерфейсной базе ссылки на таблицы из базы с данным. У меня они запускаются каждый раз при запуске. Написаны они давным давно, но полезны до сих пор.

Текст функций:

Read the rest of this entry »

Tags: , , ,

Add to Memories
Share

Originally published at 5 строк кода. You can comment here or there.

Все очень просо:

Function CM_GetDBPath() As String
    Dim db As Database

    With CurrentDb
        CM_GetDBPath = Left(.Name, Len(.Name) - Len(Dir(.Name)))
    End With
End Function

До встречи!

(с) Скоков Сергей

Подписаться на: RSS или e-mail рассылку или добавить в ЖЖ друзья.

Tags: , ,

Add to Memories
Share

Originally published at 5 строк кода. You can comment here or there.

Для доступа к значению поля со списком можно воспользоваться двумя способами. Рассмотрим на примере, где P_K_MES это поле со списком, в котором можно выбрать месяц.

Источником данных для такого запроса может служить такой запрос:

SELECT K_MES, T_MES FROM s_mes;

Атрибуты настроены так:

  • Макет
    Свойства. Макет
  • Данные
    Свойства. Данные

Рассмотрим пример чтения текущего выбранного значения:

    Dim iMes As Integer '-- номер месяца
    Dim stMes As String '-- имя месяца

    '-- значение присоединенного столбца
    iMes = nz(Me.P_K_MES, 0)
    iMes = nz(Me.P_K_MES.Value, 0)
    iMes = nz(Me.P_K_MES.Column(0), 0)

    '-- значение произвольной колонки
    stMes = nz(Me.P_K_MES.Column(1), "Не выбрано")

    MsgBox "Выбранные значения: Номер - " & iMes & ", Название - " & stMes & ".", vbInformation

Первое на что стоит обратить внимание это то, что мы всегда можем прочитать значение колонок только выбранной строчки. Если ничего не выбрано и нет значения по умолчанию, то атрибуты Value и Column вернут Null.

Как Вы заметили, к значению присоединенного столбца можно обратиться двумя способами при помощи Value и Column. Колонки нумеруются с 0, в порядке следования полей в запросе. Но в атрибутах нумерация с 1-ы. Пример скачать тут.

До встречи!

(с) Скоков Сергей

Подписаться на: RSS или e-mail рассылку или добавить в ЖЖ друзья.

Tags:

Add to Memories
Share

Originally published at 5 строк кода. You can comment here or there.

Progress BarПри выполнении длительных операций желательно и даже необходимо держать пользователя в курсе дела. Один из вариантов это отображать текущее состояние процесса в специально открытой форме. Там же можно и кнопку отмены разместить. Вторым более простым вариантом является использования строки состояния. В MS Access со строкой состояния можно работать через вызов функции SysCmd(). Я написал функции-оболочки для нее и разместил в библиотечном модуле mc_StrSost.

Всего получилось три функции для работы с прогресс баром:

  • CM_PrBarStart() – инициализировать прогресс бар
  • CM_PrBarStep() – изменить прогресс бар
  • CM_PrBarEnd() – убрать прогресс бар

И одна функция для работы со строкой состояния:

  • CM_StrSost()

Что бы это все заработало необходимо что бы строка состояния была включена (см. параметры запуска).

Код функций:

Public Sub CM_PrBarStart(ByRef stText As String, ByVal lMaxVal As Long)
' инициализация прогресс бара
    DoEvents
    SysCmd acSysCmdInitMeter, stText, lMaxVal
End Sub

Public Sub CM_PrBarStep(ByRef lNextVal As Long)
' увеличение строки прогресса
    DoEvents
    SysCmd acSysCmdUpdateMeter, lNextVal
End Sub

Public Sub CM_PrBarEnd()
' удаление прогресс бара
    DoEvents
    SysCmd (acSysCmdRemoveMeter)
End Sub

Public Function CM_StrSost(Optional stText As String = "")
' Изменяет строку сотояния, если текст не передан, строка состояния очищается
    DoEvents

    If stText = "" Then
        SysCmd acSysCmdClearStatus
    Else
        SysCmd acSysCmdSetStatus, stText
    End If
End Function

До встречи!

(с) Скоков Сергей

Подписаться на: RSS или e-mail рассылку или добавить в ЖЖ друзья.

Tags: , ,

Add to Memories
Share

Originally published at 5 строк кода. You can comment here or there.

Представляю вам набор функций для логирования:

  • CM_LogMsg() – записать сообщение
  • CM_LogErrForm() – записать сообщение об ошибке в форме
  • CM_LogErr() – записать сообщение об ошибке
  • CM_LogCheckSize() – проверяет размер файла лога. Обычно используется только при запуске приложения.
  • CM_LogGetPathFile() – формирует путь к файлу лога
  • CM_LogErrDAO() – записать ошибки, возникшие при работе с данными. Только при использовании библиотеки DAO.

«Живут» эти функции в модуле: mc_Log.

Текст функций:

Read the rest of this entry »

Tags: , , ,

profile
Name: 5codelines
Website: My Website
calendar
Back January 2012
1234567
891011121314
15161718192021
22232425262728
293031
page summary
tags