МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


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


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


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


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар.

Private Sub Код_поставщика_LostFocus()





End Sub

где Sub – оператор, обозначающий процедуру, End Sub – конец процедуры, Код_поставщика_LostFocus() – имя процедуры, состоящей из имени поля и обработчика события, Private – область видимости процедуры на уровне модуля формы.

5. Для того, чтобы при потери фокуса поля Код_поставщика в поле Идентифик№поставщика отобразилась соответствующая информация, необходимо обратиться к соответствующему столбцу раскрывающегося списка Код_поставщика. При этом для обращения к полям в VBA необходимо заключать их имена в квадратные скобки. В качестве символа присвоения используется знак равенства. Чтобы обратиться к столбцу раскрывающегося списка используется свойство Column(n), n – номер столбца, причем нумерация начинается с нуля. В качестве разделяющего символа между объектом и его свойствами и методами используется знак точки. В конце операторов не ставится ни знак точки, не знак точки запятой, а просто нажимаете Enter. Поэтому введите следующий код:

[Идентифик№поставщика] = [Код_поставщика].Column(2)

присваивает значению поля Идентифик№поставщика значение 3 столбца поля Код_поставщика.

Аналогично для отображения информации о фамилии поставщика необходимо написать следующий код:

[ФИОпоставщика] = [Код_поставщика].Column(3)

который присваивает значению поля ФИОпоставщика значение 4 столбца поля Код_поставщика.

И еще один момент. Если вдруг пользователь сначала выбрал одного Поставщика, заполнил все поля в форме, а потом передумал и выбрал из списка другого поставщика, то необходимо чтобы и связанные поля автоматически обновлялись. Для этого необходимо использовать метод Requery.Для этого необходимо написать следующий код:

[Идентифик№поставщика].Requery

[ФИОпоставщика].Requery

6. Таким образом, окончательно у вас должен получится следующий код:

Private Sub Код_поставщика_LostFocus()

[Идентифик№поставщика] = [Код_поставщика].Column(2)

[ФИОпоставщика] = [Код_поставщика].Column(3)

[Идентифик№поставщика].Requery

[ФИОпоставщика].Requery

End Sub

7. Чтобы выйти из редактора кода VBA нажмите кнопку вверху на панели инструментов .

8. Сохраните форму и откройте ее для заполнения. Выберите любого поставщика и нажмите Enter. Если вы сделали все правильно, то автоматически заполнятся поля Идентифик. №» и Получил:. Выберите другого поставщика из списка и у вас должны обновится данные.

Четвертое, что не устраивает – это подчиненная форма.

Первое, что мы изменим это скроем от пользователя незаполняемые поля, а именно Код_ввода_прихода и Код_прихода. Для этого выделите поля Код_ввода_прихода и Код_прихода – и удалите их. При этом эти поля остались в списке полей формы (в этом вы сможете убедится, нажав на панели инструментов кнопку Список полей ).

Второе, подчиненная форма Ввод прихода имеет поля Цена, Кол-во и Сумма. Логично, что желательно, чтобы при вводе количества и цены автоматически посчиталась сумма как их произведение, а не считать эту сумму самостоятельно и вводить потом это значение в поле Сумма. Как же это сделать? Для этого выполните следующее:

1. Создадите обработчик события на вход поля Сумма. Для этого выделите поле Сумма, откройте свойства, перейдите на вкладку События, выберите событие Вход, вызовите программу, впишите туда следующий код [Сумма]=[Кол-во] * [Цена]

Теперь поле Сумма будет автоматически рассчитываться, если пользователь будет щелкать мышью по полю Сумма.

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

3. Сохраните изменения в подчиненной форме. Чтобы убедиться, что код работает, необходимо для примера заполнить хотя бы одну запись о вводе прихода. Но как вы знаете, ввод данных в составных формах осуществляется только из главной формы. Поэтому закройте форму Ввод прихода и откройте для просмотра форму Приход. И для выбранного поставщика введите запись о товаре, цену и кол-во. Сумма при этом автоматически у вас должна быть посчитана. Например, как на рис. 2.

Пятое, что не устраивает – желательно подвести общие итоги сделанных платежей. Например, выбранных товаров будет несколько. То тогда одного поля сумма недостаточно, так как необходимо будет просуммировать все данные по столбцу Сумма. Для этого необходимо создать поле Всего, который бы подводил итоги по полю Сумма. Кроме того, как известно, бизнес связан с взятием налога с прибыли, поэтому сразу бы желательно посчитать НДС. И в силу того, что существует оплата на налог, то необходимо будет посчитать , сколько же Итого к выплате. Таким образом необходимо создать три поля Всего, НДСи Итого. Для этого выполните следующее:

1. Поля Всего, НДСи Итого необходимо создать в подчиненной форме, так как именно в ней производиться ввод данных о товаре и их сумм. Поэтому откройте форму Ввод прихода в режиме конструктора.

2. Поля Всего, НДСи Итого необходимо разместить за областью общего ввода информации, а именно разместим их в область примечания формы. Почему? Именно в примечании формы можно создавать такие элементы управления, которые могут подводить итоги по всем записям формы. Поэтому растяните область примечания формы вниз, чтобы разместите туда три новых пустых текстовых поля, используя кнопку панели элементов.

3. Первому полю присвойте Имя (чтобы изменить имя поля, щелкните по нему и вызовите свойства, перейдите на вкладку Другие и выберите свойство Имя) на Всего, второму НДС, и третьему Итого. Измените надписи (надписи отображаются по левую сторону от поля) ко всем трем полям тоже Всего, НДС и Итого. Разместите их так, как показано на рис. 3.

4. Для того, чтобы в поле Всего была посчитана сумма по всем значениям поля Сумма, выделите его, вызовите свойства, перейдите на вкладку Данные и выберите свойство Данные. Нажмите на кнопку и выберите Построитель выражений.

5. У вас появится окно Построитель выражений, см. рис.4.

При работе с объектами Access очень широко - используются выражения. опишем правила создания выражений в Access, которые должны использоваться в дальнейшем во всех случаях применения выражений.

Каждое выражение может содержать один или несколько операторов и одну или несколько констант, идентификаторов или функций. Выражение может быть сколь угодно сложным.

· Константы характеризуют неизменные значения. Их часто используют для создания значений по умолчанию и для сравнения значений в полях таблиц. Значения констант определяются пользователем при вводе выражения. (Например, 09, страна фирмы изготовителя Швеция.)

· Идентификаторы— это имена объектов в Access (например, полей таблиц или запросов), которые при вычислении выражений заменяются их текущими значениями (для определения этой операции обычно используется термин возвращают). Например, идентификатор имени поля [Household Inventory] в выражении возвращает значение поля Household Inventory из текущей выделенной записи. Именованные константы и переменные, применяемые в программах Visual Basic для приложений (VBA), тоже являются идентификаторами. Существует несколько встроенных именованных констант, служащих идентификаторами: True, False, Yes, No И Null.

· Функциивозвращают в выражение значение вместо имени функции. В отличие от идентификаторов, большинство функций требуют заключать в скобки свои-аргументы — идентификаторы или значения подвыражений. Например, функция Date (), имеющая пустой список аргументов, возвращает текущую дату.

· Операторы обычные значки арифметических операций (+, -, *, /) и другие символы и аббревиатуры. Используемые в операции константы, идентификаторы и функции называются операндами.

Для создания выражений в Access существует шесть категорий операторов: арифметические, операторы присваивания, логические операторы, операторы конкатенации, идентификации и сравнения с образцом.

Арифметические операторы

     
Оператор Пример Описание
+ [Итог] + [Надбавка] Складывает два операнда
- Date () - 7 Считает разность двух операндов
- (унарный) -12345 Меняет знак операнда
* [Коробок] * [Цена коробки] Перемножает два операнда
/ [Количество] / 12.55 Делит один операнд на другой
     
\ Делит один целый операнд на другой нацело. При использовании деления нацело операнды с десятичными дробями округляются до целого, а дробные части отбрасываются [Коробок] \ 2
Mod [Коробок] Mod 12 Возвращает остаток от деления нацело. Например, 15 Mod 12 равно 3
^ Возводит операнд Основание в степень Показатель ^[Показатель]
       




©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.