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 »
Как преобразовать записи таблицы в строку
Я хочу предоставить Вам несколько очень полезных функций, которые позволяют собрать данные из таблицы в строку через разделитель:
- 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 »