русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ответ к заданию 11


Дата добавления: 2015-08-31; просмотров: 674; Нарушение авторских прав


1. Создайте новый файл Excel, сделайте видимым панель управления Элементы управления,щелкните в нем по элементу управления Кнопкаи поместите кнопку на лист Excel. Для наших целей мы будем считать, что созданная кнопка занимает две верхние строки первого листа.

2. На панели инструментов Элементы управлениящелкните по кнопке Свойства(при этом созданная кнопка должна быть выделена) и настройте для свойства Caption значение "Получить данные". Воспользуйтесь свойством Font, чтобы настроить подходящий шрифт для вашей кнопки.

3. Щелкните правой кнопкой мыши по созданной вами кнопке и в контекстном меню выберите Исходный текст.Откроется редактор Visual Basic с курсором ввода на месте события Сlick для вашей кнопки.

4. В окне редактора кода в меню Toolsвыберите Referencesи установите флажок напротив строки Microsoft ActiveX Data Objects 2.1 Library.

5. Код для события Сlick вашей кнопки Получить данныеможет быть таким, как показано далее.

Private Sub CommandButtonl_Click()

'Вначале — чистим всю книгу от старых данных

Cells.Select Selection.Clear

'Создаем и настраиваем объект Connection

Dim en As New ADODB.Connection

cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;"_

& "Data Source=C:\Program Files\Microsoft Office\OFFICEll\SAMPLES\Бopeй.mdb"

en.Open

'Создаем и настраиваем объект Recordset

Dim rs As New ADODB.Recordset

rs.Open "SELECT [КодТовара], [Марка], [Цена], [НаСкладе]," _

& "[МинимальныйЗапас], [ПоставкиПрекращены] FROM Товары", cn

'На основе Recordset создаем объект QueryTable и

'вставляем его, начиная с 4-й строки

Dim QT1 As QueryTable

Set QT1 = QueryTables.Add(rs, Range("A4"))

QT1.Refresh

'Определяем количество записей в QueryTable



Dim nRowCount As Integer

Dim oRange As Range

Set oRange - QTl.ResultRange

nRowCount = oRange.Rows.Count

'Формируем столбец "Заказать товара, штук"

Range("G4").Value = "Заказать товара, штук"

Range("G4").Font.Bold = True

Range("G4").Columns.AutoFit

'Формируем столбец "Стоимость заказа"

Range("H4").Value = "Стоимость заказа"

Range("H4").Font.Bold = True

Range("H4").Columns.AutoFit

'Создаем диапазон, который включит в себя столбец G

' "вдоль" QueryTable

Set oRange = Range("G5", "G" & nRowCount + 3)

'Готовим переменные, которые нам потребуются в цикле

Dim oCell As Range

Dim sRowNumber As String

Dim cMoney As Currency

Dim cltogMoney As Currency

Dim cltogSklad As Currency

'Проходим циклом по всем ячейкам созданного диапазона

For Each oCell In oRange.Cells

'Получаем абсолютный номер строки в виде строковой переменной

sRowNumber = Replace(oCell.Address(True), "$G$", "")

'Проверяем определенные нами условия

If Range("E" & sRowNumber).Value > Range("D" & sRowNumber) And _

Range("F" & sRowNumber).Value = False Then

'Получаем значение для столбца G (заказ в. штуках) oCell.Value = (CInt(Range("E" & sRowNumber).Value) -_

CInt(Range("D" & sRowNumber).Value))

'Получаем значение для столбца Н (стоимость заказа)

cMoney = (CInt(Range-("E" & sRowNumber) .Value) — _

CInt(Range("D" & sRowNumber).Value)) *_

CCur(Range("C" & sRowNumber).Value)

'Записываем его в столбец Н

Range("Н" & sRowNumber).Value = cMoney

'Сразу плюсуем к итогу в рублях

cltogMoney = cltogMoney + cMoney

End If

'И в том же цикле сразу суммируем стоимость товаров на складе cltogSklad = cltogSklad + (Range("С" & sRowNumber).Value * _

Range("D" & sRowNumber).Value)

Next

'Формируем две строки с итогами

Range("В" & nRowCount+6).Value = "Общая стоимость товаров на складе:"

Range("В" & nRowCount+6).Font.Bold = True

Range("В" & nRowCount+7).Value = "Общая стоимость товаров к заказу:"

Range("В" & nRowCount + 7).Font.Bold = True

Range("D" & nRowCount + 6).Value = cltogSklad

Range("D" S nRowCount + 6).Font.Bold = True

Range("D" & nRowCount + 7).Value = cltogMoney

Range("D" & nRowCount + 7).Font.Bold = True

'Для красоты выделяем итоговое значение ...

Range("D" & nRowCount + 7).Select

'... и производим скроллирование

Range("D" & nRowCount + 7).Show

End Sub



<== предыдущая лекция | следующая лекция ==>
Применение Excel для анализа информации из базы данных | Система прямого (функционального) представительства организованных групп экономических интересов: российская специфика.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.189 сек.