- •Федеральное государственное бюджетное образовательное учреждение
- •Факультет дизайна и компьютерных технологий
- •Курсовая работа по дисциплине "Базы данных" На тему: Управление исходным кодом в ms Access
- •Чебоксары 2012 содержание
- •Введение
- •I. Теоретическая часть
- •1. Основные принципы работы с исходным кодом
- •3. Отладка приложений access
- •3.1. Использование условной компиляции
- •II. Практическая часть
- •1.Модули и функции
- •1.1 Пример функции «Вычисление суммы прописью»
- •Val() - конвертация числа, записанного как строка, в числовое значение.
- •III. Заключение
- •IV. Список используемой литературы
- •V. Приложение
- •1. Таймер блокировки
- •2. Вычисление суммы прописью
1.1 Пример функции «Вычисление суммы прописью»
В формах и отчетах с коммерческими данными часто требуется вывести "сумму прописью». Для этого необходима специальная функция. В качестве примера был создан модуль (Module2) (Рис. 2.1):
Рис. 2.1 Исходный код (Module2)
Листинг модуля находится в разделе «приложение». Принцип работы функции довольно прост. Числовое значение (аргумент) преобразуется в текстовую строку, а потом анализируется количество цифр (разрядов). В зависимости от числовых значений формируется строка из слов с нужными падежными окончаниями. Необходимо предусмотреть все возможные варианты, поэтому в функции много операторов If и Case. Для работы со строковыми данными используется ряд стандартных функций VB:
Len() - количество символов в строке;
Str() - преобразование числа в строковую константу;
Trim() - удаление ведущих и оконечных пробелов из строки;
Ltrim() удаление ведущих пробелов из строки; - выбор левой части строки;
Right() _ выбор правой части строки;
Mid() - выбор из строки заданного числа символов, начиная с определенной позиции;
UCase() — преобразование строчных букв в заглавные;
Fix() - получение целой части числа;
Round() - округление числа с заданной точностью;
Val() - конвертация числа, записанного как строка, в числовое значение.
III. Заключение
В данном курсовом проекте были рассмотрены методы работы с исходным кодом интегрированные в Access. На нескольких примерах было описано устройство, синтаксис и методики эффективной отладки приложений в среде программирования Microsoft Visual Basic for Applications. Листинг используемых модулей и функций находится в разделе «ПРИЛОЖЕНИЕ» Данный проект может служить как руководство при изучении MS Access.
IV. Список используемой литературы
MS Access 2003 Самоучитель. Ю.Бекаревич, Н. Пушкина
Программирование Access в примерах. Боб Виллариал
Microsoft Access 2002. Наиболее полное руководство. В. Михеева
Освой самостоятельно программирование для MS Access 2002 за 24 часа. П. Киммел
http://office.microsoft.com
V. Приложение
1. Таймер блокировки
Function Taimer1()
Dim otvet, MyTime
otvet = 1
MyTime = Timer
While otvet = 1
If Timer - MyTime >= 10 Then
otvet = MsgBox("Прошло 10 секунд", vbOKCancel, "Таймер блокировки")
MyTime = Timer
End If
Wend
End Function
2. Вычисление суммы прописью
Public Function СУМ_ПРО(chislo)
Dim tekst As String
Dim sumpro As String
Dim Psumpro As String
Dim tprom As String
Dim nprom As Integer
Dim nkop As Integer
sumpro = ""
tekst = Trim(Str(Fix(chislo)))
If Len(tekst) > 0 Then
If Len(tekst) = 1 Then
tprom = "0" + tekst
Else
tprom = Right(tekst, 2)
End If
nprom = Val(tprom)
If nprom >= 10 And nprom <= 19 Then
sumpro = N10T$(nprom) + " рублей"
Else
Select Case Val(Right(tprom, 1))
Case 0
sumpro = "рублей"
Case 1
sumpro = "рубль"
Case 2, 3, 4
sumpro = "рубля"
Case 5 To 9
sumpro = "рублей"
End Select
sumpro = N1T$(Val(Right(tprom, 1))) + " " + sumpro
If nprom >= 20 Then
sumpro = LTrim(N20T$(Val(Left(tprom, 1))) + " " + sumpro)
End If
End If
If Len(tekst) >= 3 Then
sumpro = LTrim(N100T$(Val(Left(Right(tekst, 3), 1))) + " " + sumpro)
End If
If Len(tekst) > 3 Then
Select Case Len(tekst)
Case Is >= 6
tprom = Left(Right(tekst, 6), 3)
Case 5
tprom = "0" + Left(tekst, 2)
Case 4
tprom = "00" + Left(tekst, 1)
End Select
If Val(tprom) > 0 Then
nprom = Val(Right(tprom, 2))
If nprom >= 10 And nprom < 20 Then
Psumpro = N10T$(nprom) + " тысяч"
Else
Select Case Val(Right(tprom, 1))
Case 0
Psumpro = "тысяч"
Case 1
Psumpro = "одна тысяча"
Case 2
Psumpro = "две тысячи"
Case 3
Psumpro = "три тысячи"
Case 4
Psumpro = "четыре тысячи"
Case 5
Psumpro = "пять тысяч"
Case 6
Psumpro = "шесть тысяч"
Case 7
Psumpro = "семь тысяч"
Case 8
Psumpro = "восемь тысяч"
Case 9
Psumpro = "девять тысяч"
End Select
If nprom >= 20 Then
Psumpro = LTrim(N20T$(Val(Mid(tprom, 2, 1))) + " " + Psumpro)
End If
End If
If Val(Left(tprom, 1)) > 0 Then
Psumpro = N100T$(Val(Left(tprom, 1))) + " " + Psumpro
End If
sumpro = Psumpro + " " + sumpro
End If
End If
If Len(tekst) > 6 Then
Select Case Len(tekst)
Case Is >= 9
tprom = Left(Right(tekst, 9), 3)
Case 8
tprom = "0" + Left(tekst, 2)
Case 7
tprom = "00" + Left(tekst, 1)
End Select
If Val(tprom) > 0 Then
nprom = Val(Right(tprom, 2))
If nprom >= 10 And nprom < 20 Then
Psumpro = N10T$(nprom) + " миллионов"
Else
Select Case Val(Right(tprom, 1))
Case 0
Psumpro = "миллионов"
Case 1
Psumpro = "миллион"
Case 2, 3, 4
Psumpro = "миллиона"
Case 5 To 9
Psumpro = "миллионов"
End Select
Psumpro = N1T$(Val(Right(tprom, 1))) + " " + Psumpro
If nprom >= 20 Then
Psumpro = LTrim(N20T$(Val(Mid(tprom, 2, 1))) + " " + Psumpro)
End If
End If
If Val(Left(tprom, 1)) > 0 Then
Psumpro = N100T$(Val(Left(tprom, 1))) + " " + LTrim(Psumpro)
End If
sumpro = Psumpro + " " + LTrim(sumpro)
End If
End If
If Len(tekst) > 9 Then
Select Case Len(tekst)
Case Is >= 12
tprom = Left(Right(tekst, 12), 3)
Case 11
tprom = "0" + Left(tekst, 2)
Case 10
tprom = "00" + Left(tekst, 1)
End Select
If Val(tprom) > 0 Then
nprom = Val(Right(tprom, 2))
If nprom >= 10 And nprom < 20 Then
Psumpro = N10T$(nprom) + " миллиардов"
Else
Select Case Val(Right(tprom, 1))
Case 0
Psumpro = "миллиардов"
Case 1
Psumpro = "миллиард"
Case 2, 3, 4
Psumpro = "миллиарда"
Case 5 To 9
Psumpro = "миллиардов"
End Select
Psumpro = N1T$(Val(Right(tprom, 1))) + " " + Psumpro
If nprom >= 20 Then
Psumpro = LTrim(N20T$(Val(Mid(tprom, 2, 1))) + " " + Psumpro)
End If
End If
If Val(Left(tprom, 1)) > 0 Then
Psumpro = N100T$(Val(Left(tprom, 1))) + " " + LTrim(Psumpro)
End If
sumpro = Psumpro + " " + LTrim(sumpro)
End If
End If
End If
sumpro = LTrim(sumpro)
If Len(sumpro) > 2 Then
sumpro = UCase(Left(sumpro, 1)) + Right(sumpro, Len(sumpro) - 1)
End If
nkop = Round((Round(chislo, 2) - Fix(chislo)) * 100)
If nkop = 0 Then sumpro = sumpro + " 00 коп."
If nkop > 0 And nkop < 10 Then sumpro = sumpro + " 0" + Trim(Str(nkop)) + " коп."
If nkop > 9 And nkop < 100 Then sumpro = sumpro + Str(nkop) + " коп."
СУМ_ПРО = sumpro
End Function
Function N10T$(n001)
N10T$ = ""
Select Case n001
Case 10
N10T$ = "десять"
Case 11
N10T$ = "одиннадцать"
Case 12
N10T$ = "двенадцать"
Case 13
N10T$ = "тринадцать"
Case 14
N10T$ = "четырнадцать"
Case 15
N10T$ = "пятнадцать"
Case 16
N10T$ = "шестнадцать"
Case 17
N10T$ = "семнадцать"
Case 18
N10T$ = "восемнадцать"
Case 19
N10T$ = "девятнадцать"
End Select
End Function
Function N20T$(n001)
N20T$ = ""
Select Case n001
Case 2
N20T$ = "двадцать"
Case 3
N20T$ = "тридцать"
Case 4
N20T$ = "сорок"
Case 5
N20T$ = "пятьдесят"
Case 6
N20T$ = "шестьдесят"
Case 7
N20T$ = "семьдесят"
Case 8
N20T$ = "восемьдесят"
Case 9
N20T$ = "девяносто"
End Select
End Function
Function N100T$(n001)
N100T$ = ""
Select Case n001
Case 1
N100T$ = "сто"
Case 2
N100T$ = "двести"
Case 3
N100T$ = "триста"
Case 4
N100T$ = "четыреста"
Case 5
N100T$ = "пятьсот"
Case 6
N100T$ = "шестьсот"
Case 7
N100T$ = "семьсот"
Case 8
N100T$ = "восемьсот"
Case 9
N100T$ = "девятьсот"
End Select
End Function
