5 строк кода

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

Archive for Февраль, 2009

Хитрость печати отчетов

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

Здравствуйте, уважаемые читатели.

Логотип

В одной из программ реализована функциональность печати адресов клиентов на конверты, в результате пользователь получает готовенький документ MS Word. Клиент попросил добавить свой логотип на каждый конверт. Существующая реализация формирования документа в Word не позволяет дублировать картинку для каждой страницы. Переделывать полностью не хотелось. Поэтому я искал как обойтись меньшей кровью.

Идея пришла из ниоткуда. Я мониторил меню Word 2007 в поисках пункта записи макросов (может они и могли мне помочь, но увы :-) ) и наткнулся на создание подложки – “Разметка страницы – Подложка – Настраиваемая подложка” (“Формат – Фон – Подложка” для Word 2003).

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

Супер. Просто и со вкусом. Пример можно посмотреть тут.

До встречи!

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

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

Февраль 28th, 2009 at 1:49 пп

Posted in решения

Округления

2 комментария

Здравствуйте, уважаемые читатели.

До Access 2002 (или 2000) встроенной функции округления не было. Поэтому все пользовались самописными. Потом появилась функция Round(). Тут можно было вдохнуть с облегчением и избавится от собственной.

Как-то заказчик прислал мне скриншот с неправильными расчетами. Анализ кода показал, что функция Round() дала сбой и округляла следующим образом (проверял в окне отладки):
9.5 =10
8.5 = 8
7.5 = 8
6.5 = 6
5.5 = 6
4.5 = 4
3.5 = 4
2.5 = 2
1.5 = 2
0.5 = 0

Разбираться было лень. В результате заменил на собственное творение, т.к. это деньги:

Public Function CM_Okrugl(ByVal dbl As Double) As Long
' округляет число dbl до целого
    Dim lng As Long

    lng = Fix(dbl)

    If (dbl - lng) < 0.5 Then
        CM_Okrugl = lng
    Else
        CM_Okrugl = lng + 1
    End If
End Function

До встречи!

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

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

Февраль 26th, 2009 at 12:41 дп

Posted in решения

Ошибка в MS Access

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

Всем привет.

Как-то у меня возникла необходимость поработать на другом компьютере. Я давно использую VSS и не хотел от этого отказываться. Но тут меня подстерегал подводный камень.

При импорте базы данных из репозитория я получил кучу ошибок, когда очередь дошла до форм. Ладно, думаю так поработаю. И не тут то было. При попытке открыть форму я увидел надпись:
“There isn’t enough memory to perform this operation. Close unneeded programs and try the operation again.”

Мне помог вот этот hostfix: http://support.microsoft.com/kb/945674/en-us. Качаем и наслаждаемся.

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

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

Февраль 24th, 2009 at 1:02 дп