5 строк кода

Как писать комерческие приложения на MS Access

Archive for the ‘решения’ Category

Функции для логирования

Комментариев нет

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

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

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

Текст функций:
Read the rest of this entry »

Written by Сергей Скоков

Март 14th, 2011 at 12:18 пп

Как преобразовать записи таблицы в строку

Комментариев нет

Я хочу предоставить Вам несколько очень полезных функций, которые позволяют собрать данные из таблицы в строку через разделитель:

  • CM_RecsInStr()
  • CM_RecsInStrExt()

Отличия между ними заключаются в параметрах. CM_RecsInStr() работает с Recordset, а CM_RecsInStrExt() с запросом или именем таблицы.

Эти функции я часто использую, что бы показать информацию о сложном объекте в сжатом виде. Например, для заказа можно показать выбранные товары через запятую, при этом можно ограничить вывод первыми 10 записями.

Пример использования:

Dim lK_OREDER As Long
Dim rst As DAO.Recordset
Dim stSQL As String

lK_OREDER = 123
stSQL = "SELECT TOP 25 T_ORDER_ITEM & '(' & N_COUNT & ')' As T_ITEM FROM K_ORDER = " & lK_OREDER

Set rst = CurrentDb.OpenRecordset(stSQL, dbOpenForwardOnly)

MsgBox CM_RecsInStr(rst, "T_ITEM", " | ")
MsgBox CM_RecsInStr(stSQL , "T_ITEM", " | ")

В результате работы примера получим примерно такую строку:

Товар А (1) | Товар Б (2) | Товар В (1)

Наиболее удачной получилось CM_RecsInStrExt(). Иногда для простоты я ее использую в качестве истоника данных полей на формах.

Текст функций:
Read the rest of this entry »

Written by Сергей Скоков

Февраль 23rd, 2011 at 1:14 пп