Хичээлийн код: SW206 Хичээлийн нэр: Визуаль програмчлал
Лекц№ 1. Visual Basic-ын орчин өгөгдлийн төрлүүд, Хувьсах хэмжигдэхүүнүүд
Дэлгэц дээрээс харахад -ийн үндсэн цонх нь Title bar, Main menu, Toolbar гэсэн
үндсэн хэсгүүдэд хуваагдаж байна. Эдгээр нь программын гарчиг, үндсэн цэснүүд,
программыг бичихэд ашиглагдах дүрс хэрэгслүүдийг тус тус илэрхийлдэг. Visual Basic–т
аливаа программ нь Project(төсөл)-үүд дээр үндэслэгддэг. Project нь бидний программын бүх
хэрэгцээт мэдээллийг агуулна.
VB-ийн Project-ийг нээх.
-ийн программ нь Project-ийг шинээр байгуулахаас ажлаа эхэлнэ. Одоо Toolbar-аас
Visual Basic–ийн Project-ийг нээхийг үзье.
Open Project товчлуур нь:
project-ийг нээх товчлуур
• Project-ийг нээх товчлуурыг дарах. Open Project цонх дэлгэц дээр буй болно.
• өөрийн ажиллах folder-ийг хайх . ( Бид Begin VB-“Beginning Visual Basic” folder -ийг
сонгоё). Энэ folder нь энэ сургалтанд ашиглаглах Project-ийг хадгална. Тухайн
folder-ийг нээх.
• BVB Projects дэд folder-ийг сонго. Энэ folder нь VB-ийн версүүдээс хамаарч
VB4Projects, VB5Projects, VB6Projects дэд хэсгүүдээс тогтох бөгөөд Visual Basic-ийн
ямар верси ачаалагдсанаас шалтгаалж тохирохыг нь сонгоно.
• Sample нэртэй project файлыг сонгоод нээвэл дараах цонх харагдана.
Хэрэв энэ дэлгэц үзэгдэхгүй байвал
VB4-т: Үндсэн цэсийн View-ийг сонгон дараа нь Form .
VB5, VB6-д: Үндсэн цэсийн View -ийг сонгон дараа нь Object -ийг тус тус сонгоно. VB–
ийн project нь form байгуулан ашигладаг бөгөөд form-д программын дэлгэцийн дезайныг
тодорхойлсон байна. Title bar–ийн 3 жижиг дөрвөлжин дүрсээр form-ыг илэрхийлнэ. Бид
form-д өнгө тодорхойлсон, дуу чимээ илэрхийлсэн, цаг хугацааг тоолсон, жижиг бөмбөдөг
дүрсийг хөдөлгөх зэрэг control-ууд тэдгээртэй харьцан сонгож ажиллуулах интерфейс
(interface) байгааг харж болно. Бидний жишээнд text box, label control, chegh box, option
button, frame, image, list болон combo box, shape control, picture box, time control-уудыг тус тус
ашигласан байна.
VB-т form-ыг байгуулан хөгжүүлсэний дараа control-уудад харгалзах процедурыг бичээд
программыг ачаалж ажиллуулна.
VB-ийн программыг ажиллуулахдаа
- Үндсэн цэсээс RUN-г сонгоод Start .
- F5-ыг сонгох
- Toolbar-аас программ ажиллуулах
Хэрэглэгчийн зүгээс тодорхой даруулгыг mouse ашиглан сонголт хийхийг event гэж нэрлэх
бөгөөд ийм төрлийн программчлалын хэлийг event-driven programming language гэнэ.
Бидний программ нь дээрх төрөлд хамаарах учраас эд хэрэгсэл , өнгө зэргийг даруулга
ашиглан сонголт хийж болно.
Программыг ажиллаж байх үед эсвэл ажиллаж дууссаны дараа ажиллагааг зогсоохдоо
Toolbar-аас сонгох буюу form дээрээс close-ыг сонгоно.
Хэрэв та VB-ийн программаас гарах бол :
- Үндсэн цэснээс File -ийг сонгоно.
- Тухайн цэснээс Exit-ийг тус тус сонгох болно.
Хичээлийн код: SW206 Хичээлийн нэр: Визуаль програмчлал
Бид өмнөх хичээлээс VB-ийн project, form, control-ын тухай танилцаж event-үүдийн
тусламжтайгаар хэрэглэгч, компьютер хоорондын интерфейс үүсч буй талаар тoдорхой
ойлголттой болсон билээ.
Шинэ хичээлээр VB-ийн project -ийг үүсгэх алхмууд, тэдгээрийн тусламжиай VB -ийн
программын орчинг бүрдүүлэх талаар үзэж болно. Анхны хичээлээл бид компьютерт VB
-ийн ямар верси ачаалагдсанаас шалтгаалж зарим онцлог, ялгааг харуулж байсан билээ.
Цаашид бид VB -ийн сүүлийн үеийн версийн хувьд хичээлээ үргэлжлүүлэх болно.
Visual Basic–ын орчин
Энэ бүлэгт Visual Basic-ийн aplication буюу программын дизайныг хэрхэн яаж хийж
боловсруулах, программчлах явцад тохиолдох шинэ үг хэллэг, зарим товч танилцах болно.
Мөн та анх удаа Visual Basic дээр программчлах болно.
Мөн VB-ийн шинэ курсээр мэдэх мэдлэгийн агуулга, программ эхлэн бичигсдэд зориулан
анхан шатны программ бичих жишээ зэргийг агуулах болно.
Visual Basic гэж юу вэ?
• Visual Basic нь Windows (Graphic User Interface - GUI) aplication-д ашиглагдах
программын хэрэгсэл
• Visual Basic нь event-driven хэлбэрээр программчлах бөгөөд товчлуур даруулаас болон
цэсээс–аар сонгож ажиллах event processor дээр үндэслэглсэн event procedure-
ууд юм...
Event processor –ын Programm control бүтцийг доор үзүүлэв.
Windows орчны ихэнх программын хэл, хэрэгслүүд event-driven төрөлд хамаарна.
• Event-driven төрлийн программ хангамж ажиллахад амар хялбар дөхөм цаг хугацааг
маш их хэмнэдэг бөгөөд Event-procedure-ууд нь ижил төстэй дахин хуулж ашиглах
боломжтой байдаг.
• Visual Basic программ хангамжийн зарим шинж чанараас дурьдвал:
⇒ control-ууд иж бүрэн хангалттай
⇒ ашиглаж болох дүрс зургуудтай
⇒ mouse ба keyboard -ын бүх боломжийг ашигладаг
⇒ Printer ба Clipboard санах ойтой сайн ажилладаг.
⇒ Математикийн болон мөр өгөгдөл, графикийн функцүүдийг бүрэн ашиглах
боломжтой.
⇒ Дэс дараалсан ба шууд хандалттай файлуудтай ажиллах чадвартай.
⇒ Программын туршилтын ба хөрвүүдэлтийн явцад гарах алдааг засварлах
боломжтой.
⇒ Өгөгдлийн ба мэдээллийн сантай ажиллах хэрэгслүүдтэй.
⇒ ActiveX-control-той ажиллана
⇒ Package & Deployment Wizard -хэлбэрээр программын хэрэгслийг хувиргаж
өгнө..
Event
Procedures
Event
?
Basic Code
Event
processor
Basic Code Basic Code
Хичээлийн код: SW206 Хичээлийн нэр: Визуаль програмчлал
( setup.exe хэлбэрээр задардаг архивын хэлбэр)
Visual Basic 6 ба Visual Basic-ын бусад версүүд.
• DOS-ын орчингийн Visual Basic ба Windoes орчны Visual Basic-ын анхны хувь нь
1991 онд зохиогджээ.
• Visual Basic-ын өргөтгөж сайжруулсан Visual Basic -3 нь 1993 онд хэвлэгдсэн байна.
• Visual Basic - 4 1995 онд хэвлэгджээ. (32 bit-ийн хэрэглээг оруулж ирэв )
• Visual Basic-5 1996 оны сүүлчээр шинээр ActiveX control-ыг 16 bit-ийн хэрэглээнд
ашиглахаар бүтээжээ.
• Харин Visual Basic 6 нь дараах онцлогуудтайгаар шинээр буй болжээ.
⇒ Хуртай compiller-тай
⇒ ActiveX data control нь сайжирсан
⇒ Өгөгдлийн сантай ажиллах боломжийг өргөтгөсөн
⇒ report designer-шинээр хийгдсэн
⇒ Package & Deployment Wizard-ыг сайжруулсан
⇒ Internet сүлжээний программ хангамжтай холбогдох боломжтой
• Visual Basic 6 нь Windows 95, Windows 98, Windows 2000 ба Windows NT үйдлийн
системд тус тус ажиллана…
Visual Basic Application-ны бүтэц
Project (.VBP, MAK)
Aplication ( Project )
нь дараах объектүүдээс
тогтоно.
⇒ Form -
Windows
хэрэглэгчийн
интерфейсийг
үүсгэнэ.
⇒ Control –Form дээр график хэлбэрээр илэрхийлэгдсэн хэрэглэгчийн ханлалт
⇒ Property - Form ба Control -ийг тодорхойлох шинжүүд
⇒ Method - ялгаатай объектүүдэд зориулагдсан процедур
⇒ Event Procedure – Event горимд зарим объектүүдэд зориулагдсан процедур
⇒ General Procedure – Объектүүдэд бус project-д зориулагдсан процедур
⇒ Module - Ерөнхий процедурт бичигдсэн хувьсагч тогтмолыг тодорхойлсон
мэдээллийн цуглуулга
Form 1(.FRM) Form 2(.FRM) Form 3(.FRM) Module 1(.BAS)
Control 1
Control 2
Control 3
Control 1
Control 2
Control 3
Control 1
Control 2
Control 3
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Design Timer буюу загварчлах орчинд Object-ийн Property-үүдийг тдорхойлох нь
Аливаа Form ба Control-ууд нь property-ээр шинжүүдээ илэрхийлж өгнө. Объек дээр
property-ийг дэлгэц дээр үзэгдэх горимд ажиллуулах 2 арга байна. Эхний арга нь
эхлээд form эсвэл control object-ийг сонгоод дараа нь toolbar-аас Properties window-ыг
идэвхжүүлнэ. Дараачийн арга нь Properties window -ыг идэвхжүүлж дараа нь Properties
window -ын Object box-ыг сонгоно.
Properties window-ын Object box-т тухайн aplication-ны
объектийн нэр харагдана. Манай жишээн дээр бидний form -ын
нэр үзэгднэ. Доод хэсэгт нь Properties-ын жагсаалт байх бөгөөд
тэндээс тухайн control-д тохирох шинжүүдийг тавьж тохируулна.
Properties-ийг Alphabetic ба Categorized хэлбэрээр сонгоно.
Хамгийн чухал property буюу шинж нь тухайн объектийн нэр
(name) байдаг. Тэр нь Visual Basic кодчлол хийхэд ашиглагдана.
Visual Basic объектийн нэрийг 3 үсгээс тогтсон prefix байдлаар
загварчлал хийх явцад ашиглах нь бий. Зарим объектийн prefix-ийг
доор харууллаа.
Объект Рrefix Жишээ
Form frm frmWatch
Command Button cmd, btn cmdExit, btnStart
Label lbl lblStart, lblEnd
Text Box txt txtTime, txtName
Menu mnu mnuExit, mnuSave
Check box chk chkCoice
Объектийн нэр нь 40 хүртэл тэмдэгтээс тогтох бөгөөд үсгээр эхэлсэн үсэг эсвэл доогуур
зураас (_) оруулсан тэмдэгтүүд байдаг. Нэрүүд нь объектэд харгалзах event процедур
кодчилолд хэрэглэгдэнэ.
Программыг ажилаж байхад буюу Run Time -д Property-нүүдийг тодорхойлох.
Та программыг ажиллаж байхад өөрийн aplication-д property-нүүдийг тодорхойлж өгч
болно. Энэ кодчилол нь дараах хэлбэртэй байна. Үүнд:
ObjectName.Property=NewValue
Тухайлбал та frmStart нэртэй form-ын BackColor property-г солих гэвэл
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
frmStart.BackColor=vbBlue гэж бичиж өгнө.
Хувьсах хэмжигдэхүүнүүд
• Бид кодчлолыг эхлэхийн өмнө event процедурт хэрэглэгдэх хувьсах
хэмжигдэхүүнүүдийн тухай авч үзье.
• Visual Basic-т хувьсах хэмжигдэхүүнүүдийг хэрэглэх дараах журмууд бий.
Үүнд:
⇒ Хувьсах хэмжигдэхүүнүүдийн нэр нь 40 тэмдэгтэс үл хэтрэх
⇒ Тэдгээр нь үсэг, тоо доогуур зураасаас(_) тогтсон байх.
⇒ Эхний тэмдэгт нь заавал үсэг байх
⇒ Та Visual Basic-ийн нөөц үгнүүдийг хэрэглэхгүй байх
Visual Basic-ийн өгөгдлийн төрөлүүд
Өгөгдлийн
төрөл
Suffix Жишээ
Boolen None True
Interger % 14
Long (Interger) & 4532838
Single (Floating ! 3.23
Double (Floating) # 3.2346363627281
Currency @ $12.98
Date None 12/30/99
Object None n/a
String $ “Visual Basic 6”
Variant None дурын
Xувьсах хэмжигдэхүүнүүдийг зарлах
Хувьсах хэмжигдэхүүнүүдийг зарлах үндсэн 3 хэлбэр байна.
Үүнд:
1. Default
2. Implicit
3. Explicit
Хэрэв хувьсах implicit, explicit биш бол variant төрлийн өгөгдөл бөгөөд default хэлбэрийн
хувьсах хэмжигдэхүүн байна. Энэ variant төрөл нь Visual Basic-ийн numberic , string эсвэл
date төрлийн өгөгдөл байна.
Implicitly хэлбэр нь дээр өгөгдлийн төрлийг тдорхойлсон хүснэгтэнд харгалзах
өгөгдлийн төрлүүд болно. Жишээлбэл:
TextValue$=”This is a string”
нь өгөгдлийн төрлийг харин
Amount%=300
нь өгөгдлийн буюу бүхэл тоон төрлийг тус тус зааж байна.
• Өгөгдлийн emplicity хэлбэр нь өгөгдлийн төрлийг сайжруулсан хэлбэр юм.
• Энэ хэлбэр нь өөрийн үндсэн 4 боломжоор илэрхийлэгдэнэ. Үүнд:
⇒ Procedure level (процедур түвшин)
⇒ Procedure level, static(процедур болон стстак түвшин)
⇒ Form and module level (Form ба module түвшин)
⇒ Global түвшин зэрэг болно.
• Процедурт хувьсах хэмжигдэхүүнүүдийг Dim statment-аар тодорхойлж өгнө. Жишээ нь:
Dim MyInt as Interger
Dim MyDouble as Double
Dim MyString As String, YourString As String
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
• Процедур түвшинг зааж өгч хувьсах хэмжигдэхүүнүүдийг тодорхойлж болно. Тухайлбал:
Static MyInt as Interger
Static MyDouble as Double
• Form (module) түвшингийн хувьсах хэмжигдэхүүнүүд нь тухайн Form-ийн хэсэг байдлаар
дараах байдлаар тодорхойлогдоно.
Dim MyInt as Interger
Dim MyDate as Date
• Global түвшингийн хувьсах хэмжигдэхүүнүүд нь Global гэсэн түлхүүр үгийг авна. Үүнд:
Global MyInt as Interger
Global MyDate as Date
• Янз бүрийн түвшинд хувьсах хэмжигдэхүүнүүдийг зарласан байдлыг дараах жишээнээс
харж болно.
Module 1
Global X as Interger
Form 1
Dim Y as Interger
Sub Routine 1()
Dim A as Double
.
.
End Sub
Sub Routine 2()
Dim B as Double
.
.
End Sub
Form 1
Dim Y as Interger
Sub Routine 3()
Dim C as String
.
.
End Sub
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Лекц№ 2. Visual Basic -ын statement ба үйлдлүүд, операторууд, функцүүд, String
функцүүд
Basic-ийн тухай товч түүх.
• Тухайн хэл нь 1960 онд Дартмоут коллежид анх үүссэн гэдэг бөгөөд Basic гэдэг нэр нь
B(Beginner’s)
A(All-Purpose)
S(Symbolic)
I(Instruction)
C(Code)
бүтэцтэй ажээ.
• FORTRAN, Algol, Cobol хэлнүүдийн төгс хэлбэр нь болно.
• 1970-аад оны дундуур коллежийн 2 оюутан Biil Gates, Allen Paul наp Altair нэртэй
кассетийн зөөгчтэй микрокомпьютер дээр тухайн хэлийг зохиожээ.
• Өмнөх версээ сайжруулан GW-Basic, QuickBasic гэх мэтээр нэрлэгдэн өнөөг хүрчээ.
• Visual Basic нь 1991 онд зохиогджээ.
Visual Basic -ын Statement(комманд) ба Үйлдлүүд
• Xамгийн энгийн statement нь утга олгох statement юм. Энэ нь хувьсагчийн нэр, утга олгох
оператор (=), зарим үйдлийн хэсгээс тус тус бүрдэнэ.
Жишээлбэл:
StartTime=Now
Explorer.Caption=”Caption Spaulding”
BitCount=ByteCount * 8
Energy=Mass * LIGTHSPEED ^ 2
NetWorth=Assets-Liabilities
Утга олгох нь мэдээллийг агуулдаг.
Statement нь нэг мөрөнд годуу бичигддэг бөгөөд (:) тэмдгийг ашиглан нэг мөрөнд хэд
хэдэн statement -ыг бичиж болно. Жишээ нь:
StartTime=Now : EndTime = StartTime+10
• Statement нь маш урт бичигдэх тохиолдолд (_)-ийг ашиглаж нэг мөрөнд хэд хэдэн -ийг
бичнэ. Жишээ:
Months=Log(Final*IntRate/Deposit+1)
• Тайлбар бичихдээ Rem гэсэн түлхүүр үгийг ашиглах буюу (‘) тэмдэгтийг хэрэглэнэ.
Жишээ:
Rem This is a remark
‘ This is also a remark
x=2*y ‘ another way to write a remark or comment
Visual Basic-ын операторууд.
• Хамгийн энгийн операторууд arithmetic нь операторууд болно. Үүнд:
Operator Үйлдэл
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
^ Зэрэг дэвшүүлэх
*/ Үржүүлэх ба хуваах
 Бүхлээр хуваах
Mod Модуль хэсгийг тооцох
+ - Нэмэх ба хасах
• Parentheses буюу дугуй хаалтыг үйлдэл хооронд ашиглах
• String төрлийн үйлдүүдийн нэгтгэхдээ & буюу + тэмдэгтийг хэрэглэнэ.
lblTime.Caption=”The current time is” & Format(Now, “hh:mm”)
txtSample.Text=”Hook this” + “to this”
• Visual Basic-т үндсэн 6 харцуулах оператор байна. Үүнд:
Operator Xарьцуулалт
> их
< бага
>= их буюу тэнцүү
<= бага буюу тэнцүү
= тэнцүү
<> үл тэнцэх
• Boolen төрлийн оператор нь true эсвэл false утга авна.
• Логикийн 3 оператор байдаг бөгөөд
Operator Үйлдэл
Not үгүйсгэл
And ба
Or буюу зэрэг болно.
Visual Basic -ын функцүүд
• Visual Basic нь маш олон функцүүдийн баялагтай бөгөөд зарим функцүүдийн тухай авч
үзье.
Function(функц) Буцах утга
Abs Tооны абсолют утгийг олох
Asc Тэмдэгтийн ба кодыг олох
Chr ASCII ба ANSI кодод харгалзах тэмдэгтийг
тодорхойлох
Cos Өнцгийн косинусыг олох
Format Date, numeric төрлийн өгөгдлийг текст striing төрөлд
хөрвүүлэх
Left String төрлийн өгөгдлийн зүүн талаас зарим хэсгийг
ялгаж авах
Len String төрлийн өгөгдлийн тэмдэгтийн уртыг тооцох
Mid String төрлийн өгөгдлийн тодорхой хэсгийг ялгах
Now Тухайн өдрийн цагийг ачаалах
Right String төрлийн өгөгдлийн баруун хэсгээс төгсгөл
хүртэл ялгах
Rnd Тооны Ramdom утгийг олох
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Sin Өнцгийн синусийн олох
Sqr Тооны квадрат язгуурыг олох
Str Тоог string төрөлд хөрвүүлэх
Timer Хугацааг секунтээр тооцох
Trim String төрлийн өгөгдлийн хоосон зайг шахах
Val String төрлийн өгөгдлийн тоон утга
String функцүүд
• Visual Basic String төрлийн хувьсагчтай голчлон ажилладаг учир Visual Basic-ын String
функцүүд маш чухал хэрэглэглэхүүн болдог байна. Label control-ын ба Caption property
ба textbox-ын Text property-ууд нь string төрлийн хувьсагчид байдаг учир та тогтмол
хэмжигдэхүүнээр үр дүнгээ бодож гаргахийн тулд string төрлийг тоон төрөлд
хөрвүүлэх шаардлагатай болдог.
• String төрлийн хувьсах хэмжигдэхүүнийг тоон хувьсагчид хөрвүүлэхдээ Val функцыг
ашиглана. Жишээлбэл txtExample text property-г дараах байдлаар хувиргана. to a number,
use:
Val(txtExample.Text)
• Тоон хувьсах хэмжигдэхүүнийг string төрөлд хувиргах-2 зам бий. Str Функц нь
хөрвүүлэлтийн үр дүнг дэлгэцэнд гаргаж гаргаж үзүүлэх тохиромжгүй байдаг. Учир нь
тоон оронгийн алдаа байдаг. Жишээлбэл: text box control-д MyNumber гэсэн тоон
өгөгдөл дараах байдлаар,
MyNumber=3.14159 гэж байвал
TxtExample.Text=Str(MyNumber) байдлаар хөрвүүлбэл бүхэл тоон утга гарах юм.
Хэрэв та 10-тын таслалтай гаргая гэвэл Format функцыг хэрэглэнэ. Энэ функц нь 2
аргументтэй бөгөөд эхнийх нь тухайн тоо, 2 дах нь дэлгэцэнд тухай тооны хараглах
хэлбэрийг заана. Жишээлбэл:
MyNumber=3.14159 гэж байвал
TxtExample.Text=Format(MyNumber, “#,##”)
• String xувьсагчийн дэд хэсгийг ялган авах танд олон удаа тохиолдоно. Ийм зориулалттай
3 функц байдаг. Тэмдэгтүүдийн зүүн талаас хэд хэдэн тэмдэгтүүдийг ялган авахын тулд
Left функцыг хэрэглэнэ. Жишээлбэл:
MyString=” Visual Basic is fun!”
LeftString=Left(MyString, 3) нь MyString хувьсагчийн зүүн талаас тэмдэгтийг ялгах
буюу LeftString-ийн утга нь “Vis” болох юм.
• Right функц нь хувьсагчийн баруун талаас ялгах юм.
MyString=” Visual Basic is fun!”
RightString=Right(MyString, 6) -ээс үзвэл RightString нь “s fun!” болно.
• Харин Mid функц нь string хувьсагчийн аль нэг тэмдэгтээс нь хэд хэдэн тэмдэгтийг
ялгаж авна. Дараах жишээнд MyString-ын 3 дахь тэмдэгтээс 6 тэмдэгтийг ялгаж авахыг
үзүүлэв.
MyString=” Visual Basic is fun!”
MidString=Mid(MyString, 3, 6)
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
MidString-ын утга нь “sual B” болох юм.
• String хувьсагчид хичнээн тооны тэмдэгт байгааг Len функц тодорхойлно.
MyString=” Visual Basic is fun!”
LenString=Len(MyString)
LenString -утга нь 20 болно.
• String xувьсагчаас дэд хэсгийг хайхад Instr функцыг хэрэглэнэ. Дараах жишээнд
MyString хувьсагчаас “sic” дэд хэсгийг хайж олохыг үзүүллээ.
MyString=” Visual Basic is fun!”
Location=Instr(3, MyString, “sic”)
Энд “sic” дэд хэсгийг MyString-ын 3 дахь тэмдэгмээс эхлэн хайж Location 10 гэсэн утга
авч байна.
• Дараагийн өргөн хэрэглэгддэг функц нь Asc ба Chr функцүүд юм. Asc функц нь
тэмдэгтйин ASCII кодыг илэрхийлдэг бөгөөд Chr функц нь тоон утгат харгалзах
тэмдэгтийг олно. Жишээлбэл:
Asc(“A”)
нь 65 гэсэн утга авах ба Chr(48)-ын утга нь“a” байна.
Rnd (Random Number ) буюу санамсаргүй тоон функц
• Тоглоомын болон сургалтын программ бичихэд Rnd функцыг өргөн хэрэглэдэг. Энэ
функц нь янз бүрийн утга авдаг бөгөөд 1 ба 0 –ийн хооронд утга нь хэлбэлздэг. Visual
Basic-т тохиолдлын функц нь дараах томъёогоор илэрхийлэгдэнэ.
I=Int((Imax-Imin+1)*Rnd)+Imin
• Жишээлбэл:
6 талтай шооны аль нэг талаараа буух тохиолдол нь дараах байдлаар бодогдоно.
NumberSports=Int(6*Rnd)+1
100-аас 200 хүртэл тооноос сонголт хийх тооцоо нь
Number=Int(101*Rnd)+100 болно.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Лекц№ 3. Visual Basic -ын тэмдэгт тогтмол, if , Select Case,
Goto, Do/Loop, statement
Visual Basic–ын нөхцөлт улирдагийн If statement оператор нь юм.
• Xамгийн энгийн хэлбэр нь If/then statement юм. Жишээлбэл:
If Balance – Check < 0 Then Print “You are overdrawn”
Хэрэв Balance – Check -ийн утга нь 0-ээс бага бол “You are overdrawn”гэж хэвлэнэ.
If/Then/End If блок нь олон хувьсагчтай бүтцэд ашиглагдана. Жишээлбэл:
If Balance – Check < 0 Then
Print “You are overdrawn”
Print “Authorities have been notified”
End If
Энэ тохиолдолд хэрэв Balance – Check-ийн утга 0-ээс бага бол 2 мөр мэдээлэл хэвлэгдэнэ.
Харин If/Then/Else/End If блок нь:
If Balance – Check < 0 Then
Print “You are overdrawn”
Print “Authorities have been notified”
Else
Balance=Balance– Check
End If
гэж бичигдсэн байвал (Balance – Check < 0) бол 2 мөр мэдээлэл хэвлэх ба эсрэг
тохиолдолд Balance -ийн утга бодогдоно.
Elself statement нь:
If Balance – Check < 0 Then
Print “You are overdrawn”
Print “Authorities have been notified”
Elself Balance– Check=0 Then
Print “Whew! You barely made it”
Balance=0
Else
Balance=Balance– Check
End If
гэж бичигдсэн бол Balance ба Check–ийн утгууд нь хоорондоо тэнцүү (Elself Balance–
Check=0), тохиолдолд ялгаатай тайлбарыг хэвлэж байна.
Key Trapping – процесс
Программ бичих явцад тэмдэгтийн буюу товч дарсан түлхүүр утгыг авч ашиглах нь өргөн
тохиолддог. Энэ процессыг Visual Basic-т Key Trapping процесс гэж нэрлэдэг.
Key Trapping процесс нь control-д Key Press event процедурыг хэрэглэдэг. Энэ процедур
нь дараах бүтэцтэй байна. (text box-ын нэр нь txt.Text)
Privite Sub txtText_KeyPress(KeyAscii as Interger)
.
End Sub
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Эндээс харахад бид дарагдсан тэмдэгтийн ASCII-ыг ашиглаж байгаа нь процедурын
аргументийн хэсэгт KeyAscii хувьсагчаар дамжин тодорхойлогдож байна. Зарим түлхүүр
үгийн оронд тэмдэгт тогтмолыг ашигладаг.
Доорхи жишээнд txtExample нэртэй text box-ын утга нь 65-аас 90 гэсэн ASCII кодтой
vbKeyA-ээс vbKeyZ гэсэн тэмдэгт тогтмол байвал дуу гаргах Beep комманд ажиллах
юм.
Privite Sub txtExample_KeyPress(KeyAscii as Interger)
If KeyAscii >= vbKeyA And KeyAscii <= vbKeyZ Then
Exit Sub
Else
KeyAscii=0
Beep
End If
End Sub
Select Case – statement
• Select Case statement нь олон тооны тохиолдлоос сонголт хийхэд ашиглагдана.
• Бид If statement -ыг ашиглаж дараах кодыг бичье.
If Age = 5 Then
Catogory = “Five Year Old”
Elself Age>=13 and Age<= 19 Then
Category = “Teenager”
Elself(Age>=20 and Age<=35) Or Age=50 Or (Age>= 60 and Age<=65) Then
Category = “Special Adult”
Elself Age>=65 Then
Category=”Senior Citizen”
Else
Category=”Everyone Else”
End If
Энэ бичлэгийг Select Case ашиглан бичвэл:
Select Case Age
Case 5
Catogory = “Five Year Old”
Case 13 To 19
Category = “Teenager”
Case 20 To 35, 50,60 To 65
Category = “Special Adult”
Case Is > 65
Category=”Senior Citizen”
Case Else
Category=”Everyone Else”
End Select
болох бөгөөд энэ нь маш хялбар байх юм.
GoTo Statement
Өөр нэг удирдлагын оператор нь GoTo Statement юм. энэ операторыг голцуу ямар нэг
алдаанаас тойрч гарах үед хэрэглэнэ. Энд бид
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Label-ыг ашиглана.
• Тухайлбал:
Line 10
Go To Line 10
Программын нөхцөл биелэх үед удирдлага Line 10 шилжинэ.
Do/Loop statement
Зарим давталтууд дахин хэрэглэгдэх үед уул statement-ыг хэрэглэнэ.
Do While/Loop Жишээ:
Counter = 1
Do While Counter <= 100
Debug.Print Counter
Counter=Counter+1
Loop
Энэ тохиолдолд Counter хувьсагчийн утга 1000 хүртэл давтагдана.
Do Until/Loop Жишээ:
Counter = 1
Do Until Counter <= 100
Debug.Print Counter
Counter=Counter+1
Loop
Энэ тохиолдолд хувьсагчийн утга 1000-аас хэтрэхгүй байхад дараах үйлдлүүд
биелэгдэнэ.
Do/Loop While Жишээ:
Sum=1
Do
Debug.Print Sum
Sum=Sum+3
Loop While Sum <= 50
Sum хувьсагчийн утга 50-тай тэнцүү, эсвэл бага байхад дараах үйлдлүүд нь биелэнэ.
Do/Loop Unti Жишээ:
Sum=1
Do
Debug.Print Sum
Sum=Sum+3
Loop Until Sum <= 50
Sum xувьсагчийн утга 50-аас их байх хүртэл биелэнэ.
Энэ statement-ыг маш бага хэрэглэх нь тохиромжтой байдаг. Үйлдлыг зогсоохын тулд
Ctrl+Break товчлуурыг ашигладаг.
Энэ statement-д циклээс гарахын (шилжихийн) тулд Exit Do операторыг хэрэглэдэг.
Visual Basic - т тоолуурыг хэрэглэх нь.
Тоолуурын функцэд For/Next statement-ыг хэрэглэнэ.
Жишээ нь:
For I = 1 to 50 Step 2
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
A=I*2
Debug.Print A
Next I
Энд I хувьсагч нь 1-ээс 2 гэсэн алхамтайгаар өсч 50 хүртэл утга авч дараах үйлдлүүд нь
биелэх болно. Хэрэв та энэ циклээс гарах шаардлагатай бол Exit For statement -ыг ашиглах
болно.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Лекц№4
Visual Basic Toolbox, Arrays, Control -буюу олонлогууд
Message Box-ын тухай
Visual Basic–ын нэг чухал функц нь Message Box юм. Энэ нь command button, icon
ашиглан тайлбар мэдээллийг(message box) дэлгэцэнд харуулдаг бөгөөд хэрэглэгч button
ашиглан хариултыг өгнө.
Message Box-ын statement хэлбэр нь буцах хариу нэхддэггүй дараах хэлбэртэй байна.
MsgBox Message, Type, Title
Энд :
Message дэлгэц дээрх текст тайлбар мэдээлэл
Type message box -ын хэлбэр
Title message box -ын гарчиг
Message Box-ын function хэлбэр нь дараах хэлбэртэй байх ба буцах утга нь бүхэл тоо
байна. Жишээ нь:
Dim Responce as Integer
Responce=MsgBox(Message, , Title)
• Type argument нь 4 утгаас хамаарч тодорхой үйлдлээр тайлбар мэдээллийг өгдөг.
• Type аргументын 1-р утга нь button-ууд дэлгэцэнд яаж харагдах утгыг илэрхийлнэ.
Утга Тайлбар Тэмдэгт тогтмол
0 зөвхөн OK button vbOkOnly
1 OK/Cancel button-ууд vbOkCancel
2 Abort/Retry/Ignore button-
ууд
vbAbortRetryIgnore
3 Yes/No/Cancel button-ууд vbYesNoCancel
4 Yes/No button-ууд vbYesNo
5 Retry/Cancel button-ууд vbRetryCancel
Type аргументын 2 дахь утга тайлбар мэдээлэлд ямар зориулалтын icon харагдахыг
тодорхойлно.
Утга Тайлбар Тэмдэгт тогтмол
0 Icon xэрэглэхгүй (None)
16 Нөхцлийн icon vbCritical
32 Асуултын тэмдэг vbQuestion
48 Анхаарлын тэмдэг vbExclamation
64 Мэдээллийн icon vbInformation
Type аргументын 3 дахь утга нь чухам аль button нь default байхыг (ө.х Enter-ыг дараах
default утга авсан button-ыг дарах 2 адилхан):
Утга Тайлбар Тэмдэгт тогтмол
0 Эхний button default vbDefaultButton1
256 2 дахь button default vbDefaultButton2
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
512 3дахь button default vbDefaultButton3
Type аргументын 4 дэхь утга нь modality-г харуулна:
Утга Тайлбар Тэмдэгт тогтмол
0 Xэрэглээний Modal vbApplicationModal
4096 Cистемийн Modal vbSystemModal
• Message Box-ын жишээ:
MsgBox “This is an example of a message box”, vbOkCancel + vbInformation, “Message Box
Example”
Method объект
• Өмнөх ажлуудад бид объект бүрд property event процедурууд байдгийг үзсэн билээ.
Гурав дахь объект нь method юм. Method нь объектйин зарим шинж чанарыг харуулсан
процедур эсвэл функц юм.
• Бид toolbox-ыг үзэж танилцах үедээ тэдгээрийн объектийн methods-тэй ажиллах болно.
Method -ын хэлбэр нь :
ObjectName.Method(Аргумент)
байна.
Form Объект
• Form нь хэрэглэгчийн өөрөө зурж боловсруулсан интерфейс юм. Энэ нь Visual Basic-ын
application-ны гол хэсэг болно.
• Form-ын Property-үүд :
Appearance Байр, байдал
BackColor Form-ын фoны өнгө
BorderStyle Border-ын хэлбэр
Caption Form-ын цонхны гарчиг, нэр
Enabled Xэрэв Form-д дарагдсан байвал True, үгүй
бол Falseутга авна.
Font Фонтын хэлбэр, хэмжээ, төрөл
ForeColor Текст, графикийн өнгө
Picture Form дээрхи bitmap зургийн байрлал
Visible Xэрэв form нууцлагдсан байвал False утга
авна.
• Form-ын Event-үүд :
Activite Form_Activite event нь идэвхтэй цонхтой ажиллах
үед илэрнэ.
Click Form_Click event нь хэрэглэгч form дээр нэг удаа
дарах үед илэрнэ.
DblClick Form_DblClick event нь хэрэглэгч form дээр 2
удаа дарах үед илэрнэ.
Load Form_Load event нь form ачаалагдах үед
тохиолдоно.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
• Form-ын Method-ууд :
Cls Form дээрх текст графикуудыг устгана. Харин объектыг
устгаж чадахгүй.
Print Form дээрх текст, string-ыг хэвлэнэ.
Жишээнүүд :
frmExample.Cls ‘ form-ыг усгаж байна.
frmExample.Print “ form дээрх мэдээллийг хэвлэж байна.”
Command Button товчлуур.
• Өмнөх хичээлүүд дээр command button-ны тухай авч үзсэн бөгөөд нэлээд өргөн
хэрэглэгддэг control юм.
• Command button -ны Property-ууд :
Appearance Байр, байдал
Cancel Тухайн button-ыг Esc товчтой хамт дарагдсан тохиолдол
Caption Button дээрх String утга
Default Tухайн button-ыг Enter товчтой хамт дарагдсан тохиолдол
Font Фонтын төрөл, хэлбэр, хэмжээ
• Command button Event-үүд :
Click Event нь тухайн button сонгогдсон үед ажиллана.
Label Box-ын тухай
• Label Box нь хэрэглэгч шууд хандаж засч үл болох дэлгэцэнд харагдах текстийн control
юм. Өмнө нь нэлээд хэдэн жишээнүүд дээр Label Box нь ажиллах явцад л өөрчлөгллөг
болохыг бид мэднэ.
• Label Box-ын Property - үүд :
Alignment Caption, border-ыг зэрэгцүүлэх.
Apearance Байр байдал
AutoSize Хэрэв True байвал caption property нь текстын
хэмжээтэй тохирч байх, False бол текст засах
шаардлагатай болно. BorderStyle Border-ын хэлбэр.
Caption Button дээрх String утга.
Font Фонтын төрөл, хэлбэр, хэмжээ
WordWrap AutoSize property-тэй холбоотой ажиллана. Хэрэв
AutoSize=True бол WordWrap=True бөгөөд текст боох
боломжтой болох ба Caption нь босоо байрлалтай
байна. Харин AutoSize=True, WordWrap=False байвал
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
текст боох боломжгүй ба Caption нь хэвтээ байрлалтай
байна. Хэрэв AutoSize=False байвал текст боох
боломжгүй ба WordWrap утгагүй байна.
• Label-ын Event-үүд :
Click Event нь хэрэглэгчийн label box дээр нэг удаа дарахад идэвхжинэ.
DblClick Event нь хэрэглэгчийн label box дээр нэг удаа дарахад идэвхжинэ.
Text Box -ын тухай
• Text Box нь загварчлах горимд мэдээллийг дэлгэц дээр бичихэд, хэрэглэгчид ажиллаж
байхад мэдээллийг оруулахад ашигладаг.
• Text Box-ын Property-ууд :
Appearance Байр байдал
BorderStyle Border-ын хэлбэр
Font Фонтын төрөл, хэлбэр, хэмжээ
MaxLength Дэлгэц дээрх тэмдэгтийн уртын хязгаар
MultiLine Text Box дэлгэцэнд давхар шугам харуулах уу эсвэл дан
шугам харуулах уу?
PasswordChar Текстийг ганцхан тэмдэгт нэртэйгээр нууцлах.
ScrollBars Scroll bar-ын хэлбэрүүд
SelLength Ажиллаж байх үед сонгогдсон текстын урт
SelStart Ажиллаж байх үед сонгогдсон текстын эхлэх позиц
SelText Төрлийн илэрхйиллийг ачааллах
Text Дэлгэцэнд харагдаж буй текст.
• Text Box-ын Event-үүд :
Change Text property өөрчлөгдөх бүрт хэрэглэгдэнэ
LostFocus Xэрэглэгч text box-оос хөндийрөх үед ашиглагдана.
KeyPress Ямар нэгэн түлхүүр утга ашиглах үед тухайн товч
дарагдсан тохиолдолд хэрэглэгдэнэ.
• Text Box -ын Method-ууд :
SetFocus Курсорыг зохих text box-т байрлах үед ажиллана.
Check Box-ын тухай
• Check Box нь хэсэг, бүлэг өгөгдлөөс сонголт хийх боломжийг хэрэглэгчид өгнө.
• Check Box-ын Property-үүд :
Caption Дэлгэц дээрх текстын нэр
Font Фонтын төрөл, хэлбэр, хэмжээ
Value Xэрэв unchecked утгатай бол (0, vbUnchecked), ба бол
(1, vbChecked), gray out бол (2, vbGrayed) утга авна.
• Check Box-ын Event-үүд :
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Click Tухайн сонголт хийгдсэн байхад VB автоматаар value
property-ын утгыг өөрчлөнө.
Option Button(товчлуур)
• Option Button-ууд хэсэг бүлэг юмнаас зөвхөн нэгийг сонгох тусгай сонголтыг хийхэд
ашигладаг.
• Option Button-ны Property - үүд :
Caption Дэлгэц дээрх текстын нэр
Font Фонтын төрөл, хэлбэр хэмжээ
Value Үнэн (True) эсвэл Xудал (False)утга авна. Хэсэг бүлгийн
зөвхөн нэг option button нь утга авна.
• Option Button-ны Event-үүд :
Click Button -дарагдсан тохиолдолд ажиллах ба Value property-ын
утга өөрчлөгдөнө.
Arrays буюу олонлогууд.
• Одоог хүртэл бид өөрийн гэсэн нэр бүхий ердийн хувьсагч хэмжигдэхүүнүүдтэй ажиллаж
ирлээ. Visual Basic нь олон хувьсагчтай хувьсагчтай хэмжигдэхүүнүүдтэй ажиллах
чадвартай. Энд бид нэг хэмжээстэй олон гишүүнтэй олонлогтой ажиллах тухай авч үзье.
• Олонлог нь ердийн хувьсах хэмжигдэхүүнүүдийн адилаар тодорхойлогдоно. Жишээлбэл
‘Items’ нэртэй нэг хэмжээстэй 9 гишүүнтэй бүхэл тоон олонлогийг процедурт
тодорхойлбол :
Dim Items(9) as Integer гэж бичнэ.
Хэрэв хувьсагчийн утгууд нь өмнө нь процедурт хэрэглэглэж байсан бол Static гэсэн
түлхүүр үгийг авч дараах байдлаар тодорхойлогно.
Static Items(9) as Integer гэж бичнэ.
Form эсвэл module түвшинд Code window цонхонд хувьсагчлыг зарлах хэсэгт
Dim Items(9) as Integer болно.
Харин ерөнхий хувьсагчаар :
Global Items(9) as Integer гэж бичнэ.
• Олонлогийн index нь 0-ээс эхлэн зарлагдсан утга хүртэл гишүүдтэй бөгөөд бидний
жишээнд нэртэй 10 элементтэй Item(0)-оос Item(9)хүртэл гишүүд байх юм… Item(5)нь 7-
той тэнцүү гэвэл :
Item(5)=7
гэж бичиж өгнө.
Control-уудын олонлогууд
• Заримдаа control-уудын олонлогийг application-д байгуулж өгөх нь чухал бч
холбогдолтой байдаг. Тухайлбал option button нь бүлэг хэсгүүд дээр ажилладаг учраас
тийм шаардлага зайлшгүй.
Control-уудын олонлогийн байгуулах 2 арга бий. Үүнд :
1. Зөвхөн нэгд нь харгалзах control-ыг байгуулаад шаардагдах property-нүүдийг тавиад
VB едиторыг ашиглан хуулах.
2. Ижил нэртэй бүх control-уудыг байгуулах
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
• Control-уудын олонлогууд нь index-д харгалзах нэр авдаг. Жишээлбэл : lblExample нэртэй
label box-ын 6 дахь элементийн Caption Property-ийг :
lblExample(6).Caption=”This is an example”
байх юм.
Frame-ийн тухай
• Бид option button хоёулаа бүлэгт ажилладаг тухай үзсэн билээ. Frame нь бүлэг хэсгийн
control-ыг form дээр холбож өгөх үүргийг гүйцэтгэнэ. Харин option button ажиллаж байх
тохиолдолд frame нь ямар button-д нөлөөлж байгааг илэрхийлдэг.
• Бүлэг дэхь control-уудыг байгуулахын өмнө frame-ыг зурж өгдөг. Дараа нь frame -ын
дотор control-уудыг байгуулна.
• Frame -ын Property-үүд :
Caption Frame-ын толгой хэсгийн мэдээлэл
Font Фонтын төрөл, хэлбэр, хэмжээ
List Box -ын тухай.
• List Box нь аливаа зүйлсийн(элементийн) жагсаалтаас хэрэглэгч нэг эсвэл, хэсгийг
сонголт хийж , хэрэв тухайн зүйлийн(элементийн) тоо нэмэгдэж 190 байвал дэлгэц дээр
харагдаж scrollbar нь автоматаар хөдөлгөөнд шилждэг.
• List Box - ын Property -үүд :
Appearance Байр, байдал
List Жагсаалтын элементүдийн олонлог
ListCount Жагсаалтийн элементийн тоо
ListIndex
Жагсаалтийн хамгийн олон соногогдсон
элементын тоо. Хэрэв тийм элемент байхгүй
бол ListIndex = -1.
MultiSelect
Жагсаалтаас олон тооны сонголт хийгдсэн
control-ууд. Хэрэв ийм сонголт байхгүй бол 2
гэсэн утга авна
Selected
True эсвэл False утга авдаг жагсаалтаас сонголт
хийгдсэн эсэхийг тооцох
Sorted
Жагсаалтийн элементүүд “Ascii” кодоор
эрэмблэгдсэн эсэх. Эрэмблэгдсэн бол True утга
авна
Text Сонгогдсон элементйн текст
• List Box - ын Event - үүд :
Click Event нь жагсаалтаас нэг дарж элемент сонгох үед ажиллана.
DblClick Event нь жагсаалтаас 2 дарж элемент сонгох үед ажиллана.
• List Box -ын Method -ууд :
AddItem Жагсаалтад элемент нэмнэ.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Clear Жагсаалтын бүх элементүүдийг устгана.
Removeltem Жагсаалтаас элемент хасна.
Жишээ:
List1.AadItem “This is an added item”
List1.Clear
List1.Removeltem 4 ‘ list1 жагсаалтийн 4 дэхь элемент устана.
Combo Box - ын тухай
• Combo Box нь listbox-той төстэй. Ялгаатай тал нь зөвхөн сонгогдсон элементээ дэлгэцэн
дээр харуулдаг.
• Combo Box - ын Property - үүд :
Appearance Байр байдал.
List Жагсаалтын элементүүдийн олонлог.
ListCount Жагсаалтийн эмементийн тоо
ListIndex Жагсаалтаас хамгийн олон сонгогдсон элементийн
тоо.
Хэрэв тийм элемент байхгүй бол ListIndex = -1
Sorted Жагсаалтийн элементүүд ASCII кодоор
эрэмблэгдсэн эсэх Эрэмблэгдсэн бол True утга
авна.
Text Сонгогдсон элементийн текст
Style Combo Box-ын хэлбэр
Style=0, Dropdown combo; Xэрэглэгч сонголтоо
өөрчилж болно.
Style=1, Simple combo; Жагсаалтаас сонголт
хийхгүй.
Style=2, Dropdown list; Хэргэлэгч зөвхөн
жагсаалтаас сонголт хийнэ.
• Combo Box Event -үүд :
Click Event Жагсаалтаас нэг дарж элемент сонгох үед ажиллана.
DblClick Event Жагсаалтаас 2 дарж элемент сонгох үед ажиллана.
• Combo Box -ын Method -ууд :
AddItem Жагсаалтад элемент нэмнэ.
Clear Жагсаалтын бүх элементүүдийг устгана.
RemoveItem Жагсаалтаас элемент хасна.
Жишээ :
IsExample.AadItem “This is an added item”
IsExample.Clear
IsExample.Removeltem 4 ‘IsExample жагсаалтийн 4 дэхь элемент устана.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Лекц№5
Visual Basic Toolbox-ын зарим хэрэгслүүд.
Давхрагуудыг харуулах.
• Энэ бүлэгт бид control-уудын график төрлүүд line tools, shape tools, picture box ба image
box-уудын тухай үзэх бөгөөд давхрагуудыг харуулах талаар ойлголт эзэмших юм.
• Элементүүд нь form дээр заавал нэг давхрага дээр байдаггүй. Үндсэндээ 3 давхрага дээр
байрлана. Бүх мэдээллүүд дээд буюу bottom layer дээр, label box, image box, line tools ба
shape tools-үүд дунд давхрага буюу middle-layer. Эхний давхрага буюу top-layer.
Line Tool буюу шугамын хэрэгслүүд
• Line tool нь шулуун шугамыг янз бүрийн өнгө өргөнтэй байгуулна.
• Line tool -ын property-үүд :
BorderColor Шугамын өнгийг тодорхойлно.
BorderStyle Шугамын хэлбэр, маягийг тодорхойлно.
BorderWidth Шугамын өргөнийг тодорхойлно.
• Line tool -д events, mehod байхгүй.
Shape Tool - Хэлбэр, маягийн хэрэгсэл.
• Shape Tool нь тойрог, зууван дөрвөлжин, гурвалжин зэргийг байгуулна. Янз бүрийн
хэлбэр, өнгө ашиглана.
• Shape Tool -ын Properties-үүд :
BackColor Shape-ын дэвсгэр өнгийг тодорхойлно.
BackStyle Дэвсгэр нь гэрэлтдэг эсвэл бүдэг бадаг аль нь болох
BorderColor Shape -ын хүрээний өнгө.
BorderStyle Shape -ын хүрээний хэлбэр маяг
BorderWidth Shape -ын шугамын өргөн
FillColor Shape -ын дотоод өнгө
FillStyle Shape -ын дотоод хэсгийн хэв маяг
Shape Shape -ын дөрвөлжин, гурвалжин, дугуй, тойрог зэргийн аль
нь болох
Хэвтээ ба босоо Scroll Bar-ууд
• Windows -ын application-д scroll bar-ууд маш өргөн хэрэглэгддэг.
Bottom-layer: form
Middle-layer: label, image,
shape, line
Top-layer: other controls
and objects
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
• Scroll Bar-ын 2 төрөл нь хоёул 3 мужаас тогтоно. end arrow хэсэгт scroll box бага
хэмжээтэй, bar area хэсэгт их хэмжээтэй хөдөлгөөн хийж байна.
• Scroll Bar -ын Property-үүд :
LargeChange Bar area - мужид дарсны дараа өсөлтийн хэмжээ
нэмэгдэх, хасагдах нь Value property-ээс хамаарна.
Max Баруун алсын хэвтээ scroll bar, сүүл хэсгийн босоо scroll
bar-уудын утга value нь –32,768-аас 32,767 хүртэл
хувьсах утга авна.
Min Зүүн алсын хэвтээ scroll bar, эхний хэсгийн босоо scroll
bar-уудын value утга нь –32,768-ааc 32,767хүртэл
хувьсах утга авна.
SmallChange Төгсгөлийн хэсгийн сумын хөдөлгөөнд өсөх хэмжээ нь
Value property-ээс хамаарна.
Value Scroll box-ын байрлалыг заана.
Хэвтээ Scroll Bar-ын Property-үүд :
Босоо Scroll Bar-ын Property-үүд :
• Scroll Bar -ын Event-үүд :
Change Scroll box-ын байрлалыг тооцно.
Scroll Энэ event нь Scroll box-ын үргэлжлэх хөдөлгөөнийг тооцно.
Picture Box - хэрэгсэл.
• Picture Box -нь графикийн мэдээллийг form дээр байгуулахад хэрэглэгдэнэ.
• Picture Box нь form-ын дээд давхрагад үзэгдэнэ.
End arrow
Sroll box (thumb) Bar area
SmallChangeLargeChange
Min Max
LargeChangeSmallChange Value
LargeChange
Max
Value
LargeChange
SmallChange
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
• Picture Box -ын Property-үүд :
AutoSize Xэрэв True бол нь графикт хэмжээгээрээ тохирч байна.
Font Picture box дээр бичигдэх ямар нэг зүйлийн фонтын
хэмжээ, хэв маягийг тодорхойлно.
Picture Picture box дээр зурагдах график файлыг байгуулна.
• Picture box -ын Event-үүд :
Click Picture box нэг удаа сонгогдоход ажиллана.
DblClick Picture box 2 удаа сонгогдоход ажиллана.
• Picture box -ын Method-үүд :
Cls Picture box -ыг устгана.
Print Picture box дээрх мэдээллийг хэвлэнэ.
Жишээ:
picExample.CIs ‘picExample box-ыг устгана.
picExample.Print “a picture box” ‘string текстийг хэвлэнэ.
• Picture box -ын LoadPicture процедур.
Picture box-ын чухал функцүүдийн нэг нь LoadPicture процедур юм. энэ нь Picture box-ыг
ажиллаж байх үед Picture property тавьж өгнө.
Жишээ нь:
picExample.Picture = LoadPicture(“c:pixsample.bmp”)
Энэ комманд нь picExample picture box-т c:pixsample.bmp файлыг ачаалж өгнө.
• Picture box-т ачаалагдах график төрлийн файлын 5 төрөл байна. Үүнд :
Bitmap Пикцелүүдээс тогтсон, .bmp өрөгтгөлтэй дүрсийн
файл.
Icon 32х32 хэмжээтэй зоориулалтын bitmap файл .ico гэсэн
өргөтгөлтэй.
Metafile Тойрог шулуун зэрэг графикийн .wmf өргөтгөлтэй
файл.
JPEG JPEG(Joint Photographic Experts Group) нэртэй 8 ба 24
өнгөтэй
bitmap файл, .jpg өргөтгөлтэй.
GIF GIF (Graphic Interchange Format) нэртэй bitmap файл.
Интертэд өргөн ашиглагддаг. .gif өргөтгөлтэй файл 256
өнгө хэрэглэнэ.
Image Box - ын тухай
• Form дээр графикийн мэдээлэл байгуулах хамгийн энгийн хэрэгсэл. Энэ нь picture box
-той маш адилхан дэлгэц дээр ачаалагдсан зураг засах боломжгүйгээрээ ялгаатай.
• Image Box нь дунд давхрага дээр харагддаг, Stretch property-г ашиглан өргөсөж, багасдаг.
• Image Box -ын Property-үүд :
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Picture Image Box дээр графикийн файл байгуулна.
Stretch Хэрэв False утгатай бол Image Box графикт тохирох
хэмжээгээр ихсэж, багасна. True ,бол график нь тухайн
муждаа хэмжээгээ өөрчилнө.
• Image Box -ын Event-үүд :
Click Image Box -ыг нэг даралтаар сонгох үед ажиллана.
DblClick Image Box -ыг хоёр даралтаар сонгох үед ажиллана.
LoadPicture function-ыг ашиглах бөгөөд bitmap(.bmp), icon(.ico), metafile(.wmf), GIF file
(.gif), ба JPEG files (.jpeg) файлуудыг мөн энэ процедурын тусламжтайгаар ачаална.
Жишээ: Picture ба Image Box –ууд
1. Шинээр project нээе. Form дээр нэг Picture Box ба нэг Image Box байгуулъя.
2. Picture property-үүдэд адилхан Picture ба Image Box байгууъя. Хэрэв таны Visual Basic-ын
графикийн файлууд анхны байдлаараа суусан бол (install -хийгдсэн бол) bitmap файлууд
bitmap folder-т, icon файлууд icon folder-т, meta файлууд meta folder-т тус тус байна.
3. Хоёр box-уудын хэмжээг ихэсгэж багасгая. Дараа нь тэдгээрийн давхрагийг сонирхож нэг
box-ын эхлэл дээр нөгөөг байгуулъя. Image Box -ын Stretch property-ыг өөрчилж үзье.
Ямар үр дүн гарч байгааг сонирхцгооё ?
Drive List Box -ын тухай
• Drive List Box нь хэрэглэгч ажиллаж байх үе компьютерийн зөөгчөөс чухам алийг нь
ашиглахыг combo box-ын жагсаалтаас сонгох боломжийг хэрэглэгчид олгодог.
• Drive List Box -ын Property -үүд :
Drive Cонгосон зөөгчийн нэр.
• Drive List Box -ын Event -үүд :
Change Cонгосон зөөгчийг өөрчлөх тохиолдолд ажиллана.
Directory List Box -ын тухай
• Directory List Box нь салаалсан бүтэцтэй дискний ба дэд сангуудын жагсаалтыг дэлгэц
дээр харуулна. Сангуудын жагсаалт нь List Box -т тусгагдана.
• Directory List Box-н property-үүд :
Path Сангуудын замыг(path) зааж өгнө.
• Directory List Box -ын Property -үүд :
Change Cангийн сонголт өөрчлөгдөхөд ажиллана.
File List Box -ын тухай
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
• File List Box нь ажиллаж байх үед сангуудын доторх файлуудын жагсаалтаас сонголт
хийхэд ашиглагдана. Та файлуудын төрлийг сонгох боломжтой.
• File List Box -ын Property -үүд :
FileName Cонгосон файлын нэр
ListCount Жагсаалтад буй файлуудын тоо
List List box-т буй файлын нэрүүдийн олонлог
MultiSelec
t
List box -оос олон тооны файлуудыг сонг ох
Path Tухайн сангийн замыг тодорхойлно.
Pattern * ба ? тэмдэгтийг ашиглан ижил төрлийн файлыг
соногох.
• File List Box -ын Event-үүд :
Click Файлын нэрийг хоёр дарж сонгоход ашиглана.
PathChange List box буй файлуудын сангийн зам өөрчлөгдөхөд
ажиллана.
Drive, Directory ба File List Box -үүдийг зэрэгцүүлэн ажиллуулах
• Drive, Directory ба File List Box -ууд нь файлын нэрийг тодорхойлоход дандаа хамт
хэрэглэгддэг.
• Тухайн зөөгчийг солих үед (Drive box Change event), та сангуудын замыг зааж өгөх
хэрэгтэй болдог. Жишээлбэл: Хэрэв drvExample нэртэй зөөгч дээрх dirExample directory
box -ын замыг :
dirExample.Path = drvExample.Drive гэж зааж өгнө.
• Хэрэв сангуудын нэр өөрчлөгдвөл (directory box Change event), та filExample нэртэй file
box -ын хувьд дараах кодыг бичнэ.
filExample.Path = dirExample.Path
• Файлын замыг заахдаа backslash () тэмдэгтийг ашиглана.
• Жишээлбэл:
Dim YourFile as String
If Right(filExample.Path, 1) = “” Then
YourFile = filExample.Path + filExample.FaleName
Else
YourFile = filExample.Path + ”” + filExample.FaleName
End If
imgExample.Picture = LoadPicture(YourFile)
Common Dialog Box хэрэгсэл
• Бид файлд хандаж ажилладаг drive, directory ба file name list box-уудыг үзсэн билээ.
Харин бид одоо файлтай шууд хандан ажилладаг Windows орчны хэрэглээний 2
application-ыг авч үзье. Файлыг нээx Open File, хадгалах Save File үйлдийг гүйцэтгэдэг
dialog box-той танилцъя.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
• Visual Basic-т Windows орчны хэрэглээний дээрх үүргийг хийх command dialog box
нэртэй Open ба Save As dialog box-ууд ашигладаг.
• Энэ control нь Visual Basic-ын toolbox-т байхгүй бол та нэмж энэ toolbox-ыг оруулах
хэрэгтэй.Үүний тулд Project цэсийн Components-г сонгоод жагсаалтаас Microsoft
Common Dialog Control-ыг авч OK дарна уу.
• Энэ Common Dialog хэрэгсэл нь form дээр үл үзэгдэх байдлаар үндсэн 5 Show’ methods
ашиглан ажилладаг. Үүнд :
Method Common Dialog Box
ShowOpen Open dialog box
ShowSave Save dialog box
ShowColor Color dialog box
ShowFont Font dialog box
ShowPrinter Printer dialog box
• cdlExample нэртэй common dialog Open box нь :
cdlExample.ShowOpen гэж бичигдэнэ.
Open Common Dialog Box -ын тухай
• Open Common Dialog Box нь хэрэглэгч ямар нэгэн файлын нэрийг өгч нээх ба ShowOpen
Method-ыг ашиглана. Жмшээлбэл:
• Open Dialog Box -ын Property -үүд:
Cancel error Xэрэв Cancel button сонгогдвол алдаа өгөх
бөгөөд True утга авна.
DialogTitle Open Dialog Box -ын нэр
FileName Hээх файлын нэр
Filter List box дээр файлуудыг шүүж харуулна.
Жишээлбэл:
Bitmap(*.bmp), icon(*.ico), metafile(*.wfm),
GIF (*.gif), JPEG(*.jpg) байдалтай шүүнэ.
FilterIndex Ямар төрлийн файл сонгож байгааг заана.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Хэрэв бол
гэсэн утга авна.
Flags Open Dialog Box -ын ялгах утга
Save As Common Dialog Box -ын тухай
• Save As Common Dialog Box нь файлд нэр өгөх хадгалах үүрэг гүйцэтгэнэ. Энд ShowSave
method хэрэглэнэ . Тухайлбал:
• Save As Dialog Box -ын Property -үүд :
CancelError Xэрэв Cancel button сонгогдвол алдаа өгөх бөгөөд
True
утга авна.
DefaultExt Хэрэв файлыг өргөтгөлөөр нь сонголт хийх бол
өргөтгөлийг зааж өгнө.
DialogTitle Open dialog box -ын нэр
FileName Hээх файлын нэр
Filter List box дээр файлуудыг шүүж харуулна.
Жишээлбэл: Bitmap(*.bmp), icon(*.ico),
metafile(*.wfm), GIF (*.gif),JPEG(*.jpg) байдалтай
шүүнэ.
FilterIndex Ямар төрлийн файл сонгож байгааг заана. Хэрэв
bitmap
бол 1 гэсэн утга авна.
Flags Open dialog box -ын ялгах утга хавсралт 2-оос үзнэ
үү
Save As Dialog Box -ын жишээ.
1. Энд Open example -д зарим засвар хийхэд хангалттай. Үүнд :
DialogTitle property-д common dialog control -ын нэрийг “Save As Example” ба DefaultExt
property -д мөн “bmp”гэж заая.
2. cmdDisplay_Click процедурын нэрийг ShowSave гэж өөрчилье
3. QExampleSave нэртэйгээр LearnVB6VB CodeClass 4 folder-т хадгалъя.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Лекц№6
Visual Basic–ын график ба түүний хөдөлгөөн.
Энэ бүлэгт бид Visual Basic -ын график горим зураг дүрсийг хөдөлгөөнд оруулах
тухай авч үзэх болно.
Үүнд :
• Picture Box-ыг олонлогийн ашиглан зургийг хөдөлгөөнд оруулах.
• Visual Basic -т бусад зургийн хэрэгслийг ашиглан график дүрслэлийг зурах, зохиох
• Clipboard, Scanner гэх мэт эх үүсвэрүүдээс зураг дүрсийг оруулж, нэгтгэх
График болон зургийн хөдөлгөөн нь маш өргөн хэрэглэгддэг. Энэ нь image, дүрсийг
ашиглаx, тэдгээрийг засах өөрчлөх, хэрэглэгчийн интерфейсийг сайжруулах чухал хэрэгсэл
болдог. Microsoft -ын Windows 95, NT-д зургийн хөдөлгөөний дэс дарааллыг өргөн
ашигласан байдаг. Тухайлбал файд хуулах дискийг шалгах гэх мэт. Бусад хэрэглээний
программууд ч гэсэн зургийн хөдөлгөөнийг өргөн ашигладаг. Жишээ нь Nortoon AntiVirus
программд X-туяаг ашиглан файлууд руу дэс дараалан хандаж вирусын хайлт хийсэн байдаг.
үүнийг дараах зурагт үзүүлэв.
Image байгуулан тэдгээрийн харагдах шинж чанар нь false утгатай байх ба дараа нь зургийн
хөдөлгөөн дэлгэцэнд харагдах болно. үүний дараа дүрсүүдийн төрөл нь байгуулагдах бөгөөд
энэ нь үл харагдах горимд байдаг. Доорх жишээнд-
Тэмдэглэх нь:
Control array анхны control-ыг үүсгэсний дараа copy, paste коммандуудыг ашиглан дараах
control-уудыг дэс дараалан үүсгэдэг. Доорх жишээнд утаснуудын зургийг Paint Shop Pro-д
text tool ашиглан байгуулжээ. Visual Basic-ыг эхлүүлж хоосон picture box-ын control array-ыг
байгуулж графикийн файлуудыг тэдгээрт суулгаж өгөх ба дараа нь 2 label box-ыг “bring”
нэртэйгээр, 2 timer control-ыг хугацаа хэмжих зориулалтаар хийж өгье. Үүнийг нэг хугацаа
хэмжигч нь зургийн хөдөлгөөний дэс дарааллын хурдыг хянах ба нөгөө хугацаа хэмжигч нь
2 хаягийг хянах юм. доорх зурагт интерфейсийг төрлөөр нь харуулав.
Тэмдэглэх нь: Зургийн хөдөлгөөнд ашигласан дүрс, image нь form дээр тал талаасаа харагдах
боломжгүй байдаг.
Аль нэг timer дээр байрлах зургийн хөдөлгөөн нь доорх кодоор хийгдэнэ. Үүнд :
:
Private Sub trmAnimate_Timer()
Static PhoneNo As Integer
ImgAnimation.Picture = imgStill(PhoneNo).Picture
PhoneNo = PhoneNo +1
If PhoneNo = 8 Then PhoneNo = 0
End Sub
Уг хугацааны интерваль үнэхээр өндөр байдаг. (ойроцоогоор 200).
Өөрөөр хэлбэл value-ын утгаас хамаарч туршилтын үр ашиг нь харагдана.
PhoneNo хувьсагч нь Static гэж зарлагдсан учир бусад нь түүний утгийг авч чадахгүй ба
цаашилбал цаг тутамд нь дохио өгч байдаг.
Хувьсах хэмжигдэхүүнүүдийн бүрэлдэхүүн нь хувьсагчийн утгыг control -д ашиглаж чадах
ба дүрс нь зургийн хөдөлгөөн рүү дарааллаараа шилждэг.
Нөгөө timer нь 2 хаягийн (lblBring1, lblBring2) үзүүлэлтийг нууцлахад ашиглагдана.
Хугацааны интервал 1200 орчим харьцангуй удаан байна.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Иймээс хаяг бүр нь хангалттай урт хугацаанд харагдана.
Private Sub tmrText_Timer()
If lblBring2.Visible Then
lblBring2.Visible = False
lblBring1.Visible = True
Else
lblBring1.Visible = False
lblBring2.Visible = True
End If
End Sub
1. Зургийн хөдөлгөөн нь picture box -ын байрлалыг солиход идэвхтэй байдлаа хадгална.
Үүнийг хийхийн тулд timer -т нэг шулуун нэмж picture box -ын зүүн ба дээд properties
-үүдийг солиход зургийн хөдөлгөөн нь бодит байдлыг харуулна. Энэ ашигтай үзэгдлийг
ANIMATE.ZIP application-г ажиллуулж харж болно.
2. Зураг дүрс байгуулах ба тэдгээрийг хөдөлгөөнд оруулах зарим жишээнүүдийн
дарааллыг доор үзүүлбэл :
• Дохионы гэрэл асах
• Харилцан ярианы зурагт кино, 2 хүний хоорондын яриа
• Нэг савнаас нөгөө савруу шингэн зүйл хийж дүүргэх
• Хэн нэгэн шилээр юм уух
• Цас эсвэл бороо орох
3. Туршлагаас үзэхэд ихэнх зураг дүрсийн цуглуулга нь Paint Shop Pro гэх мэт зургийн
программын хэрэгсэл дээр хийгдэж боловсруулагддаг. Windows -ын зургийн дэлгэцийг
Clipboard-д ‘Print Screen’ button-ыг дарж хуулах ба Paint Shop Pro-д хөрвүүлэхдээ ‘Edit’
цэсийн ‘Paste’-ыг сонгоно. Үүний нэг хэрэглээ бол дэлгэцийн дүрсийг компьютерт
хадгалах, тэдгээрт тайлбар хийх, multimedia online help системийг байгуулах зэрэг
болно.
Өөрөөр хэлбэл та бүгдэд нь тайлбар хийхийг хүсэхгүй бол зөвхөн дүрсийн хувьд мэдээллийг
санах байгууламжид шилжүүлэх ба дараа нь зарим хаягийг өөрийн хүсэж буй хэсэг дээр
хэлийг ч байгуулж болно. Дараа нь хаягуудийн transparent-ыг BackStyle-ээр хийж caption-г
зөөнө. Энэ хаягийн хувьд үр ашигтай боловч харах боломжгүй. Гэвч урдынх шигээ үр дүнг
хүлээн авч чадна. Харин тайлбар хийсэн тохиолдолд хаяг нэмж lblAnnotation -ны нэрийг
сольж болно. Энэ тохиолдолд MouseMove event нь lblAnnotation.Caption = “Resize Handle”
гэж бичигдэнэ. Учир MouseMove нь урд нь ашиглагдсан байдаг ба хэрэглээ нь бүх
хэрэглэгчийн хувьд зургийн шаардлагатай хэсгийг тодорхойлох ба тайлбарын label caption нь
автоматаар засагдана.
Бичгийн цаасны хэмжээтэй фото зургуудыг оруулж ирэхэд PC Scanner-ийг ашигладаг.
Тухайлбал олон фото зургууд ба фонтууд нь (clip-art-уудын сан) CD-ROM-д хадгалагддаг
бөгөөд тэндээс фото зураг фонтуудыг ашиглах нь элбэг тохиолддог.
Зөвлөх нь: Xамгийн өндөр шаардлагатай дүрс зураг нь үргэлж шаардлагатай бөгөөд
тэдгээтийг Visual Basic-т ашиглах бүрэн болoмжтой боловч тэдгээр нь зарим саад учирах
шалтгаан нь болдог.
Ихэнх Scanner -үүд pixel-ийг хэмждэг бөгөөд үүнийг зургийн дэлгэцэнд харагдах хэмжээг
тооцоход ашиглана.
Тэмдэглэх нь: Янз бүрийн хэлбэртэй өөр өөр графикуудыг image нь өөртөө агуулж чадах
боловч зарим нь бусдаасаа илүү үр дүнтэй харагддаг. Дээрх зураг нь GIF өргөтгөлтэй ба 36k-
аас илүү багтаамжтай дискэнд хадгалагдах шаардлагатай юм. Xэдий тийм боловч GIF
өрөгөтгөлтэй дүрс нь илүү үр дүнтэй харагддаг.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Лекц№7
Visual Basic–ын Мэдээллийн сан
• Энэ бүлэгт бид мэдээллийн баазын тухай ойлголт, түүнийг хэрхэн яаж хэрэглэх, Visual
Basic-т мэдээллийн сантай ажиллах зарчим, арга, техник зэргийг үзэх болно.
Мэдээллийн сан хичээлийн агуулга
⇒ Microsoft Visual Basic-т мэдээллийн сангийн интерфейс, программын хэрэгслүүдийг
хэрэглэсний ашигтай тал.
⇒ Мэдээллийн сангийн бүтэц, технологи, мэдээллийн санг байгуулах
⇒ Visual Basic-ын DAO (data access object) control-ыг мэдээллийн сантай яаж холбох тухай
⇒ ADO (ActiveX data object) data control-ыг мэдээллийн сантай яаж холбох тухай
⇒ Visual Basic-ын data bound control
⇒ SQL (Structure Query Language)-ыг ашиглан мэдээллийн сангийн query байгуулах
⇒ Mэдээллийн сангийн хайх техникийн тухай
⇒ Learn how to use the Visual Basic Data Manager to creat a database
⇒ Learn database management techniques
⇒ Learn to creat and produce database reports
⇒ Learn how to distribute a Visual Basic database application
⇒ Understand connection to remote databases
⇒ Introduce multiple-user and database security concepts
Хичээлийн бэлтгэл ажил
• Visual Basic-ын Mэдээллийн сантай ажиллахад DAO (data access object) control ба ADO
(ActiveX data object) data control-ууд ашиглагдана. ADO control нь зөвхөн Visual Basic6–д
хэрэглэгддэг байна.
Мэдээлийн сан гэж юу вэ ?
• Мэдээллийн сан нь мэдээллийн цуглуулга юм. эдгээр мэдээллүүд нь тодорхой нарийн
бүтэцтэй байх бөгөөд бид энэ бүтцийг ашиглан мэдээлэлтэй харьцах, засварлах зэрэг
үйлдлийг гүйцэтгэдэг.
• Ямарч мэдээллийн сан нь хэрэглэгч мэдээлэл хоорондын интерфейс хийдэг. Энэ үүргийг
database management system (DBMS)буюу Мэдээллийн санг удирдах систем гүйдэтгэнэ.
• DBMS-ийн гүйцэтгэх үүрэг нь хялбархан. Мэдээллийн сангийн дараах үйл ажиллагааг
гүйцэтгэдэг.
Үүнд :
1. Өгөгдлийг харах
2. Зарим нөхцөл хангасан өгөгдлийг хайх
3. Өгөгдлийг засварлах
4. Өгөгдлийг нэмэх
5. Өгөгдлийг устгах
Visual Basic чухам хаана тохирох вэ ?
• Visual Basic нь хэрэглэгч, мэдээллийн сан 2-ийн хооронд интерфейс үүсгэдэг учир front-
end хэрэглээ үүсгэж байна гэж ярьдаг.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
• Visual Basic-ын application нь мэдээллийн сантай шууд холбогдож чаддаггүй. Мэдээллийн
сан ба application 2-ын хооронд data control, database engine гэсэн үндсэн бүтцээс
тэдгээрийн интерфейс тогтоно.
• Data control нь Visual Basic-ын объект бөгөөд application ба мэдээллийн санг database
engine-ийн хамт интерфейс холбоо үүсгэдэг байна.
• database engine нь Visual Basic-ын удирдах системийн зүрх гэж яригддаг. Энэ нь
мэдээллийн санг удирдаж ажилладаг иж бүрэн систем юм.
2. Мэдээлийн сангийн тухай ойлголт.
• Өмнөх бүлэгт бид мэдээллийн сан нь гол термүүдийн нэг болохыг үзсэн билээ. Jet
database engine нь Visual Basic application-ны зүрх гэдгийг ойлгосон бөгөөд энэ бүлэгт
мэдээллийн сангийн бүтэц тэдгээрийг яаж байгуулдаг болохыг үзэх юм.
Мэдээллийн сангийн бүтэц зохион байгуулалт.
• Хамгийн энгийнээр тодорхойлсон мэдээллийн сан нь мэдээллүүдийн цуглуулга юм. Энэ
цуглуулга нь сайн тодорхойлогдсон нэг ба хэд хэдэн table-үүдийн нэгдэл байдаг.
• Мөрүүд буюу rows нь мэдээллийн сангийн table-ийн бичлэгүүд буюу records-ыг
тодорхойлно.
• Баганууд буюу columns нь мэдээллийн сангийн table–ийн шинж чанарыг тодорхойлно.
Энэүү шинж чанарыг нь fields гэж нэрлэнэ.Field бүр нь мэдээллийн нэг хэсгийг нарийн
тодорхойлно. Түүнийг тодорхойлоход өгөгдлийн төрлийг зааж өгөх хэрэгтэй. Тухайлбал :
Binary, Boolen, Counter, double, Single, Long, Integer гэх мэт.
• Доор энгийн мэдээллийн сангийн жишээг харуyлав.
Field
Д/д Нэр Төрсөн
өдөр
Өргөн Өндөр
1 Болд 01/04/58 72 170
2 Дулам 11/22/61 65 125
3 Жаргалмаа 06/11/57 68 130
• Ихэнх мэдээллийн сангууд index-ийг мэдээллийн санд буй мэдээллтэй хурдан харьцахын
тулд хэрэглэгддэг.
Мэдээллийн сан нь ганцхан table-тэй бол flat database гэнэ.
Relational төрлийн мэдээллийн сан.
• Ихэнх мэдээллийн сан нь олон table-тэй ажилладаг. Table бүр нь бичлэг эсвэл
талбаруудаараа хоорондоо логик холбоотой байдаг. Зарим тадбарууд нь ерөнхий байх
бөгөөд тэдгээрийн хоорондын холбоог relation гэж нэрлэнэ. Ийм төрлийн table-үүд бүхий
мэдээллийн санг relational database гэнэ.
• Бид 1000 бүтээгдэхүүний жагсаалт бүхий manufacturer name, address, phone гэх мэт
талбартай мэдээллийн сантай ажиллах боллоо гэж үзье. Хэрэв үйлдвэрийн нэр солигдвол
утасны дугааруудыг мөн сольж 1000 бичлэгт засвар хийх шаардлага гарна. Хэрэв та
бүтээгдэхүүний ба үйлдвэрийн 2 table байгуулаад тэдгээрийг үйлдвэрийн дугаар буюу
manufacturer ID талбараар relation үүсгэвэл зөвхөн ганц талбарт засвар хийх юм. Ийм
үйлдлийг database normalization гэнэ.
• Relational database-ыг түлхүүр талбар ашиглан байгуулдаг. Энэ нь хоорондоо relation
үүсгэх ижил талбар юм.
Record
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
• Hэг table дэхь бичлэг нь өөр table-ийн ганцхан бичлэгтэй холбогдож байвал ийм төрлийн
relation нь one-to-one, нэг table дэхь нэг бичлэг нь өөр table-ийн олон бичлэгтэй
холбогдож байвал ийм төрлийн relation нь one-to-many, хэрэв нэг table дэхь олон бичлэг
нь өөр table-ийн олон бичлэгтэй холбогдож байвал ийм төрлийн relation нь many-to-many
relation гэж тус тус нэрлэгдэнэ.
Энгийн Relational Database
• Номын мэдээллийн сан BIBLIO.MDB нь дараах 4 table-үүдтэй.
Үүнд :
Author (6,246 бичлэгтэй)
Publishers (727 бичлэгтэй)
Titles ( бичлэгтэй)
Titles Author ( бичлэгтэй)
• Authors table нь номыг зохиогчийн мэдээллүүдтэй бөгөөд Au_ID, Name ба Year Born
гэсэн талбаруудтай.
• Publishers table нь хэвлэлийн газруудын тухай мэдээллүүдтэй PubID, Name, Company
Name, Address, City, State, Zip, Telephone, Fax Comments гэсэн талбаруудтай.
• Titles table нь номын нэрүүд бүхий Title, Year Published, ISBN, PubID, Description, Notes,
Subject, Comments гэсэн талбаруудтай.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
• Titles Author table нь: ISBN(International Standart Book Number), ID гэсэн талбаруудтай
номын зохиогчийг мэдээллийн сантай холбосон мэдээллүүдтэй юм.
• Access -ыг ашиглан relationship үүсгэвэл :
• Энэ диаграмд relation-ыг түлхүүр талбаруудыг шугамаар холбон харуулжээ.
• Table бүр нь мэдээллийн source, relational гэсэн 2 төрлийн өгөгдлүүдээс тогтоно. Source
төрлийдн өгөгдлүүд нь names, phone numbers, addresses талбарын мэдээллүүдээс relational
төрлийн өгөгдлүүд нь PubID, ISBN, Au_ID түлхүүрээр холбогдсон relation төрлийн
мэдээллүүдээс тогтсон байна.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Лекц№8
Мэдээллийн сан ба DAO Data Control.
DAO ба ADO -ын ялгаа юу вэ ?
• Visual Basic 6.0 -ыг судалсны эцэст бид ADO(ActiveX Data Object) data control-ын тухай
ойлголттой болдог. Сүүлийн үеийн версүүдэд DAO (Data Access Object) data control-ыг
(Visual Basic 6.0 үүнд орно.) голцуу ашигладаг. Иймд Visual Basic 6.0 ба Visual Basic 5
-ын хэрэглэгчид тэдгээрийг ямар ялгаатай гэж ассууж магадгүй.
• Энэхүү 2 control нь мэдээллийн санг удирдах үүрэг гүйцэтгэж Jet database engine-ын
ажиллагааг хангадаг хэрэгсэл болдог. Энэ 2 control-ыг хийх арга нь өөр өөр байдаг. DAO
control нь маш өргөн тархсан мэдээллийн санг удирдах хэрэглээний сан юм. Харин ADO
control нь шинээр гарч ирж буй технологи бөгөөд DAO-оос илүү үр дүнтэй болно.
Яагаад бид DAO-г ADO-ын хамт хэрэглэдэг вэ?
⇒ Бид тухайн application-г DAO-г ашиглан засварлана.
⇒ Ширээний компьютерийн хэрэглээ улам боловсронгуй болж байна.
⇒ Одоогоор DAO control нь нууцлал аюулгүй байдлыг санал болгодог.
⇒ Microsoft Access хэрэглэгчид DAO-г ашигладаг тул зах зээл түүнийг нэг хэсэгтээ л
хүлээн авна.
Яагаад бид ADO-г DAO-ын хамт хэрэглэдэг вэ?
⇒ Бид интернэтэд хандах илүү чадалтай шинэ шинэ project-үүдийг бичиж байна.
⇒ ADO-г хэрэглэх нь DAO-г хэрэглэхээс хялбар
⇒ ADO нь мэдээллийн эх үүсвэртэй болоход илүү хлүчтэй.
⇒ Хэрвээ Jet engine -ыг хэрэглэхгүй бол зөвхөн ADO control-ыг хэрэглэх ганцхан зам
үлдэнэ.
⇒ ADO нь DAO-г хэрэгцээнээс гаргангуут үлдэх цорын ганц data control болно.
Энэ удаа бид 2 control-ын хэрэглээний тухай авч үзнэ. Зөвхөн Visual Basic 6.0 -ын хэрэглэгч л
ADO control-ын тухай материалыг хэрэглэж болох нь илэрхий. Энэ бүлэгт бид DAO data
control-ын хэрэглээний тухай тусгайлан үзэх ба дараагийн бүлэгт ADO data control-ыг
ашиглан өмнөх материалаа үзнэ.
DAO Data Control -ын тухай.
• DAO data control-ыг Visual Basic-ын toolbox-оос дараах хэрэгслийг ашиглан сонгоно.
• DAO data control нь мэдээллийн сан ба Visual Basic application 2-ын интерфейс юм. Энэ
control нь ямарч код бичилгүйгээр хэрэглэж болно. Энэ нь мэдээллийн санг удирдах
системийн гол хэсэг болно.
• Энэ data control нь Visual Basic ба Access-ээс өөр мэдээллийн сантай ажиллана. Тухайлбал
: Dbase, Foxpro, Paradox гэх мэт.
• Энэ data control нь дараах үүргийг гүйцэтгэнэ.
1. Mэдээллийн сантай холбогдоно.
2. Tухайн мэдээллийн сангийн Table-ийг нээнэ.
3. Mэдээллийн сангийн Query дээр үндэслэгдсэн virtual table-ийг байгуулна.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
4. Mэдээллийн сангийн талбаруудыг Visual Basic-ын өөр хэрэгслүүдийг ашиглан харах
эсвэл засахын тулд дамжуулах ба эдгээр хэрэгслүүд нь data bound control-ыг ашиглана.
5. Шинээр бичлэг нэмэх бичлэгийг устгах бичлэгийг засварлах.
6. Өгөгдөлтэй харьцаж ажиллах үед тохиолдох алдааг хянах
7. Мэдээллийн санг хаах.
DAO Data Control Property -үүд
• DAO data control нь хэд хэдэнд property-үүдийг ашиглан мэдээллийн сантай холбогддог.
Зарим чухал property-үүдийг үзье.
Align Хаана data control ажиллаж буйг тодорхойлно.
Caption Data control-ын гарчиг нэр
Connect Mэдээллийн сангийн төрөл зүйл
DatabaseName Data control -д харгалзах мэдээллийн сангийн
нэр замыг нь заасан бүтэн нэр байх
шаардлагатай.
EditMode Ажиллаж байх үедээ зөвхөн унших горимд
байх ба тухайн бичлэгийг засварын горимд
буйг илэрхийлнэ.
Exclusive Тухайн мэдээллийн сан нь нэг эсвэл олон
хэрэглэгчид
нээллттэй байгааг илэрхийлнэ.
ReadOnly Тухайн өгөгдөл засагдах эсвэл үгүйг
тодорхойлно.
Recordset Бичлэгүүд хоорондоо Data control-ын
тусламжтай
холбогдож байгааг илэрхийлнэ. (Ажиллаж байх
үед DatabaseName, Connect, RecordSource
property-үүдээр холбогдож буйг тодорхойлно. )
RecordsetType Байгуулах гэж буй Data control-ын Recordset-
ийн төрлийг илэрхийлнэ.
RecordSource Data control-ын ажиллах table, virtual table-ийг
тодорхойлно.
Visible Тухайн Data control form дээр байх эсэхийг
харуулна.
DAO data control нь form дээр caption, 4 сумтай товчлуурын (button)хамт xарагдана.
Сумнууд нь table-ийн бичлэгүүдийг шилжүүлэхэд хэрэглэгддэг. Дээрхээс үзвэл сумнууд нь
бичлэгийн эхлэл төгсгөлрүү эсвэл бичлэгээс бичлэгрүү шилжүүлэхэд хэрэглэгдэж байна.
Эцсийн бичлэгрїї очно
Эхний бичлэгрїї очно
Ємнєх бичлэгрїї очно Дараагийн бичлэгрїї очно
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
• DAO control -ыг form дээр байгуулсаны дараа хамгийн түрүүнд DatabaseName property-г
зааж суулгаж өгөх хэрэгтэй. Дараа нь RecordSource property-г суулгаж өгнө. Тухайн
property-г сонгоод жагсаалтаас тэндээс ажиллах table-ыг ачаална. Энэ нь бид Recordset
объектыг үүсгэж байгаа хэрэг юм.
Recordset объектын -ын тухай
• Recordset объект нь маш чухал ойлголтын нэг юм. Data control-д RecordSource-ийг
ачаалсаны дараа Recordset объект үүсдэг. Бид энэ объектийн property-нүүд ба method-
уудыг авч үзье.
• RecordsetType property-д recordset объектийн үндсэн 3 төрлийг заадаг.
Үүнд :
Table Mэдээллийн сангийн үндсэн table бөгөөд бид бичлэгийг
нэмэх солих устгах солих үйлдийг гүйцэтгэнэ.
Dynaset Шинээр үүссэн төрөл бөгөөд Dynaset нь мэдээллийн
сангийн query-ийн үр дүн болно. Бид мөн бичлэг нэмэх
солих устгах үйлдийг гүйцэтгэнэ.
Snapshot Бичлэгүүдийг заслар хийж болдоггүй хэлбэр бөгөөд
мэдээлллийн сангийн өгөгдлүүдйиг харах, хайлт хийхэд
зориулагдана.
• Эцэст нь Recordset объект нь DatabaseName ба RecordSource гэсэн гол property-үүдтэй
бөгөөд тэдгээрийн relationship-ийг харуулбал :
Data Bound Control-ын тухай.
• DAO data control нь мэдээллийн сантай биднийг хялбархан холбож form дээрх recordset-
тэй ажиллах боломж олгодог. Мэдээллийн сан дээрх мэдээллийг харахад бид Data Bound
Control-ыг хэрэглэдэг. Data Bound Control нь Recordset дээрх таны сонирхсон талбар,
бичлэгүүдийг харахад ашиглагдана. Ихэнх Visual Basic-ын хэрэгслүүд Data Bound
Control-ыг хэрэглэдэг.
Стардарт Data Bound Control -ууд :
Label Текст төрлийн өгөгдлийг харахад хэрэглэгдэнэ.
Caption
property нь Data Bound юм.
Text Box Текст төрлийн өгөгдлйиг харах, уншихад
хэрэглэгдэнэ. Text
property нь Data Bound юм.
Jet
Database
Engine
Multi-table database
Database Name
RecordSource
Recordset Points to current record
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Check
Box
Boolen төрлийн өгөгдлийн талбарыг унших ба
бичихэд
хэрэглэгдэнэ. Value property нь data bound юм.
Picture
Box
График төрлийн bitmap, icon, gif, jpeg ба metafile
файлтай
ажиллахад хэрэглэгдэнэ. Picture property нь data
bound юм
Image
Box
График төрлийн bitmap, icon, gif, jpeg ба metafile
файлтай
ажиллахад хэрэглэгдэнэ. Picture property нь data
bound юм.
Data Bound Control Property -нүүд
• Data Bound Control-ыг байгуулахын тулд дараах Property-нүүдийг мэдэх шаардлагатай.
Үүнд :
DataChanged Xувьсах хэмжигдэхүүний утга bound control-д
өөрчлөгдөх эсэхийг илэрхийлнэ.
DataField Data control-д ашиглагдах table-ийн талбаруудын
нэрсийг тодорхойлно.
DataSource Data control -д ямар table ашиглахыг заана.
• Хэрэв data bound control-ын өөрчлөгдөж хэрэглэгч өөр өөр өгөгдлүүдтэй ажиллах бол
мэдээллийн сан нь автоматаар засвардагдаж хэрэглэгч шинэ өгөгдлүүдтэй ажиллах
болно. Энэ бол маш чухал туйлын потенциалтай хэрэгсэл болно.
• Data bound control-ыг ашиглахын тулд form дээр дараах алхмуудыг хийх хэрэгтэй.
Үүнд :
1. Form дээр data bound control-ыг зур.
2. DataSource property-г сонгоод жагсаалтаас ашиглагдах table-ийг сонго.
3. DataField property-ээс хэрэглэгдэх талбаруудыг сонго.
4. Бусад шаардагдах property-нүүдийг ачаал.
Data bound control ба DAO data control хоёрын relationship-ийг харуулбал :
DAO Data Control Event -үүд
• DAO Data Control нь event-үүдээр дамжин мэдээллийн сантай харьцаж ажилладаг.
Тэдгээрийн заримтай нь танилцая.
• DAO Data Control -ын зарим чухал event-үүд :
DataField
DataSource
Recordset Points to current record
Data Bound
Control
(Field in current record)
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Error Visual Basic-ын код нь мэдээлийн сантай харьцаж ажиллах
үед тохирохгүй байгаа тохиолдолд алдаа өгч байгааг
илэрхийлнэ.
Peposition Data Control шинэ бичлэгрүү шилжсэний дараа илэрнэ.
Data Bound Control үгүйгээр мэдээллийг засахад
ашиглана.
Validate Тухайн бичлэгээс шилжсэний дараа илэрнэ. Энэ event нь
бичлэгийг засварлахаар хасах эсвэл шинэ бичлэгээр
солиход ашиглагдана.
• Эдгээд events-үүдийн талаар дараагийн бүлэг болох мэдээллийн сангийн менежментийг
үзэх үед дэлгэрүүлэн судлах болно.
DAO Data Control -ын Method –ууд
• DAO Data Control -ын тухай бүрэн төгс ойлгохын тулд бид зарим чухал шаардлагатай
method-уудын тухай авч үзье. Энэ method-ууд нь Data Control-ын тодорхой үед
гүйцэтгэгдэнэ.
Refresh Мэдээллийн санд тулгуурласан RecordSource property-г
шаардана.
UpdateControls Bound control-ын value хувьсагчийг өөрчилнө.
UpdateRecord Bound control -ын утгыг Validate event ашиглан засварлана.
DAO Data Control –ын Recordset Peoperty.
• DAO Data Control -н Recordset объектийн үндсэн property бөгөөд run-time горимд
ажилладаг. Хэрэв та datExample нэртэй Data Control-д PeopertyName нэртэй property-г
оруулъя гэвэл дараах байдлаар бичнэ.
Үүнд :
datExample.Recordset.PeopertyName
• Recordset Data Control -ын зарим чухал property-үүд :
•
AbsolutePosition Tухайн бичлэгийг унших ба ачаалах Long
Integer утгыг авна.
BOF Тухайн бичлэг өгөгдлүүдийн эхэнд байвал True
утга авна
EdutMode Тухайн бичлэг засварын горимд байгааг
илэрхийлнэ.
EOF Тухайн бичлэг өгөгдлүүдийн эцэст байвал True
утга авна
PercentPosition Тухайн бичлэг процентоор илэрхийлэгдэх бол
Single
өгөгдлийн утга авна.
RecordCount Recordset-д буй бичлэгийн тоог тодорхойлно.
Updatable Read-only хэлбэрээр run-time горимд ажиллана.
Хэрэв True байвал Recordset дахь бичлэгүүд нь
засагдах бөгөөд False бол read only хэлбэр
илэрхийлэгдэнэ.
DAO Data Control –ын Recordset Method-ууд.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
• DAO Data Control Recordset нь хэд хэдэн method ашигладаг. Тухайлбал datExample
нэртэй data control нь MethodName нэртэй method-ийг ашиглавал :
datExample.Recordset.MethodName гэж тодорхойлж өгнө.
• Recordset Method -уудын зарим чухал хэсгээс дурьдвал :
AddNew Recordset -д шинэ бичлэг нэмнэ.
CancelUpdate Засвар хийж байх үед ажиллагааг зогсоох үед
хэрэглэгдэнэ.
Close Recordset -ийг хаана
Delete Recordset -ээс бичлэг устгана.
Edit Recordset -д буй бичлэгийг засварын горимд байгааг
тодорхойлно.
MoveFirst Recordset -ийн эхний бичлэгрүү шилжинэ.
MoveLast Recordset -ийн эцсийн бичлэгрүү шилжинэ.
MoveNext Recordset -ийн дараачийн бичлэгрүү шилжинэ.
MovePrevious Recordset -ийн өмнөх бичлэгрүү шилжинэ.
Requery Давтан ашиглагдаж байгаа буйг илэрхийлнэ
Update Бүх нь засварын горимд байгааг илэрхийлнэ.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Лекц№9
Мэдээллийн сан ба ADO Data Control
ADO Data Control -ын тухай
• ADO (ActiveX Data Object) data control нь Visual Basic-ын application ба мэдээллийн
сангийн хоорондын интерфейсийг үүсгэдэг. чухал технологи бөгөөд мэдээллийн санг
удирдах системийн гол цөм нь юм. ADO data control нь Visual Basic-ын стандарт toolbox-
т байдаггүй тул түүний нэмэж оруулж өгөх хэрэгтэй .Үүний тулд үндсэн цэсийн Project
цэсийг сонгоод тэндээс Components-ийг авч Microsoft ADO Data Control -ыг сонгоод
OK гэж дарахад тухайн control нь toolbox-т нэмэгдэнэ. Тэр нь дараах icon болно
• Энэ Data Control нь дараах бодлогуудийг шийдвэрлэнэ.
Үүнд :
1. Mэдээлийн сантай холбох
2. Mэдээллийн сангийн зориулалтын table-ийг нээх
3. Mэдээллийн сангийн query дээр үндэслэсэн virtual table байгуулах
4. Mэдээллийн сангийн тайлбаруудыг Visual Basic-ын хэрэгслүүдэд засварлах ба харах
зориулалтаар дамжуулах
5. Бичлэгийн нэмэх устгах засварлах
6. Өгөгдөлтэй харьцаж ажиллах үед илрэх алдааг таниулах
7. Мэдээллийн санг хаах
ADO Data Control Property -нүүд
• ADO Data Control-д зарим property-үүдийг ачаалсанаар мэдээллийн сантай холбогдоно.
Заим чухал шаардлагатай property-үүдийг авч үзье.
Align Data Control Хаана дэлгэцэнд хадгалагдаж байгааг
тодорхойлно.
Caption Data Control -ын гарчиг
Command Type Recordset объектийн эх үүсвэрүүдийг
байгуулах (table,query)
ConnectionString Mэдээллийн сантай холбогдох мэдээллүүдийг
агуулна.
EditMode Run-tome горимд зөвхөн унших бөгөөд тухайн
бичлэгийг засварлах үеийг заана.
LockType Тухайн бичлэг засварлах үед ямар горимд байгааг
илэрхийлэх бөгөөд өөрчлөх боломжтой.
RecordSource Тухайн data control хандаж буй table, virtual table-
ийг заана.
Visible Run-time горимд form дээр тухайн data control байх
эсэхийг тодорхойлно.
• ADO Data Control нь form дээр байрласан үед чиглэл заасан байх бөгөөд доорх зураг
дээрх үүргүүдийг гүйцэтгэнэ.
Эцсийн бичлэг, мєр лїї очно
Эхний бичлэг, мєр лїї очно
Ємнєх бичлэг, мєр лїї очно Дараагийн бичлэг, мєр лїї очно
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
ConnectionString Property -ийн тухай.
• Data Control -ыг form дээр байгуулсны дараа та ConnectionString Property-ийг зааж өгөх
хэрэгтэй. ADO Data Control нь олон төрлийн мэдээллийн сангийн төрлүүдтэй холбогдоно.
Энд мэдээллийн сантай холбогдох үндсэн 3 арга байдаг бөгөөд өгөгдлийг холболт буюу
data link, ODBC өгөгдлийн эх үүсвэрүүдийг ашиглах, ConnectionString Property-ийг зааж
өгөх зэрэг болно. Одоо бид ConnectionString Property -г ашиглан Microsoft Access
мэдээллийн сантай холбогдох талаар авч үзэх болно.
• Visual Basic энэ холболтыг хийх бөгөөд энэ үйлдлийг жишээн дээр тайлбарлах нь зүйтэй
болно. Бид BIBLIO.MDB мэдээллийн сантай өмнөх бүлэгт ажиллаж байсан билээ. Энэ
мэдээллийн санг олоод өөрсдийн ажлын талбарт байгуулъя.
• Одоо холболтыг хийх алхмуудыг нэрлэе.
Үүнд :
Start a new Visual Basic project and place an ADO Data Control on the form
1. Шинэ Visual Basic-н project-г эхлүүлж form дээр ADO Data Control-ыг байгуулъя.
2. Properties Window –оос, ConnectionString-ыг сонгоё. Property Pages window xарагдах
болно.
3. Use ConnectionString -г сонгоод Build button-ыг дарна. Data Link Properties window
харагдах болно.
4. Provider tab -ыг авч Microsoft Jet 3.51 OLE DB Provider-ыг сонгоно.
5. Next button -ыг дараад Connection tab -руу очно.
6. BIBLIO.MDB файлыг өөрийн ажлын талбарт авчирахын тулд Select Access Database
dialog box -ыг сонгоод Open button -ыг дарна.
7. Test Connection -ыг сонгоод OK button-ыг дарна. Property Pages Window -ыг сонгоод
OK button -ыг дарна.
Ийнхүү холболт хийгдлээ.
Recordset Объектийн тухай.
• Recordset Объект нь маш чухал ойлголтын нэг юм. Бид Recordsource property-ийг үзэх
үед хэрэгтэй бичлэгүүдээ Recordset объектэд цуглуулдаг. Бид энэ объектийн үндсэн
property-үүд ба method-уудыг үзэх болно.
Энэ бүлэгт бид Recordset нь BIBLIO.MDB мэдээллийн сангийн тодорхой Table-үүдтэй
холбогдохыг авч үзнэ.
Data Bound Control -ын тухай.
• ADO Data Control нь мэдээллийн сантай Recordset-ийн тусламжтайгаар хоолбогдоно. Энэ
нь Data Bound Control-уудаар гүйцэтгэгдэнэ.
• Стандарт Data Bound Control -уудыг нэрлэвэл :
Label Caption property буюу Data Bound Control -ын
нэр, гарчиг
Text Box Data Bound Control -ын Text property
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Check Box Data Bound Control -ын Value property
Picture
Box
Data Bound Control -ын Picture property
Image Box Data Bound Control -ын график дүрсийг
илэрхийлэх Picture property
• Энд Data Bound Control-ын DataList, DataCombo, DataGrid control –уудыг мөн
ашиглана.
Data Bound Control –ын Property-үүд
• Data Bound Control-ын мэдээллийн сантай холбогдох холбоог үүсгэхийн тулд бид дараах
цөөн тооны property-үүдийг мэдэх шаардлагатай.
Үүнд:
DataChanged Data Bound Control-ын үед өгөгдийн утга солигдох
эсэхийг тодорхойлно.
DataField Table-ийн ямар талбаруудыг авахыг заана.
DataSource Ямар өгөгдлүүдтэй ажиллахыг заана.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Лекц№10
ADO Data Control -ын Event -үүд.
• ADO Data Control -ын зарим чухал event -үүдыг авч үзье.
WillMove Бичлэгийг чиглүүлэгч нэг мөрөөс нөгөө
мөрд
шилжүүлэхийг зохицуулна.
MoveComplet Бичлэгийг чиглүүлэгч нэг мөрөөс нөгөө
мөрд
шилжсэнийг илэрхийлнэ.
EndoRecordset Бичлэгийг чиглүүлэгч сүүлчийн
бичлэгт очсоныг илэрхийлнэ.
WillChangeRecordset Recordset-д өөрчлөлт хийгдэж байгааг
илэрхийлнэ.
RecordsetChangeComplete Recordset -д өөрчлөлт хийгдсэнийг
илэрхийлнэ.
WillChangeRecord Recordset -д бичлэгт өөрчлөлт хийгдэж
байгааг
илэрхийлнэ.
RecordChangeComplete Recordset -д бичлэгт өөрчлөлт
хийгдсэнийг
илэрхийлнэ.
WillChangeField Recordset -д талбарт өөрчлөлт хийгдэж
байгааг илэрхийлнэ.
FieldChangeComplete Recordset -д талбарт өөрчлөлт
хийгдсэнийг
илэрхийлнэ.
ADO Data Control-ын Method -ууд.
• Энд бид ADO Data Control -ын зөвхөн ганцхан method -ыг авч үзье.
Refresh Мэдээллийн сангийн RecordSource property -г ачаална
ADO Data Control Recordset -ийн нүүд.
• Recordset объект нь өөрийн үндсэн property-үүдтэй байх бөгөөд тэдгээр нь зөвхөн run-
time горимд ажилладаг. Хэрэв datExample танд нэртэй data control байх ба тэр нь
PropertyName нэртэй property-тэй бол та дараах байдлаар хандана.
datExample.Recordset.PropertyName
• Data Control Recordset -ийн зарим чухал property-үүдээс авч үзвэл :
AbsolutePosition Tухайн бичлэгийг унших ба ачаалах Long
Integer утгыг авна
BOF Тухайн бичлэг өгөгдлүүдийн эхэнд байвал True
утга авна.
EditMode Тухайн бичлэг засварын горимд байгааг
илэрхийлнэ.
EOF Тухайн бичлэг өгөгдлүүдийн эцэст байвал True
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
утга авна.
PercentPosition Тухайн бичлэг нь процентоор илэрхийлэгдэх
бол Single өгөдлийн утга авна.
RecordCount Recordset -д буй бичлэгийн тоог тодорхойлно.
Updatable
Read-only xэлбэрээр run-time горимд ажиллана.
Хэрэв True байвал Recordset дахь бичлэгүүд нь
засагдах бөгөөд False бол Read only хэлбэр
илэрхийлэгдэнэ.
ADO Data Control Recordset Method-ууд
• Recordset Data Control нь өөрийн method -уудтай тухайлбал data control нь datExample
нэртэй, MethodName нэр бүхий method-тай гэвэл дараах байдлаар тодорхойлно.
datExample.Recordset.MethodName
• Зарим чухал method -уудаас дурьдвал :
AddNew Recordset -д шинэ бичлэг нэмнэ.
CancelUpdate Засвар хийж байх үед ажиллагааг зогсоох үед
хэрэглэгдэнэ.
Close Recordset -ийг хаана.
Delete Recordset -ээс бичлэгийг устгана.
Edit Recordset -д буй бичлэгийг засварыг горимд
байгааг тодорхойлно.
MoveFirst Recordset -ийн эхний бичлэгрүү шилжинэ.
MoveLast Recordset -ийн эцсийн бичлэгрүү шилжинэ.
MoveNext Recordset -ийн дараачийн бичлэгрүү шилжинэ.
MovePrevious Recordset -ийн өмнөх бичлэгрүү шилжинэ.
Requery Давтан ашиглагдаж байгаа буйг илэрхийлнэ.
Update Бүх data bound control нь засварын горимд
байгааг
илэрхийлнэ.
DAO ба ADO тэдгээрийн ялгаа юу вэ?
• Өмнөх бүлэгт бид энэ асуултыг асуусан, одоо дахиад асууж байна.
• Энэ 2 data control нь хоёул мэдээллийн сантай холбож өгдөг бөгөөд DAO control нь
DatabaseName property -г хэрэглэдэг, харин ADO control нь ConnectionString хэрэглэдэг
юм.
• Recordset-ийг үүсгэхдээ DAO control нь RecordSource property-г, ADO control нь
RecordSource, CommandType property-үүдийг тус тус ашигладаг байна.
ADO Data Environment -ийн тухай
• ADO data control -ын гол ойлголтын нэг нь ADO Data Environment буюу ADO
өгөгдлийн орчин юм. Энэ нь олон тооны data control, мөн олон тооны мэдээллийн сантай
харьцаж ажиллах боломж олгодог.
• Энэ нь Connection объект ба Command объекттэй ажилладаг.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Data Environment
Дээрх зураг дээр тэдгээрийн хоорондын уялдааг харууллаа.
Recordset 1
Recordset 2
Recordset 3
Recordset 4
Recordset 5
Command
Object 1
Command
Object 2
Command
Object 3
Command
Object 4
Command
Object 5
Connection
Object 1
Connection
Object 2
Database 1
Database 2
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Лекц№12
Connection Объектийн тухай.
• Connection Объект нь Data Environment-ийн мэдээллийн сантай холбогдох ирээдүйг
тодорхойлдог.
• Connection объект нь хэд хэдэн property -үүдтэй. Үүнд :
Attributes Xолболт хийгдэх тэмдэгт төрлийн шинж чанарын
мэдээллүүд
CommandTimeout Cервер өгөгдсөн тодорхой хугацаанд хариу өгөх
хугацаа
ConnectionSource Xолболт хийх өгөгдлүүдийн байгаа хаягийг заасан
зам (тэмдэгт)
ConnectionTimeou
t
Aлсын зайн серверийн холболт хийхийг хүлээх
хугацаа
Command Объектийн тухай.
• Command oбъект нь Data Environment-ийн мэдээллийн сангийн Table -тай холбогдох
ирээдүйг тодорхойлдог.
• Command объект нь хэд хэдэн property -үүдтэй. Үүнд :
CommandText Mэдээллийн сангийн query агуулсан Table-ийг
тодорхойлж өгнө.
CommandType Холболтод хамрагдах мэдээллийн сангийн query
бүхий table эсвэл virtual table аль нь болохийг
заана.
ConnectionName Connection объектийн нэр
LockType дээрх өгөгдөл нь өөрчлөгдөх эсэхийг зөвхөн
унших горимд ажиллах эсэхийг заана.
ADO Data Environment ашигласан жишээ.
Энэ жишээнд бид Connection объектийг BIBLIO.MDB мэдээллийн сан дээр, Command
объектийг Titles table дээр тус тус үзүүлэх болно.
Шинээр project эхлүүлье. Data Environment -ийг өөрийн project дээр нэмье. Үүний тулд
Project цэсийн Add Data Environment дэд цэсийг сонгоно. Хэрэв дэд цэсэнд Add Data
Environment цэс нь байхгүй бол Project цэсийн Components -ийг сонгоод Designers цэсээс
Data Environment -ийг сонгоод OK дарна.
Data Environment цонх нь дараах байдалтай харагдана.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
1. Properties window -pyy шилжээд Data Environment1-ийн Name -д denBooks, Connection1
-ийн Name-ийг conBooks гэж тус тус нэрлэе.
2. Oдоо бид Connection объектийг байгуулъя :
⇒ conBooks connection дээр баруун товчлуураас Properties-ийг сонгоод Data
Link Properties цонхыг нээх
⇒ Provider хэсгээс Microsoft Jet 3.51 OLE DB Provider -ийг авах
⇒ Next товчлуур дараад Connection хэсгээс өөрийн ажиллах мэдээллийн санг
сонгох (бид BIBLIO.MDB-г авсан билээ). Open товчлуурыг дараад Test
Connection-ийг сонгоод .
⇒ Data Link Properties цонхны OK дарна.
3. Oдоо бид Command объектийг байгуулъя :
⇒ Data Environment -ийн conBooks дээр баруун товчлуураас Add Command -ийг
сонгоё.
⇒ Command1 дээр баруун товчлуураас Properties-ийг сонгоё. General хэсэг идэвхтэй
байна.
⇒ Command oбъектийн нэрийг comTItles гэж өгье.
⇒ Source of Data хэсгийн Database Object -оос Table -ийг сонгоод Object Name -ийг
Titles Table гэж авъя.
Command объект байгуулагдлаа. Titles-аас баруун товчлуураар Expand All нөхцлийг сонгоё.
Тэгвэл бидний Data Environment дараах байдалтай харагдана.
Data Environment -орчинд Data Bound Control ажиллах нь.
• Data Environment орчинд data bound control -ын холболтыг хийхийн тулд бид дараах 3
property -үүдийг ашиглана. Үүнд :
DataField Command объектийн ямар table -ийн ямар талбарууд
байгааг тодорхойлно.
DataMember Command объект нь ямар table -үүдийг ашиглахыг заана.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
DataSource Ямар Data Environment data bound control-д ажиллахыг заана.
• Data Environment-ийн орчинд ажиллах data bound control-ыг үүсгэхийн тулд дараах
алхмуудыг дамжина. Үүнд :
1. Form дээр data bound control -ыг байгуулах.
2. DataSource property -г зааж өгөх.
3. DataMember property -г зааж өгөх.
4. DataField property -г зааж өгөх.
Бусад шаардлагатай property -нүүдийг зааж өгөх.
Drag ба Drop Control.
Дээрх жишээнд үзсэнтэй адил интерфейсийг ADO data control ашиглан Data Environment
орчинд үзэх болно.
1. Өмнөх номын мэдээллийн санд Titles table ашиглан Data Environment байгуулсан дараах
байдалтай харагдах цонхон дээр ажиллая.
2. Form дээр харгалзах property -үүдийг зааж өгье. Үүнд :
Name frmDataEnvironment
BorderStyle 1-Fixed Single
Caption Data Environment Example
3. Data Environment цонхноос Title талбараас зүүн товчлуурыг дараад Form руу чирнэ. Form-
ын хэсэгт icon харагдана. Доор харагдаж буй байдлаар form -ыг зурах.
4. Properties window дээр Name, DataField, DataMember, DataSource property -үүдийг
дараах байдлаар зааж өгнө.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Name txtTitle
DataField Title
DataMember comTitles
DataSource denBooks
5. Дээрхийн адилаар Year Published, ISBN, PubID талбаруудыг Form дээр байрлуулна.
6. Application -ыг хадгалаад ажиллуулахад дараах үр дүнд хүрнэ.
Data Environment -ийн Recordset -үүд.
• Data Environment нь ADO data control -ын Recordset ба түүний property -нүүд method
-уудтай ажилладаг.
• comExample нэртэй Command объект нь rscomExample нэртэй Recordset -тэй бөгөөд
Data Environment нь denExample нэртэй байг. Тэгвэл бид
denExample.rscomExample.PropertyName гэж property -нүүдийг нь
тодорхойлно.
• Дээрхтэй адилаар method -уудыг доорх байдллар бичнэ.
denExample.rscomExample.MethodName
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Лекц №13
DAO -оос ADO ба ADO -оос DAO шилжилт хийх тухай.
• Хэрэв танд мэдээллийн сантай ажилладаг DAO data control ашигласан application байгаад
ADO data control-д ADO Data Environment ашигладаг болгон хувиргах хэрэгтэй байг.
• DAO control -оос ADO control -руу шилжих дараах алхмууд байна.Үүнд :
⇒ DAO control-ын Name, DatabaseName, RecordSource property-үүдийг тэмдэглэж авах
⇒ DAO control -ыг устгах
⇒ Form дээр ADO control -ыг байгуулах
⇒ Name property-д ижил нэр өгч ConnectionString -д DAO-ийн DatabaseName,
RecordSource property -нүүдийг ачаалах
• ADO control -оос DAO control -д шилжих алхмууд :
⇒ ADO control -ын Name, ConnectionString, RecordSource property-үүдийг тэмдэглэж
авах
⇒ ADO data control -ыг устгах
⇒ Form дээр DAO data control -ыг байгуулах
⇒ Name property-д ижил нэр өгч DatabaseName-д ConnectionString -ийн нэрийг авч
RecordSource property -г бичиж өгөх.
• DAO data control -ыг ADO Data Environment -д өөрчлөхөд дараах алхмуудыг хийж өгнө.
⇒ DAO control-ын DatabaseName, RecordSource property -үүдийг тэмдэглэж авах
⇒ DAO data control -ыг устгах
⇒ ADO Data Environment -ыг project дээр байгуулах
⇒ Connection объектыг DAO -ийн DatabaseName -ыг авахаар хийж өгөх.
⇒ Command объектыг RecordSource property -ийн Data-тай зохион байгуулах
⇒ Data bound control -ын property -нүүд нь DataSource нь Data Environment орчинд
DataMember нь Command объектынх, DataField -үүд нь bound талбарууд байхаар
өөрчилж бичиж өгөх.
• ADO Data Environment -ээс DAO data control -д шилжихдээ :
⇒ ADO Connection объект ба ADO Command объектын өгөгдлүүдийг тэмдэглэж авах.
⇒ ADO Data Environment -ыг устгах
⇒ Form дээр DAO data control -ыг байгуулах
⇒ DatabaseName property-ыг зааж өгөөд ADO Command объектийн RecordSource
property-ыг суулгаж өгөх.
⇒ Data bound control property -г засварлах.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Лекц№14
SQL -тэй ажиллах.
SQL -ийн тухай.
• SQL-ийг IBM компани 1970-аад онд анх үндэслэжээ.
• SQL мэдээллийн сангуудыг удирдах хэрэгслүүдийн нэг бөгөөд үндсэн 2 категорт
хуваагддаг байна.
Үүнд : DML (Data definition language), DDL(Data manipulation language) DDL
нь table-үүдийг тодорхойлох, index-ийг үүсгэх, relational мэдээллийн санг
байгуулах
үүрэг хүлээдэг байна. Харин DML нь өгөгдлүүдийн хооронд тооцоолол хийх
тэдгээрийг эрэмбэлэх сонголт хийх зэрэг бодлогыг шийдвэрлэдэг.
SQL -ийн үндэс.
• SQL нь мэдээллийн санг удирдах системийн хамт ажилладаг. Харин зөвхөн Visual Basic
-тэй ажилладаггүй.
• Query нь SQL-ийн нэг statement болдог бөгөөд мэдээллийн сантай ажиллах хүнд
бодлогыг шийдвэрлэхэд дөхөмтэй байдаг байна.
• SQL statement нь юу хийж чаддаг вэ ?
⇒ Бичлэгүүдийг эрэмбэлэх
⇒ Талбаруудыг сонгох
⇒ Бичлэгүүдийг сонгох
⇒ Table-үүдийг удирдах
⇒ Тооцооллыг гүйцэтгэх
⇒ Өгөгдлүүдийг мэдээллийн сангийн тайланд хувиргах
⇒ Өгөгдлүүдийг засварлах
• SQL-д row мэдээллийн сангийн бичлэг буюу record, column нь талбар буюу field-ийг
төлөөлдөг.
• Хэрэв та table -ийг тодорхойлох бол дунд хаалтан дотор дараах байдлаар бичнэ.
[My Big Table]
Visual Basic -т SQL-ийг хэрхэн ашигладаг вэ ?
• Visual Basic SQL-ийн query-г data sourse буюу өгөгдлийн эх булгийг бүрдүүлэхэд
ашигладаг. SQL-ийн statement-үүд нь DAO ба ADO data control -ыг ашиглан мэдээллийн
санг удирдах Jet database engine процессыг recordset объектын тусламжтайгаар
гүйцэтгэдэг. Энэ объект нь virtual table-үүдтэй харьцаж үйл ажиллагаа явуулдаг. Үр дүн
тухайн объект мэдээллийн санг харах, засварлах боломжтой болно.
SQL нь DAO Data Control -той ажиллах нь.
• DAO Data Control -ын үед SQL statement нь RecordSourse property дээр илэрхийлэгдэнэ.
Энэ үйл ажиллагаа design mode горимд биелдэг.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
• Харин run mode горимд SQL statement нь MySQL нэртэй, datDAOExample нэртэй data
control-д ажиллаж байвал үндсэн код нь дараах байдалтай бичигдэнэ. Үүнд :
datDAOExample.RecordSourse=MySQL
datDAOExample.Refresh
• SQL statement нь мэдээллийн сангийн сонгогдсон бичлэгүүдтэй буюу Recordset
объекттэй ажиллаж бичлэгүүдийг тоолох буюу RecordCount property-гийн үүргйиг дараах
2 мөр кодоор илэрхийлж болох юм. Үүнд :
datDAOExample.Recordset.MoveLast
datDAOExample.Recordset.MoveFirst
Эдгээр кодууд нь дараах кодтой ижил чанартай юм.
datDAOExample.Recordset.RecordCount
Жишээ 9-1. SQL нь DAO Data Control -той ажиллах нь.
1. Шинээр project нээе. Хоёр label control ба DAO data control -ыг байгуулаад харгалзах
property-үүдийг бичиж өгвөл :
DatabaseName BIBLIO.MDB
RecordSourse SELECT *FROM Titles
RecordSourse property-г зааж өгсөний дараа Properties Window дараах байдалтай болно.
2. Label1 label control -д харгалзах 2 property -г бичиж өгвөл :
DataSource Data1
DataField Title
3. Form_Activate процедурт дараах кодыг бичье. Энэ нь бичлэгийг тоолох үүрэг гүйцэтгэнэ.
Privite Sub Form_ Activate()
Data1.Recordset.MoveLast
Data1.Recordset.MoveFirst
Label2.Caption = Data1.Recordset.RecordCount
End Sub
4. Application -ыг хадгалаад ажиллуулж туршина уу. Дараах үр дүнд хүрнэ. Үүнд :
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
5. Одоо Form_Active процедурт эхний хэсэгт нь дараах 2 мөрийг нэмж өгье. Эдгээ мөрүүд
нь RecordSource -ийг run-time горимд шилжүүлэх юм.
Data1.RecordSource = “SELECT * FROM Titles ORDER BY Title”
Data1.Refresh
6. Application -ыг хадгалаад ажиллуулбал :
SQL нь ADO Data Control -той ажиллах нь.
• ADO Data Control-той SQL statement нь RecordSource property-г ашигладаг бөгөөд design
mode-ийн хувьд дараах алхмуудыг хийх шаардлагатай.
Үүнд :
⇒ ConnectionString property-г байгуулах.
⇒ Properties Window дээрээс RecordSource property-г сонгоод RecordSource
Property Page цонхыг гаргах
⇒ Command Type-ын доод хэсгээс 1-adCmdText-ийг сонгох, дараа нь Command
Text(SQL) цонхонд SQL statement-ыг бичээд OK товчлуурыг дарах
• Харин run-mode горимд SQL statement нь MySQL нэртэй, data control нь datADOExample
нэртэй бол үндсэн код нь дараах байдлаар бичигдэнэ. Үүнд :
datADOExample.RecordSource = MySQL
datADOExample.Refresh
• SQL statement-ын Recordset объект нь мэдээллийн сангийн сонгогдсон бичлэгүүдтэй
ажилладаг тэдгээрийг тоолохын тулд дээрх кодчилолын өмнө дараах 2 мөрийг нэмж
RecordCount property -гийн үүргийг гүйцэтгэж болно. Үүнд :
datADOExample.Recordset.MoveLast
datADOExample.Recordset.MoveFirst
Өөрөөр доорх байдалтай бичиж болох юм.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
datADOExample.Recordset.RecordCount
SQL нь ADO Data Environment орчинд ажиллах нь.
• ADO Data Environment орчинд SQL statement нь шинэ Command объектийн хэлбэрээр
ажиллана. Design горимд :
⇒ Connection объектйг байгуулах
⇒ Data Environment -ын Connection объектйин баруун товчлуураас Add Command -ыг
сонгох.
Command объектоос баруун товчлуураар Properties -ийг сонго. Ингэхэд General хэсэг
идэвхжих бөгөөд Source of Data хэсгээс SQL statement-ийг дараад OK товчлуурыг дарна.
• ADO Data Environment орчинд бид SQL statement -ийн run-time горимд ялгаатай
хандалтуудыг авч үзнэ. Recourdset нь design mode горимд параметрүүд нь эхлээд хаагдаад
дараа нь нээгдэх зарчмаар ажилладаг билээ. Жишээлбэл: бид denExample нэртэй Data
Environment, comExample нэртэй command объект, MySQL нэртэй шинэ SQL statement
-тэй ажиллаж байсан гэж үзье. Recordset нь rscomExample нэртэй байсан бол Recordset
-ийг дахин SQL statement -ийн хамт нээх гэвэл дараах кодыг бичиж өгнө.
denExample.rscomExample.Close
denExample.rscomExample.Open MySQL
Шинээр Recordset-ийг байгуулсаны дараа үндсэн Recordset нь data bound control -ийн зүүн
талд шилжинэ. Иймд data bound control -ыг ADO Data Environment -тэй нэгтгэхийн тулд
DataSource property-г дахин ачаалах хэрэгтэй. Нэгтгэсэн control нь ExampleControl
нэртэй ба Data Environment нь DataEnvironmentName нэртэй гэж үзвэл дараах кодыг
бичиж өгнө. Үүнд :
Set ExampleControl.DataSource.DataEnvironmentName
SQL statement -ын Recordset объект нь мэдээллийн сангийн сонгогдсон бичлэгүүдтэй
ажилладаг тэдгээрийг тоолохын тулд дээрх кодчилолын өмнө дараах хоёр мөрийг нэмж
RecordCount property-гийн үүргийг гүйцэтгэж болно. Recordset нь rscomExample нэртэй бол :
denExample.rscomExample.MoveLast
denExample.rscomExample.MoveFirst
гэж бичих бөгөөд дараах байдалтай бичих нь ижил чанартай.
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
denExample.rscomExample.RecordCount
Жишээ 9-3. SQL нь ADO Data Environment -тэй ажиллах нь
1. Шинээр project -ийг эхлүүлэн хоёр label control, хоёр command button-г нэмж байгуулаад
Project Explorer цонхонд Data Environment-ийг нэмье. Connection1-ийн баруун
товчлуурыг сонгоод Properties-ийг ачаалж өөрийн ажлын талбарт BIBLIO.MDB
мэдээллийн санг хуулъя.
2. Connection1-ээс баруун товчлуураар Add Command-ыг сонгоод Command объектийн
горимд оръё. Тухайн объектоос баруун товчлуураар Properties -ийг авч General хэсгийг
илэхжүүлэн Source of Data -аас SQL statement -ийн хэсэгт доорх коммандыг бичье.
SELECT * FROM Titles
Бидний form дараах байдлаар харагдана.
OK товчлуурыг дарна.
3. Эхний label control ба хоёр command button–д харгалзах property-нүүдийг дараах байдлаар
бичвэл :
Label1:
DataSource DataEnvironment1
DataMember Command1
DataField Title
Command1:
Caption &Previous
Command2:
Caption &Next
4. Form_Activate процедурт бичлэгийн тоог заах дараах кодыг бичье.
Private Sub Form_Activate()
DataEnvironment1.rsCommand1.MoveLast
DataEnvironment1.rsCommand1.MoveFirst
Label2.Caption = DataEnvironment1.rsCommand1.RecordCount
End Sub
5. Command button–д харгалзах кодыг бичвэл:
Private Sub Command1_Click()
DataEnvironment1.rsCommand1.MovePrevious
If DataEnvironment1.rsCommand1.BOF Then
DataEnvironment1.rsCommand1.MoveFirst
End If
End Sub
Private Sub Command2_Click()
DataEnvironment1.rsCommand1.MoveNext
If DataEnvironment1.rsCommand1.EOF Then
DataEnvironment1.rsCommand1.MoveLast
End If
End Sub
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
6. Application-ыг хадгалаад ажиллуулбал :
7. Form_Activate процедурын эхэнд дараах гурван мөрийг нэмбэл :
DataEnvironment1.rsCommand1.Close
DataEnvironment1.rsCommand1.Open “SELECT * FROM Titles ORDER BY Title”
Set Label1.DataSource = DataEnvironment1
8. Application -ыг хадгалаад ажиллуулбал :
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
Лекц№15. Visual Basic-ын SQL Tester
1. Шинээр project эхлүүлж DAO data control -г байгуулж хоёр label control, нэг command
button, DBGrid control-ыг нэмж өгье. Энэ DBGrid control нь toolbox дээр байхгүйд бөгөөд
DataSource property ашиглан мэдээллийн сангийн table-ийг харах засварлах үүрэг
гүйцэтгэдэг бөгөөд toolbox нэмэгдэн орж ирдэг хэрэгсэл билээ. Үүний тулд Project цэсээс
Components -ыг сонгоод тэндээс Microsoft Data Bound Grid Control -г авч OK товчлуурыг
сонгосноор toolbox дээр идэвхтэй болдог. Энэ нь манай form доорх байдалтай болно.
Components -ыг сонгосны дараа Microsoft Data Bound Grid Control нь тэнд байхгүй байвал
та Microsoft Bound Grid Control -ыг сонгох болно. Энэ нь Visual Basic 6.0 -ын ADO
технологийн хувьд дээрхтэй адил байдаггүй. Одоо яах вэ гэсэн асуудал тулгарна. Энд түргэн
ба удаан хоёр зам байдаг.
Зам1 –Түргэн зам
ADO Data Grid Control-ыг ашигла. (toolbox дээр мөн нэмэгдэнэ гэсэн үг)
Өөрөөр хэлбэл form дээрх DAO data control -ын байранд ADO data control-ыг байгуулна.
ADO data control–д DatabaseName property байхгүй билээ. Хэрэв ADO data control ашиглавал
ConnectionString property-г BIBLIO.MDB мэдээллийн сангийн хуулвбарын хамт ачаалах
хэрэгтэй. DataSource property-г ачаалах үед дараах алдааг өгнө.
Учир нь та RecordSource property-г зааж өгөх ёстой байсан шүү дээ. Одоо OK товчлуурыг
дарахаас өөр аргагүй.
Зам 2-Удаан зам
Бид энд орхигдсон DAO Data Grid Control ба бусад шаардлагатай control-уудыг сууулгаж
өгнө. Танд Microsoft Visual Basic 6.0-ын CD хэрэгтэй болно. Мөн бусад шаардлагатай DOS-
ын программууд хэрэг болох юм.
VB6 CD-ээс COMMONTOOLSVBCONTROLS санд доорх файлууд байгаа эсэхийг
шалгана:
AniBtn32.ocx, Gauge32.ocx, Gauge32.ocx (энэ файл бидэнд хэрэг болно), KeySta32.ocx,
MSOutl32.ocx, Spin32.ocx, Three32.ocx, MSChart32.ocx
Дараах алхмуудыг хийж тухайн файлуудыг өөрийн компьютерт ачаална. Үүнд :
1. WINDOWSSYSTTEM санд файлуудыг хуулах.
2. Visual Basic–ээp өөрөөр нь тухайн control-ыг шалгуул. (Components цэсийг сонгосны
дараа Browse дэд цэсийг сонгоно). Эсвэл RegSvr32.exe коммандыг ашиглан DOS-ын
орчинд дараах байдлаар шалгана. RegSvr32.exe нь
COMMONTOOLSVBREGUTILS санд байх болно.
regSvr32.exe grid32.ocx
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
SELECT/FROM SQL Statement -ын тухай.
• Дээрх жишээнүүдэд үзсэн нилээд өргөн хэрэглэгддэг SQL statement нь SELECT/FROM
statement юм. Энэ statement нь хэд хэдэн талбарыг table -үүдээс ялган ажиллахад
ашиглагдана.
• SELECT/FROM statement -ын гол дүрэм нь:
SELECT[Field] FROM [Tables]
Field нь талбарууд бөгөөд Tables нь ажиллах мэдээллийн сангийн харгалзах table юм. Хэрэв
(*) тэмдэг тавьсан бол энэ нь тухайн table-ийн бүх талбаруудыг заана. Тухайлбал:
SELECT * FROM Titles
нь BIBLIO.MDB мэдээллийн сангийн бүх талбарууд буюу Authors, Publishers, Title, Author
талбаруудыг сонгоно. Зөвхөн Title Author table-д дараах маягаар бичнэ.
SELECT * FROM [Title Author]
• Хэрэв талбаруудыг нэр заан ялгах бол доорх байдлаар бичнэ.
SELECT Field1, Field2, Field3 FROM Table
• Хэрэв талбарын нэр нь хоорондоо зайтай бичигдсэн бол дунд хаалтанд бичиж өгнө.
SELECT Title, [Year Published] FROM Titles
Үүнийг дээрх программ SQL Tester-т бичвэл :
• DISTINCT гэсэн түлхүүр үг нь бичлэгүүдийг ялгах үед давхар бичлэг гаргахгүй
сэргийлнэ. Үүнийг SQL Tester программ дээр жишээгээр харуулъя.
SELECT PubID FROM Titles
Дээр PubID нь адилхан хэд хэдэн бичлэг байгаа нь харгадаж байна. Хэрэв дараах байдлаар
бичвэл давхар бичлэг нь устана.
SELECT DISTINCT PubID FROM Titles
Дээрх дасгалыг хийж мэдээллийн сангаа шалгаж баталгаажуулна уу!
Хичээлийн код: SW211 Хичээлийн нэр: Өгөгдлийн сангийн програмчлал
ORDER BY Clause -ыг ашиглах нь.
• SELECT/FROM statement -ыг ашиглах үед table-ийн бичлэгүүдийг эрамблэх хэрэгтэй
болдог бөгөөд ORDER BY Clause -ийг хэрэглэнэ.
Дүрэм нь:
SELECT [Fields] FROM [Tables] ORDER BY FieldSort
Хэрэв өсөх эрэмбээр нь эрэмблэх бол DESC түлхүүр үгийг авдаг.
• Үүнийг SQL Tester дээр жишээгээр үзвэл :
SELECT * FROM Titles ORDER BY PubID
Titles table-ийн бүх бичлэгүүд PubID талбараар эрэмблэгдэнэ.
Дээрх жишээнд өсөх эрэмбээр нь гэж зааж өгвөл :
SELECT * FROM Titles ORDER BY PubID DESC
• Хэрэв та хэд хэдэн талбараар эрэмблэх бол дараах байдлаар бичнэ.
SELECT * FROM Titles ORDER BY PubID, Title
• Хэрэв тодорхой тооны бичлэгийг ялган авах шаардлагатай бол Top түлхүүр үгийн
ашиглана. Top n гэвэл эхний n бичлэгийг ялгана. Top n PERCENT нь эхний n процент
бичлэгийг ялгана. Тухайлбал дараах байдлаар бичнэ.
SELECT TOP 20 * FROM Titles ORDER BY PubID, Title
SELECT TOP 20 PERCENT * FROM Titles ORDER BY PubID, Title
WHERE Clause -ын тухай.
• SELECT/FROM SQL statement -д нилээд өргөн хэрэглэгддэг нь WHERE Clause юм.
Дүрэм нь :
SELECT [Field] FROM [Tables] WHERE Criteria
• WHERE Clause доорх операторуудыг ашиглана.
< бага <= бага юм уу тэнцүү
> их >= их юм уу тэнцүү
= тэнцүү <> тэнцэхгүй
Бусад операторууд :
Between хооронд
In хувьсагчийн утганд тохирно.
Like таарч тохирно.
Энгийн Table ба WHERE Clause
• Бид BIBLIO.MDB мэдээллийн сангийн Titles table-ийн 1995 оноос хойш хэвлэгдсэн номг
бүх талбаруудаар ялган үзье. Title талбараар нь эрэмблэн дараах кодыг бичье. Үүнд :
SELECT *
FROM Titles
WHERE [Year Published]>1995
ORDER BY Title
• Хэрэв Washington мужид хэвлэгдсэн номыг ялгая гэвэл :
SELECT *FROM Publisher WHERE State = “WA” болно.
• BETWEEN түлхүүр үгийг ашиглан 1995-аас 1998 онд хэвлэгдсэнийг нь :
SELECT * FROM Titles WHERE [Year Published]>1995
BETWEEN 1995 AND 1998
• IN түлхүүр үгийг ашиглан New York, Massahsetts, Califonia мужид хэвлэгдсэн номыг
ялгавал :
SELECT * FROM Publisher WHERE State IN (‘NY’, ‘MA’, ‘CA’)
• LIKE түлхүүр үгийн ашиглан ‘g’ тэмдэгт оролцсон зохиогчоор ялгалт хийе гэвэл :
SELECT * FROM Authorts WHERE Author LIKE ‘*g*’
• Давхар нөхцөл зааж ялгалт хийхдээ логикийн AND ба OR операторыг хэрэглэнэ. 1993
онд хэвлэгдсэн Data гэсэн үг оролцож эхэлсэн номнуудыг :
SELECT * FROM Titles
WHERE [Year Published] >1993 AND Title LIKE ‘Data’
гэж ялган харна.
Хэд хэдэн Table-тэй WHERE Clause хэрэглэн ажиллах.
• Бид өмнө нь дандаа энгийн table(ганцхан)-тэй ажиллаж байсан бөгөөд хэд хэдэн table-тэй
зэрэг ажиллах нь элбэг тохиолддог билээ. Ийм тохиолдолд SQL statement-ийг яаж
хэрэглэх талаар үзье.
• Бид SELECT/FROM statement-ийг ORDER BY, WHERE Clause-ийн хамт хэрэглэж ирлээ.
Гэтэл SQL statement бичихэд хэтэрхий урт илэрхийлэл бичиглэх нь бий. Иймд дараах
хэлбэрээр бичихэд тохиромжтой байдаг.
SELECT [Fields]
FROM [Tables]
WHERE [Criteria]
ORDER BY[Fields]
SQL statement нь олон талбартай ажилладаг, хэд хэдэн table ашиглдаг, нөхцөлүүд нэлээд
өргөн бүтэцтэй байхад яаж ажиллах вэ гэдгийг доор жишээгээр харуулъя.
• Titles table нь хэвлэгч үйлдвэрийн нэрийг тодорхойлж чадахгүй бөгөөд бидэнд номын
зохиогчийг Titles table-ийн Titles талбараас, хэвлэгч үйлдвэрийн нэрийг Publisher table-
ийн Company Name талбараас авах болсаон гэвэл дараах SQL statement-ийг бичиж өгнө.
SELECT Titles.Title, Publishers. [Company Name]
• FROM Clause нь table ба талбар(field) хоёрыг доорх байдлаар холбож өгнө.
FROM Titles,Publishers
• Доорх WHERE Clause нь хоёр өөр table-ийг хооронд нь холбож өгч байгаа бөгөөд өмнөх
хэсгийг нь primary key, дараах хэсгийг нь foreing key гэж нэрлэнэ.
WHERE Titles.PubID = Publishers.PubID
• Энд бид үр дүнд үүссэн Recordset эрэмблэгдсэн байна.
ORDER BY Titles.Title
• Дээрхийг нэгтгэн бичвэл :
SELECT Titles.Title, Publishers. [Company Name]
FROM Titles,Publishers
WHERE Titles.PubID = Publishers.PubID
ORDER BY Titles.Title
SQL Tester доорх байдалтай үзэгдэнэ..
•
• Өмнөх жишээн хэвлэгч үйлдвэр яг QUE Corporation байхаар авъя гэвэл SQL statement нь
доорх байдлаар засагдана :
SELECT Titles.Title, Publishers. [Company Name]
FROM Titles,Publishers
WHERE Titles.PubID = Publishers.PubID
AND Publishers. [Company Name] = ‘QUE CORP’
ORDER BY Titles.Title
INNER JOIN Clause -ын тухай.
• Хэд хэдэн table-тэй ажиллахад INNER JOIN Clause нь WHERE Clause -тай ижил үүрэг
гүйцэтгэдэг. Харин бичлэгийн дүрэм нь бага зэргийн ялгаатай.
SELECT [Fields]
FROM Table1 INNER JOIN Table ON Linking Criteria
WHERE Criteria
ORDER BY [Fields]
SELECT нь талбаруудыг заах ба FROM нь эхний table-ийг тодорхойлж INNER JOIN нь
нэгтгэгдэх хоёр дахь table-ийг зааж өгөх бөгөөд ON дээр нэгтгэгдэх нөхцөлийг өгч WHERE
Clause дээр үндэс нөхцөлийг зааж нь ORDER BY эрэмбэлнэ.
• SELECT Clause -аар номын нэр хэвлэгчийн нэрийг ялгаж авъя.
SELECT Titles.Title, Publishers. [Company Name]
Бид PubID талбаруудаар нь INNER JOIN Clause ашиглан Titles table-ийг Publishers table-тэй
нэгтгэн дараах кодыг бичье
FROM Titles INNER JOIN Publishers
ON Titles.PubID = Publishers.PubID
Visual Basic -ын SQL функцүүд.
• BIBLIO.MDB мэдээллийн сангийн Titles table-ийн номын нэрийг том үсгээр бичиx SQL
Tester комманд нь дараах байдалтай байна.
SELECT UCase(Titles.Title) FROM Titles
• BIBLIO.MDB мэдээллийн сангийн Author table-ийн Year Born талбарыг ашиглан 1999 онд
хэдэн настай байхыг Age талбар байгуулан ялгая гэвэл :
SELECT Authors.Author,(1999-Authors.[Year Born]) As Age
FROM Authors
Энд зарим хүмүүсийн төрсөн өдөр нь бичигдээгүй учир хоосон байгааг анхаарна уу
• NULL нь тухай string байхгүй байгааг илэрхийлж хоосон зайд бичигдэнэ. IS NULL ба
NOT NULL функцүүдийг SQL statement-д хэрэглэдэг . Дараах жишээнд төрсөн өдөр нь
бичигдсэн бичлэгүүдийг ялгасан байна.
SELECT Authors.Author,(1999-Authors.[Year Born]) As Age
FROM Authors
WHERE Authors.[Year Born] IS NOT NULL
Title table-ийг дараах байдлаар эрэмбэлье.
ORDER BY Titles.Title
OUTER JOIN Clause -ын тухай.
• INNER JOIN нь хоёр table-ийн түлхүүр үзүүлэлт тэнцүү бичлэгүүдийг ялган Join буюу
нэгтгэх үйл ажилагаа хийдэг. Жишээлбэл: BIBLIO.MDB мэдээллийн сангийн хувьд
Publishers, Titles хоёр table-ийг PubID түлхүүрээр дараах байдлаар нэгтгэнэ.
Publishers INNER JOIN Titles ON Publishers.PubID = Titles.PubID
Энэ statement нь Publishers table-ийн PubID нь Titles table-ийн PubID-тэй тохирохгүй
байвал Recordset үүсэхгүй бөгөөд бүх бичлэгүүдийг түлхүүр үзүүлэлт нь тохирох үл
тохирохыг харгалзалгүй ялгалт хийдэг. Хоёр төрлийн OUTER JOIN statement байдаг.
• RIGHT OUTER JOIN нь хоёр дахь table-ийн бичлэгүүд нь нэг дэхь table-ийн
бичлэгүүдтэй таарахгүй байхад хэрэглэгдэнэ.
• SQL Tester-т :
SELECT Titles.Title, Publishers. [Company Name]
FROM Titles
RIGHT OUTER JOIN Publishers
ON Titles.PubID = Publishers.PubID
ORDER BY Titles.Title
байдлаар бичигдэнэ.
• LEFT OUTER JOIN нэг дэхь table-ийн бичлэгүүд нь хоёр дахь table-ийн бичлэгүүтэй
таарахгүй байхад хэрэглэгдэнэ.
SQL Tester -т
SELECT Titles.Title, Publishers. [Company Name]
FROM Titles
LEFT OUTER JOIN Publishers
ON Titles.PubID = Publishers.PubID
ORDER BY Titles.Title
SQL Aggregate функцүүд.
• Тухайн функцүүдээс дурьдвал :
AVG(Field) Талбаруудын дундаж утга
COUNT(Field) Талбаруудын тоо
FIRST(Field) Эхний талбарын утга
LAST(Field) Сүүлчийн талбарын утга
MAX(Field) Талбаруудын хамгийн их утга
MIN(Field) Талбаруудын хамгийн бага утга
SUM(Field) Талбаруудын утгуудын нийлбэр
• Authors table дээр жишээ авч үзье.
SELECT
COUNT(Authors Author) AS HowMany
AVG(Authors.[Year Born]) AS Ave Year
FIRST(Authors.[Year Born]) AS First Year
LAST(Authors.[Year Born]) AS Last Year
MAX(Authors.[Year Born]) AS Max Year
MIN(Authors.[Year Born]) AS Min Year
SUM(Authors.[Year Born]) AS Sum Year
FROM Authors
• Aggregate функцүүдын нь хэсэг бүлгийн үр дүнг GROUP BY clause–ийн тусламжтайгаар
боловсруулдаг.
SELECT Publishers.State, Count(Publishers.State) as HowMany
FROM Publishers
GROUP BY Publishers.State

Sw206 lec

  • 1.
    Хичээлийн код: SW206Хичээлийн нэр: Визуаль програмчлал Лекц№ 1. Visual Basic-ын орчин өгөгдлийн төрлүүд, Хувьсах хэмжигдэхүүнүүд Дэлгэц дээрээс харахад -ийн үндсэн цонх нь Title bar, Main menu, Toolbar гэсэн үндсэн хэсгүүдэд хуваагдаж байна. Эдгээр нь программын гарчиг, үндсэн цэснүүд, программыг бичихэд ашиглагдах дүрс хэрэгслүүдийг тус тус илэрхийлдэг. Visual Basic–т аливаа программ нь Project(төсөл)-үүд дээр үндэслэгддэг. Project нь бидний программын бүх хэрэгцээт мэдээллийг агуулна. VB-ийн Project-ийг нээх. -ийн программ нь Project-ийг шинээр байгуулахаас ажлаа эхэлнэ. Одоо Toolbar-аас Visual Basic–ийн Project-ийг нээхийг үзье. Open Project товчлуур нь: project-ийг нээх товчлуур • Project-ийг нээх товчлуурыг дарах. Open Project цонх дэлгэц дээр буй болно. • өөрийн ажиллах folder-ийг хайх . ( Бид Begin VB-“Beginning Visual Basic” folder -ийг сонгоё). Энэ folder нь энэ сургалтанд ашиглаглах Project-ийг хадгална. Тухайн folder-ийг нээх. • BVB Projects дэд folder-ийг сонго. Энэ folder нь VB-ийн версүүдээс хамаарч VB4Projects, VB5Projects, VB6Projects дэд хэсгүүдээс тогтох бөгөөд Visual Basic-ийн ямар верси ачаалагдсанаас шалтгаалж тохирохыг нь сонгоно. • Sample нэртэй project файлыг сонгоод нээвэл дараах цонх харагдана. Хэрэв энэ дэлгэц үзэгдэхгүй байвал VB4-т: Үндсэн цэсийн View-ийг сонгон дараа нь Form . VB5, VB6-д: Үндсэн цэсийн View -ийг сонгон дараа нь Object -ийг тус тус сонгоно. VB– ийн project нь form байгуулан ашигладаг бөгөөд form-д программын дэлгэцийн дезайныг тодорхойлсон байна. Title bar–ийн 3 жижиг дөрвөлжин дүрсээр form-ыг илэрхийлнэ. Бид form-д өнгө тодорхойлсон, дуу чимээ илэрхийлсэн, цаг хугацааг тоолсон, жижиг бөмбөдөг дүрсийг хөдөлгөх зэрэг control-ууд тэдгээртэй харьцан сонгож ажиллуулах интерфейс (interface) байгааг харж болно. Бидний жишээнд text box, label control, chegh box, option button, frame, image, list болон combo box, shape control, picture box, time control-уудыг тус тус ашигласан байна. VB-т form-ыг байгуулан хөгжүүлсэний дараа control-уудад харгалзах процедурыг бичээд программыг ачаалж ажиллуулна. VB-ийн программыг ажиллуулахдаа - Үндсэн цэсээс RUN-г сонгоод Start . - F5-ыг сонгох - Toolbar-аас программ ажиллуулах Хэрэглэгчийн зүгээс тодорхой даруулгыг mouse ашиглан сонголт хийхийг event гэж нэрлэх бөгөөд ийм төрлийн программчлалын хэлийг event-driven programming language гэнэ. Бидний программ нь дээрх төрөлд хамаарах учраас эд хэрэгсэл , өнгө зэргийг даруулга ашиглан сонголт хийж болно. Программыг ажиллаж байх үед эсвэл ажиллаж дууссаны дараа ажиллагааг зогсоохдоо Toolbar-аас сонгох буюу form дээрээс close-ыг сонгоно. Хэрэв та VB-ийн программаас гарах бол : - Үндсэн цэснээс File -ийг сонгоно. - Тухайн цэснээс Exit-ийг тус тус сонгох болно.
  • 2.
    Хичээлийн код: SW206Хичээлийн нэр: Визуаль програмчлал Бид өмнөх хичээлээс VB-ийн project, form, control-ын тухай танилцаж event-үүдийн тусламжтайгаар хэрэглэгч, компьютер хоорондын интерфейс үүсч буй талаар тoдорхой ойлголттой болсон билээ. Шинэ хичээлээр VB-ийн project -ийг үүсгэх алхмууд, тэдгээрийн тусламжиай VB -ийн программын орчинг бүрдүүлэх талаар үзэж болно. Анхны хичээлээл бид компьютерт VB -ийн ямар верси ачаалагдсанаас шалтгаалж зарим онцлог, ялгааг харуулж байсан билээ. Цаашид бид VB -ийн сүүлийн үеийн версийн хувьд хичээлээ үргэлжлүүлэх болно. Visual Basic–ын орчин Энэ бүлэгт Visual Basic-ийн aplication буюу программын дизайныг хэрхэн яаж хийж боловсруулах, программчлах явцад тохиолдох шинэ үг хэллэг, зарим товч танилцах болно. Мөн та анх удаа Visual Basic дээр программчлах болно. Мөн VB-ийн шинэ курсээр мэдэх мэдлэгийн агуулга, программ эхлэн бичигсдэд зориулан анхан шатны программ бичих жишээ зэргийг агуулах болно. Visual Basic гэж юу вэ? • Visual Basic нь Windows (Graphic User Interface - GUI) aplication-д ашиглагдах программын хэрэгсэл • Visual Basic нь event-driven хэлбэрээр программчлах бөгөөд товчлуур даруулаас болон цэсээс–аар сонгож ажиллах event processor дээр үндэслэглсэн event procedure- ууд юм... Event processor –ын Programm control бүтцийг доор үзүүлэв. Windows орчны ихэнх программын хэл, хэрэгслүүд event-driven төрөлд хамаарна. • Event-driven төрлийн программ хангамж ажиллахад амар хялбар дөхөм цаг хугацааг маш их хэмнэдэг бөгөөд Event-procedure-ууд нь ижил төстэй дахин хуулж ашиглах боломжтой байдаг. • Visual Basic программ хангамжийн зарим шинж чанараас дурьдвал: ⇒ control-ууд иж бүрэн хангалттай ⇒ ашиглаж болох дүрс зургуудтай ⇒ mouse ба keyboard -ын бүх боломжийг ашигладаг ⇒ Printer ба Clipboard санах ойтой сайн ажилладаг. ⇒ Математикийн болон мөр өгөгдөл, графикийн функцүүдийг бүрэн ашиглах боломжтой. ⇒ Дэс дараалсан ба шууд хандалттай файлуудтай ажиллах чадвартай. ⇒ Программын туршилтын ба хөрвүүдэлтийн явцад гарах алдааг засварлах боломжтой. ⇒ Өгөгдлийн ба мэдээллийн сантай ажиллах хэрэгслүүдтэй. ⇒ ActiveX-control-той ажиллана ⇒ Package & Deployment Wizard -хэлбэрээр программын хэрэгслийг хувиргаж өгнө.. Event Procedures Event ? Basic Code Event processor Basic Code Basic Code
  • 3.
    Хичээлийн код: SW206Хичээлийн нэр: Визуаль програмчлал ( setup.exe хэлбэрээр задардаг архивын хэлбэр) Visual Basic 6 ба Visual Basic-ын бусад версүүд. • DOS-ын орчингийн Visual Basic ба Windoes орчны Visual Basic-ын анхны хувь нь 1991 онд зохиогджээ. • Visual Basic-ын өргөтгөж сайжруулсан Visual Basic -3 нь 1993 онд хэвлэгдсэн байна. • Visual Basic - 4 1995 онд хэвлэгджээ. (32 bit-ийн хэрэглээг оруулж ирэв ) • Visual Basic-5 1996 оны сүүлчээр шинээр ActiveX control-ыг 16 bit-ийн хэрэглээнд ашиглахаар бүтээжээ. • Харин Visual Basic 6 нь дараах онцлогуудтайгаар шинээр буй болжээ. ⇒ Хуртай compiller-тай ⇒ ActiveX data control нь сайжирсан ⇒ Өгөгдлийн сантай ажиллах боломжийг өргөтгөсөн ⇒ report designer-шинээр хийгдсэн ⇒ Package & Deployment Wizard-ыг сайжруулсан ⇒ Internet сүлжээний программ хангамжтай холбогдох боломжтой • Visual Basic 6 нь Windows 95, Windows 98, Windows 2000 ба Windows NT үйдлийн системд тус тус ажиллана… Visual Basic Application-ны бүтэц Project (.VBP, MAK) Aplication ( Project ) нь дараах объектүүдээс тогтоно. ⇒ Form - Windows хэрэглэгчийн интерфейсийг үүсгэнэ. ⇒ Control –Form дээр график хэлбэрээр илэрхийлэгдсэн хэрэглэгчийн ханлалт ⇒ Property - Form ба Control -ийг тодорхойлох шинжүүд ⇒ Method - ялгаатай объектүүдэд зориулагдсан процедур ⇒ Event Procedure – Event горимд зарим объектүүдэд зориулагдсан процедур ⇒ General Procedure – Объектүүдэд бус project-д зориулагдсан процедур ⇒ Module - Ерөнхий процедурт бичигдсэн хувьсагч тогтмолыг тодорхойлсон мэдээллийн цуглуулга Form 1(.FRM) Form 2(.FRM) Form 3(.FRM) Module 1(.BAS) Control 1 Control 2 Control 3 Control 1 Control 2 Control 3 Control 1 Control 2 Control 3
  • 4.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Design Timer буюу загварчлах орчинд Object-ийн Property-үүдийг тдорхойлох нь Аливаа Form ба Control-ууд нь property-ээр шинжүүдээ илэрхийлж өгнө. Объек дээр property-ийг дэлгэц дээр үзэгдэх горимд ажиллуулах 2 арга байна. Эхний арга нь эхлээд form эсвэл control object-ийг сонгоод дараа нь toolbar-аас Properties window-ыг идэвхжүүлнэ. Дараачийн арга нь Properties window -ыг идэвхжүүлж дараа нь Properties window -ын Object box-ыг сонгоно. Properties window-ын Object box-т тухайн aplication-ны объектийн нэр харагдана. Манай жишээн дээр бидний form -ын нэр үзэгднэ. Доод хэсэгт нь Properties-ын жагсаалт байх бөгөөд тэндээс тухайн control-д тохирох шинжүүдийг тавьж тохируулна. Properties-ийг Alphabetic ба Categorized хэлбэрээр сонгоно. Хамгийн чухал property буюу шинж нь тухайн объектийн нэр (name) байдаг. Тэр нь Visual Basic кодчлол хийхэд ашиглагдана. Visual Basic объектийн нэрийг 3 үсгээс тогтсон prefix байдлаар загварчлал хийх явцад ашиглах нь бий. Зарим объектийн prefix-ийг доор харууллаа. Объект Рrefix Жишээ Form frm frmWatch Command Button cmd, btn cmdExit, btnStart Label lbl lblStart, lblEnd Text Box txt txtTime, txtName Menu mnu mnuExit, mnuSave Check box chk chkCoice Объектийн нэр нь 40 хүртэл тэмдэгтээс тогтох бөгөөд үсгээр эхэлсэн үсэг эсвэл доогуур зураас (_) оруулсан тэмдэгтүүд байдаг. Нэрүүд нь объектэд харгалзах event процедур кодчилолд хэрэглэгдэнэ. Программыг ажилаж байхад буюу Run Time -д Property-нүүдийг тодорхойлох. Та программыг ажиллаж байхад өөрийн aplication-д property-нүүдийг тодорхойлж өгч болно. Энэ кодчилол нь дараах хэлбэртэй байна. Үүнд: ObjectName.Property=NewValue Тухайлбал та frmStart нэртэй form-ын BackColor property-г солих гэвэл
  • 5.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал frmStart.BackColor=vbBlue гэж бичиж өгнө. Хувьсах хэмжигдэхүүнүүд • Бид кодчлолыг эхлэхийн өмнө event процедурт хэрэглэгдэх хувьсах хэмжигдэхүүнүүдийн тухай авч үзье. • Visual Basic-т хувьсах хэмжигдэхүүнүүдийг хэрэглэх дараах журмууд бий. Үүнд: ⇒ Хувьсах хэмжигдэхүүнүүдийн нэр нь 40 тэмдэгтэс үл хэтрэх ⇒ Тэдгээр нь үсэг, тоо доогуур зураасаас(_) тогтсон байх. ⇒ Эхний тэмдэгт нь заавал үсэг байх ⇒ Та Visual Basic-ийн нөөц үгнүүдийг хэрэглэхгүй байх Visual Basic-ийн өгөгдлийн төрөлүүд Өгөгдлийн төрөл Suffix Жишээ Boolen None True Interger % 14 Long (Interger) & 4532838 Single (Floating ! 3.23 Double (Floating) # 3.2346363627281 Currency @ $12.98 Date None 12/30/99 Object None n/a String $ “Visual Basic 6” Variant None дурын Xувьсах хэмжигдэхүүнүүдийг зарлах Хувьсах хэмжигдэхүүнүүдийг зарлах үндсэн 3 хэлбэр байна. Үүнд: 1. Default 2. Implicit 3. Explicit Хэрэв хувьсах implicit, explicit биш бол variant төрлийн өгөгдөл бөгөөд default хэлбэрийн хувьсах хэмжигдэхүүн байна. Энэ variant төрөл нь Visual Basic-ийн numberic , string эсвэл date төрлийн өгөгдөл байна. Implicitly хэлбэр нь дээр өгөгдлийн төрлийг тдорхойлсон хүснэгтэнд харгалзах өгөгдлийн төрлүүд болно. Жишээлбэл: TextValue$=”This is a string” нь өгөгдлийн төрлийг харин Amount%=300 нь өгөгдлийн буюу бүхэл тоон төрлийг тус тус зааж байна. • Өгөгдлийн emplicity хэлбэр нь өгөгдлийн төрлийг сайжруулсан хэлбэр юм. • Энэ хэлбэр нь өөрийн үндсэн 4 боломжоор илэрхийлэгдэнэ. Үүнд: ⇒ Procedure level (процедур түвшин) ⇒ Procedure level, static(процедур болон стстак түвшин) ⇒ Form and module level (Form ба module түвшин) ⇒ Global түвшин зэрэг болно. • Процедурт хувьсах хэмжигдэхүүнүүдийг Dim statment-аар тодорхойлж өгнө. Жишээ нь: Dim MyInt as Interger Dim MyDouble as Double Dim MyString As String, YourString As String
  • 6.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал • Процедур түвшинг зааж өгч хувьсах хэмжигдэхүүнүүдийг тодорхойлж болно. Тухайлбал: Static MyInt as Interger Static MyDouble as Double • Form (module) түвшингийн хувьсах хэмжигдэхүүнүүд нь тухайн Form-ийн хэсэг байдлаар дараах байдлаар тодорхойлогдоно. Dim MyInt as Interger Dim MyDate as Date • Global түвшингийн хувьсах хэмжигдэхүүнүүд нь Global гэсэн түлхүүр үгийг авна. Үүнд: Global MyInt as Interger Global MyDate as Date • Янз бүрийн түвшинд хувьсах хэмжигдэхүүнүүдийг зарласан байдлыг дараах жишээнээс харж болно. Module 1 Global X as Interger Form 1 Dim Y as Interger Sub Routine 1() Dim A as Double . . End Sub Sub Routine 2() Dim B as Double . . End Sub Form 1 Dim Y as Interger Sub Routine 3() Dim C as String . . End Sub
  • 7.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Лекц№ 2. Visual Basic -ын statement ба үйлдлүүд, операторууд, функцүүд, String функцүүд Basic-ийн тухай товч түүх. • Тухайн хэл нь 1960 онд Дартмоут коллежид анх үүссэн гэдэг бөгөөд Basic гэдэг нэр нь B(Beginner’s) A(All-Purpose) S(Symbolic) I(Instruction) C(Code) бүтэцтэй ажээ. • FORTRAN, Algol, Cobol хэлнүүдийн төгс хэлбэр нь болно. • 1970-аад оны дундуур коллежийн 2 оюутан Biil Gates, Allen Paul наp Altair нэртэй кассетийн зөөгчтэй микрокомпьютер дээр тухайн хэлийг зохиожээ. • Өмнөх версээ сайжруулан GW-Basic, QuickBasic гэх мэтээр нэрлэгдэн өнөөг хүрчээ. • Visual Basic нь 1991 онд зохиогджээ. Visual Basic -ын Statement(комманд) ба Үйлдлүүд • Xамгийн энгийн statement нь утга олгох statement юм. Энэ нь хувьсагчийн нэр, утга олгох оператор (=), зарим үйдлийн хэсгээс тус тус бүрдэнэ. Жишээлбэл: StartTime=Now Explorer.Caption=”Caption Spaulding” BitCount=ByteCount * 8 Energy=Mass * LIGTHSPEED ^ 2 NetWorth=Assets-Liabilities Утга олгох нь мэдээллийг агуулдаг. Statement нь нэг мөрөнд годуу бичигддэг бөгөөд (:) тэмдгийг ашиглан нэг мөрөнд хэд хэдэн statement -ыг бичиж болно. Жишээ нь: StartTime=Now : EndTime = StartTime+10 • Statement нь маш урт бичигдэх тохиолдолд (_)-ийг ашиглаж нэг мөрөнд хэд хэдэн -ийг бичнэ. Жишээ: Months=Log(Final*IntRate/Deposit+1) • Тайлбар бичихдээ Rem гэсэн түлхүүр үгийг ашиглах буюу (‘) тэмдэгтийг хэрэглэнэ. Жишээ: Rem This is a remark ‘ This is also a remark x=2*y ‘ another way to write a remark or comment Visual Basic-ын операторууд. • Хамгийн энгийн операторууд arithmetic нь операторууд болно. Үүнд: Operator Үйлдэл
  • 8.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал ^ Зэрэг дэвшүүлэх */ Үржүүлэх ба хуваах Бүхлээр хуваах Mod Модуль хэсгийг тооцох + - Нэмэх ба хасах • Parentheses буюу дугуй хаалтыг үйлдэл хооронд ашиглах • String төрлийн үйлдүүдийн нэгтгэхдээ & буюу + тэмдэгтийг хэрэглэнэ. lblTime.Caption=”The current time is” & Format(Now, “hh:mm”) txtSample.Text=”Hook this” + “to this” • Visual Basic-т үндсэн 6 харцуулах оператор байна. Үүнд: Operator Xарьцуулалт > их < бага >= их буюу тэнцүү <= бага буюу тэнцүү = тэнцүү <> үл тэнцэх • Boolen төрлийн оператор нь true эсвэл false утга авна. • Логикийн 3 оператор байдаг бөгөөд Operator Үйлдэл Not үгүйсгэл And ба Or буюу зэрэг болно. Visual Basic -ын функцүүд • Visual Basic нь маш олон функцүүдийн баялагтай бөгөөд зарим функцүүдийн тухай авч үзье. Function(функц) Буцах утга Abs Tооны абсолют утгийг олох Asc Тэмдэгтийн ба кодыг олох Chr ASCII ба ANSI кодод харгалзах тэмдэгтийг тодорхойлох Cos Өнцгийн косинусыг олох Format Date, numeric төрлийн өгөгдлийг текст striing төрөлд хөрвүүлэх Left String төрлийн өгөгдлийн зүүн талаас зарим хэсгийг ялгаж авах Len String төрлийн өгөгдлийн тэмдэгтийн уртыг тооцох Mid String төрлийн өгөгдлийн тодорхой хэсгийг ялгах Now Тухайн өдрийн цагийг ачаалах Right String төрлийн өгөгдлийн баруун хэсгээс төгсгөл хүртэл ялгах Rnd Тооны Ramdom утгийг олох
  • 9.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Sin Өнцгийн синусийн олох Sqr Тооны квадрат язгуурыг олох Str Тоог string төрөлд хөрвүүлэх Timer Хугацааг секунтээр тооцох Trim String төрлийн өгөгдлийн хоосон зайг шахах Val String төрлийн өгөгдлийн тоон утга String функцүүд • Visual Basic String төрлийн хувьсагчтай голчлон ажилладаг учир Visual Basic-ын String функцүүд маш чухал хэрэглэглэхүүн болдог байна. Label control-ын ба Caption property ба textbox-ын Text property-ууд нь string төрлийн хувьсагчид байдаг учир та тогтмол хэмжигдэхүүнээр үр дүнгээ бодож гаргахийн тулд string төрлийг тоон төрөлд хөрвүүлэх шаардлагатай болдог. • String төрлийн хувьсах хэмжигдэхүүнийг тоон хувьсагчид хөрвүүлэхдээ Val функцыг ашиглана. Жишээлбэл txtExample text property-г дараах байдлаар хувиргана. to a number, use: Val(txtExample.Text) • Тоон хувьсах хэмжигдэхүүнийг string төрөлд хувиргах-2 зам бий. Str Функц нь хөрвүүлэлтийн үр дүнг дэлгэцэнд гаргаж гаргаж үзүүлэх тохиромжгүй байдаг. Учир нь тоон оронгийн алдаа байдаг. Жишээлбэл: text box control-д MyNumber гэсэн тоон өгөгдөл дараах байдлаар, MyNumber=3.14159 гэж байвал TxtExample.Text=Str(MyNumber) байдлаар хөрвүүлбэл бүхэл тоон утга гарах юм. Хэрэв та 10-тын таслалтай гаргая гэвэл Format функцыг хэрэглэнэ. Энэ функц нь 2 аргументтэй бөгөөд эхнийх нь тухайн тоо, 2 дах нь дэлгэцэнд тухай тооны хараглах хэлбэрийг заана. Жишээлбэл: MyNumber=3.14159 гэж байвал TxtExample.Text=Format(MyNumber, “#,##”) • String xувьсагчийн дэд хэсгийг ялган авах танд олон удаа тохиолдоно. Ийм зориулалттай 3 функц байдаг. Тэмдэгтүүдийн зүүн талаас хэд хэдэн тэмдэгтүүдийг ялган авахын тулд Left функцыг хэрэглэнэ. Жишээлбэл: MyString=” Visual Basic is fun!” LeftString=Left(MyString, 3) нь MyString хувьсагчийн зүүн талаас тэмдэгтийг ялгах буюу LeftString-ийн утга нь “Vis” болох юм. • Right функц нь хувьсагчийн баруун талаас ялгах юм. MyString=” Visual Basic is fun!” RightString=Right(MyString, 6) -ээс үзвэл RightString нь “s fun!” болно. • Харин Mid функц нь string хувьсагчийн аль нэг тэмдэгтээс нь хэд хэдэн тэмдэгтийг ялгаж авна. Дараах жишээнд MyString-ын 3 дахь тэмдэгтээс 6 тэмдэгтийг ялгаж авахыг үзүүлэв. MyString=” Visual Basic is fun!” MidString=Mid(MyString, 3, 6)
  • 10.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал MidString-ын утга нь “sual B” болох юм. • String хувьсагчид хичнээн тооны тэмдэгт байгааг Len функц тодорхойлно. MyString=” Visual Basic is fun!” LenString=Len(MyString) LenString -утга нь 20 болно. • String xувьсагчаас дэд хэсгийг хайхад Instr функцыг хэрэглэнэ. Дараах жишээнд MyString хувьсагчаас “sic” дэд хэсгийг хайж олохыг үзүүллээ. MyString=” Visual Basic is fun!” Location=Instr(3, MyString, “sic”) Энд “sic” дэд хэсгийг MyString-ын 3 дахь тэмдэгмээс эхлэн хайж Location 10 гэсэн утга авч байна. • Дараагийн өргөн хэрэглэгддэг функц нь Asc ба Chr функцүүд юм. Asc функц нь тэмдэгтйин ASCII кодыг илэрхийлдэг бөгөөд Chr функц нь тоон утгат харгалзах тэмдэгтийг олно. Жишээлбэл: Asc(“A”) нь 65 гэсэн утга авах ба Chr(48)-ын утга нь“a” байна. Rnd (Random Number ) буюу санамсаргүй тоон функц • Тоглоомын болон сургалтын программ бичихэд Rnd функцыг өргөн хэрэглэдэг. Энэ функц нь янз бүрийн утга авдаг бөгөөд 1 ба 0 –ийн хооронд утга нь хэлбэлздэг. Visual Basic-т тохиолдлын функц нь дараах томъёогоор илэрхийлэгдэнэ. I=Int((Imax-Imin+1)*Rnd)+Imin • Жишээлбэл: 6 талтай шооны аль нэг талаараа буух тохиолдол нь дараах байдлаар бодогдоно. NumberSports=Int(6*Rnd)+1 100-аас 200 хүртэл тооноос сонголт хийх тооцоо нь Number=Int(101*Rnd)+100 болно.
  • 11.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Лекц№ 3. Visual Basic -ын тэмдэгт тогтмол, if , Select Case, Goto, Do/Loop, statement Visual Basic–ын нөхцөлт улирдагийн If statement оператор нь юм. • Xамгийн энгийн хэлбэр нь If/then statement юм. Жишээлбэл: If Balance – Check < 0 Then Print “You are overdrawn” Хэрэв Balance – Check -ийн утга нь 0-ээс бага бол “You are overdrawn”гэж хэвлэнэ. If/Then/End If блок нь олон хувьсагчтай бүтцэд ашиглагдана. Жишээлбэл: If Balance – Check < 0 Then Print “You are overdrawn” Print “Authorities have been notified” End If Энэ тохиолдолд хэрэв Balance – Check-ийн утга 0-ээс бага бол 2 мөр мэдээлэл хэвлэгдэнэ. Харин If/Then/Else/End If блок нь: If Balance – Check < 0 Then Print “You are overdrawn” Print “Authorities have been notified” Else Balance=Balance– Check End If гэж бичигдсэн байвал (Balance – Check < 0) бол 2 мөр мэдээлэл хэвлэх ба эсрэг тохиолдолд Balance -ийн утга бодогдоно. Elself statement нь: If Balance – Check < 0 Then Print “You are overdrawn” Print “Authorities have been notified” Elself Balance– Check=0 Then Print “Whew! You barely made it” Balance=0 Else Balance=Balance– Check End If гэж бичигдсэн бол Balance ба Check–ийн утгууд нь хоорондоо тэнцүү (Elself Balance– Check=0), тохиолдолд ялгаатай тайлбарыг хэвлэж байна. Key Trapping – процесс Программ бичих явцад тэмдэгтийн буюу товч дарсан түлхүүр утгыг авч ашиглах нь өргөн тохиолддог. Энэ процессыг Visual Basic-т Key Trapping процесс гэж нэрлэдэг. Key Trapping процесс нь control-д Key Press event процедурыг хэрэглэдэг. Энэ процедур нь дараах бүтэцтэй байна. (text box-ын нэр нь txt.Text) Privite Sub txtText_KeyPress(KeyAscii as Interger) . End Sub
  • 12.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Эндээс харахад бид дарагдсан тэмдэгтийн ASCII-ыг ашиглаж байгаа нь процедурын аргументийн хэсэгт KeyAscii хувьсагчаар дамжин тодорхойлогдож байна. Зарим түлхүүр үгийн оронд тэмдэгт тогтмолыг ашигладаг. Доорхи жишээнд txtExample нэртэй text box-ын утга нь 65-аас 90 гэсэн ASCII кодтой vbKeyA-ээс vbKeyZ гэсэн тэмдэгт тогтмол байвал дуу гаргах Beep комманд ажиллах юм. Privite Sub txtExample_KeyPress(KeyAscii as Interger) If KeyAscii >= vbKeyA And KeyAscii <= vbKeyZ Then Exit Sub Else KeyAscii=0 Beep End If End Sub Select Case – statement • Select Case statement нь олон тооны тохиолдлоос сонголт хийхэд ашиглагдана. • Бид If statement -ыг ашиглаж дараах кодыг бичье. If Age = 5 Then Catogory = “Five Year Old” Elself Age>=13 and Age<= 19 Then Category = “Teenager” Elself(Age>=20 and Age<=35) Or Age=50 Or (Age>= 60 and Age<=65) Then Category = “Special Adult” Elself Age>=65 Then Category=”Senior Citizen” Else Category=”Everyone Else” End If Энэ бичлэгийг Select Case ашиглан бичвэл: Select Case Age Case 5 Catogory = “Five Year Old” Case 13 To 19 Category = “Teenager” Case 20 To 35, 50,60 To 65 Category = “Special Adult” Case Is > 65 Category=”Senior Citizen” Case Else Category=”Everyone Else” End Select болох бөгөөд энэ нь маш хялбар байх юм. GoTo Statement Өөр нэг удирдлагын оператор нь GoTo Statement юм. энэ операторыг голцуу ямар нэг алдаанаас тойрч гарах үед хэрэглэнэ. Энд бид
  • 13.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Label-ыг ашиглана. • Тухайлбал: Line 10 Go To Line 10 Программын нөхцөл биелэх үед удирдлага Line 10 шилжинэ. Do/Loop statement Зарим давталтууд дахин хэрэглэгдэх үед уул statement-ыг хэрэглэнэ. Do While/Loop Жишээ: Counter = 1 Do While Counter <= 100 Debug.Print Counter Counter=Counter+1 Loop Энэ тохиолдолд Counter хувьсагчийн утга 1000 хүртэл давтагдана. Do Until/Loop Жишээ: Counter = 1 Do Until Counter <= 100 Debug.Print Counter Counter=Counter+1 Loop Энэ тохиолдолд хувьсагчийн утга 1000-аас хэтрэхгүй байхад дараах үйлдлүүд биелэгдэнэ. Do/Loop While Жишээ: Sum=1 Do Debug.Print Sum Sum=Sum+3 Loop While Sum <= 50 Sum хувьсагчийн утга 50-тай тэнцүү, эсвэл бага байхад дараах үйлдлүүд нь биелэнэ. Do/Loop Unti Жишээ: Sum=1 Do Debug.Print Sum Sum=Sum+3 Loop Until Sum <= 50 Sum xувьсагчийн утга 50-аас их байх хүртэл биелэнэ. Энэ statement-ыг маш бага хэрэглэх нь тохиромжтой байдаг. Үйлдлыг зогсоохын тулд Ctrl+Break товчлуурыг ашигладаг. Энэ statement-д циклээс гарахын (шилжихийн) тулд Exit Do операторыг хэрэглэдэг. Visual Basic - т тоолуурыг хэрэглэх нь. Тоолуурын функцэд For/Next statement-ыг хэрэглэнэ. Жишээ нь: For I = 1 to 50 Step 2
  • 14.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал A=I*2 Debug.Print A Next I Энд I хувьсагч нь 1-ээс 2 гэсэн алхамтайгаар өсч 50 хүртэл утга авч дараах үйлдлүүд нь биелэх болно. Хэрэв та энэ циклээс гарах шаардлагатай бол Exit For statement -ыг ашиглах болно.
  • 15.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Лекц№4 Visual Basic Toolbox, Arrays, Control -буюу олонлогууд Message Box-ын тухай Visual Basic–ын нэг чухал функц нь Message Box юм. Энэ нь command button, icon ашиглан тайлбар мэдээллийг(message box) дэлгэцэнд харуулдаг бөгөөд хэрэглэгч button ашиглан хариултыг өгнө. Message Box-ын statement хэлбэр нь буцах хариу нэхддэггүй дараах хэлбэртэй байна. MsgBox Message, Type, Title Энд : Message дэлгэц дээрх текст тайлбар мэдээлэл Type message box -ын хэлбэр Title message box -ын гарчиг Message Box-ын function хэлбэр нь дараах хэлбэртэй байх ба буцах утга нь бүхэл тоо байна. Жишээ нь: Dim Responce as Integer Responce=MsgBox(Message, , Title) • Type argument нь 4 утгаас хамаарч тодорхой үйлдлээр тайлбар мэдээллийг өгдөг. • Type аргументын 1-р утга нь button-ууд дэлгэцэнд яаж харагдах утгыг илэрхийлнэ. Утга Тайлбар Тэмдэгт тогтмол 0 зөвхөн OK button vbOkOnly 1 OK/Cancel button-ууд vbOkCancel 2 Abort/Retry/Ignore button- ууд vbAbortRetryIgnore 3 Yes/No/Cancel button-ууд vbYesNoCancel 4 Yes/No button-ууд vbYesNo 5 Retry/Cancel button-ууд vbRetryCancel Type аргументын 2 дахь утга тайлбар мэдээлэлд ямар зориулалтын icon харагдахыг тодорхойлно. Утга Тайлбар Тэмдэгт тогтмол 0 Icon xэрэглэхгүй (None) 16 Нөхцлийн icon vbCritical 32 Асуултын тэмдэг vbQuestion 48 Анхаарлын тэмдэг vbExclamation 64 Мэдээллийн icon vbInformation Type аргументын 3 дахь утга нь чухам аль button нь default байхыг (ө.х Enter-ыг дараах default утга авсан button-ыг дарах 2 адилхан): Утга Тайлбар Тэмдэгт тогтмол 0 Эхний button default vbDefaultButton1 256 2 дахь button default vbDefaultButton2
  • 16.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал 512 3дахь button default vbDefaultButton3 Type аргументын 4 дэхь утга нь modality-г харуулна: Утга Тайлбар Тэмдэгт тогтмол 0 Xэрэглээний Modal vbApplicationModal 4096 Cистемийн Modal vbSystemModal • Message Box-ын жишээ: MsgBox “This is an example of a message box”, vbOkCancel + vbInformation, “Message Box Example” Method объект • Өмнөх ажлуудад бид объект бүрд property event процедурууд байдгийг үзсэн билээ. Гурав дахь объект нь method юм. Method нь объектйин зарим шинж чанарыг харуулсан процедур эсвэл функц юм. • Бид toolbox-ыг үзэж танилцах үедээ тэдгээрийн объектийн methods-тэй ажиллах болно. Method -ын хэлбэр нь : ObjectName.Method(Аргумент) байна. Form Объект • Form нь хэрэглэгчийн өөрөө зурж боловсруулсан интерфейс юм. Энэ нь Visual Basic-ын application-ны гол хэсэг болно. • Form-ын Property-үүд : Appearance Байр, байдал BackColor Form-ын фoны өнгө BorderStyle Border-ын хэлбэр Caption Form-ын цонхны гарчиг, нэр Enabled Xэрэв Form-д дарагдсан байвал True, үгүй бол Falseутга авна. Font Фонтын хэлбэр, хэмжээ, төрөл ForeColor Текст, графикийн өнгө Picture Form дээрхи bitmap зургийн байрлал Visible Xэрэв form нууцлагдсан байвал False утга авна. • Form-ын Event-үүд : Activite Form_Activite event нь идэвхтэй цонхтой ажиллах үед илэрнэ. Click Form_Click event нь хэрэглэгч form дээр нэг удаа дарах үед илэрнэ. DblClick Form_DblClick event нь хэрэглэгч form дээр 2 удаа дарах үед илэрнэ. Load Form_Load event нь form ачаалагдах үед тохиолдоно.
  • 17.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал • Form-ын Method-ууд : Cls Form дээрх текст графикуудыг устгана. Харин объектыг устгаж чадахгүй. Print Form дээрх текст, string-ыг хэвлэнэ. Жишээнүүд : frmExample.Cls ‘ form-ыг усгаж байна. frmExample.Print “ form дээрх мэдээллийг хэвлэж байна.” Command Button товчлуур. • Өмнөх хичээлүүд дээр command button-ны тухай авч үзсэн бөгөөд нэлээд өргөн хэрэглэгддэг control юм. • Command button -ны Property-ууд : Appearance Байр, байдал Cancel Тухайн button-ыг Esc товчтой хамт дарагдсан тохиолдол Caption Button дээрх String утга Default Tухайн button-ыг Enter товчтой хамт дарагдсан тохиолдол Font Фонтын төрөл, хэлбэр, хэмжээ • Command button Event-үүд : Click Event нь тухайн button сонгогдсон үед ажиллана. Label Box-ын тухай • Label Box нь хэрэглэгч шууд хандаж засч үл болох дэлгэцэнд харагдах текстийн control юм. Өмнө нь нэлээд хэдэн жишээнүүд дээр Label Box нь ажиллах явцад л өөрчлөгллөг болохыг бид мэднэ. • Label Box-ын Property - үүд : Alignment Caption, border-ыг зэрэгцүүлэх. Apearance Байр байдал AutoSize Хэрэв True байвал caption property нь текстын хэмжээтэй тохирч байх, False бол текст засах шаардлагатай болно. BorderStyle Border-ын хэлбэр. Caption Button дээрх String утга. Font Фонтын төрөл, хэлбэр, хэмжээ WordWrap AutoSize property-тэй холбоотой ажиллана. Хэрэв AutoSize=True бол WordWrap=True бөгөөд текст боох боломжтой болох ба Caption нь босоо байрлалтай байна. Харин AutoSize=True, WordWrap=False байвал
  • 18.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал текст боох боломжгүй ба Caption нь хэвтээ байрлалтай байна. Хэрэв AutoSize=False байвал текст боох боломжгүй ба WordWrap утгагүй байна. • Label-ын Event-үүд : Click Event нь хэрэглэгчийн label box дээр нэг удаа дарахад идэвхжинэ. DblClick Event нь хэрэглэгчийн label box дээр нэг удаа дарахад идэвхжинэ. Text Box -ын тухай • Text Box нь загварчлах горимд мэдээллийг дэлгэц дээр бичихэд, хэрэглэгчид ажиллаж байхад мэдээллийг оруулахад ашигладаг. • Text Box-ын Property-ууд : Appearance Байр байдал BorderStyle Border-ын хэлбэр Font Фонтын төрөл, хэлбэр, хэмжээ MaxLength Дэлгэц дээрх тэмдэгтийн уртын хязгаар MultiLine Text Box дэлгэцэнд давхар шугам харуулах уу эсвэл дан шугам харуулах уу? PasswordChar Текстийг ганцхан тэмдэгт нэртэйгээр нууцлах. ScrollBars Scroll bar-ын хэлбэрүүд SelLength Ажиллаж байх үед сонгогдсон текстын урт SelStart Ажиллаж байх үед сонгогдсон текстын эхлэх позиц SelText Төрлийн илэрхйиллийг ачааллах Text Дэлгэцэнд харагдаж буй текст. • Text Box-ын Event-үүд : Change Text property өөрчлөгдөх бүрт хэрэглэгдэнэ LostFocus Xэрэглэгч text box-оос хөндийрөх үед ашиглагдана. KeyPress Ямар нэгэн түлхүүр утга ашиглах үед тухайн товч дарагдсан тохиолдолд хэрэглэгдэнэ. • Text Box -ын Method-ууд : SetFocus Курсорыг зохих text box-т байрлах үед ажиллана. Check Box-ын тухай • Check Box нь хэсэг, бүлэг өгөгдлөөс сонголт хийх боломжийг хэрэглэгчид өгнө. • Check Box-ын Property-үүд : Caption Дэлгэц дээрх текстын нэр Font Фонтын төрөл, хэлбэр, хэмжээ Value Xэрэв unchecked утгатай бол (0, vbUnchecked), ба бол (1, vbChecked), gray out бол (2, vbGrayed) утга авна. • Check Box-ын Event-үүд :
  • 19.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Click Tухайн сонголт хийгдсэн байхад VB автоматаар value property-ын утгыг өөрчлөнө. Option Button(товчлуур) • Option Button-ууд хэсэг бүлэг юмнаас зөвхөн нэгийг сонгох тусгай сонголтыг хийхэд ашигладаг. • Option Button-ны Property - үүд : Caption Дэлгэц дээрх текстын нэр Font Фонтын төрөл, хэлбэр хэмжээ Value Үнэн (True) эсвэл Xудал (False)утга авна. Хэсэг бүлгийн зөвхөн нэг option button нь утга авна. • Option Button-ны Event-үүд : Click Button -дарагдсан тохиолдолд ажиллах ба Value property-ын утга өөрчлөгдөнө. Arrays буюу олонлогууд. • Одоог хүртэл бид өөрийн гэсэн нэр бүхий ердийн хувьсагч хэмжигдэхүүнүүдтэй ажиллаж ирлээ. Visual Basic нь олон хувьсагчтай хувьсагчтай хэмжигдэхүүнүүдтэй ажиллах чадвартай. Энд бид нэг хэмжээстэй олон гишүүнтэй олонлогтой ажиллах тухай авч үзье. • Олонлог нь ердийн хувьсах хэмжигдэхүүнүүдийн адилаар тодорхойлогдоно. Жишээлбэл ‘Items’ нэртэй нэг хэмжээстэй 9 гишүүнтэй бүхэл тоон олонлогийг процедурт тодорхойлбол : Dim Items(9) as Integer гэж бичнэ. Хэрэв хувьсагчийн утгууд нь өмнө нь процедурт хэрэглэглэж байсан бол Static гэсэн түлхүүр үгийг авч дараах байдлаар тодорхойлогно. Static Items(9) as Integer гэж бичнэ. Form эсвэл module түвшинд Code window цонхонд хувьсагчлыг зарлах хэсэгт Dim Items(9) as Integer болно. Харин ерөнхий хувьсагчаар : Global Items(9) as Integer гэж бичнэ. • Олонлогийн index нь 0-ээс эхлэн зарлагдсан утга хүртэл гишүүдтэй бөгөөд бидний жишээнд нэртэй 10 элементтэй Item(0)-оос Item(9)хүртэл гишүүд байх юм… Item(5)нь 7- той тэнцүү гэвэл : Item(5)=7 гэж бичиж өгнө. Control-уудын олонлогууд • Заримдаа control-уудын олонлогийг application-д байгуулж өгөх нь чухал бч холбогдолтой байдаг. Тухайлбал option button нь бүлэг хэсгүүд дээр ажилладаг учраас тийм шаардлага зайлшгүй. Control-уудын олонлогийн байгуулах 2 арга бий. Үүнд : 1. Зөвхөн нэгд нь харгалзах control-ыг байгуулаад шаардагдах property-нүүдийг тавиад VB едиторыг ашиглан хуулах. 2. Ижил нэртэй бүх control-уудыг байгуулах
  • 20.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал • Control-уудын олонлогууд нь index-д харгалзах нэр авдаг. Жишээлбэл : lblExample нэртэй label box-ын 6 дахь элементийн Caption Property-ийг : lblExample(6).Caption=”This is an example” байх юм. Frame-ийн тухай • Бид option button хоёулаа бүлэгт ажилладаг тухай үзсэн билээ. Frame нь бүлэг хэсгийн control-ыг form дээр холбож өгөх үүргийг гүйцэтгэнэ. Харин option button ажиллаж байх тохиолдолд frame нь ямар button-д нөлөөлж байгааг илэрхийлдэг. • Бүлэг дэхь control-уудыг байгуулахын өмнө frame-ыг зурж өгдөг. Дараа нь frame -ын дотор control-уудыг байгуулна. • Frame -ын Property-үүд : Caption Frame-ын толгой хэсгийн мэдээлэл Font Фонтын төрөл, хэлбэр, хэмжээ List Box -ын тухай. • List Box нь аливаа зүйлсийн(элементийн) жагсаалтаас хэрэглэгч нэг эсвэл, хэсгийг сонголт хийж , хэрэв тухайн зүйлийн(элементийн) тоо нэмэгдэж 190 байвал дэлгэц дээр харагдаж scrollbar нь автоматаар хөдөлгөөнд шилждэг. • List Box - ын Property -үүд : Appearance Байр, байдал List Жагсаалтын элементүдийн олонлог ListCount Жагсаалтийн элементийн тоо ListIndex Жагсаалтийн хамгийн олон соногогдсон элементын тоо. Хэрэв тийм элемент байхгүй бол ListIndex = -1. MultiSelect Жагсаалтаас олон тооны сонголт хийгдсэн control-ууд. Хэрэв ийм сонголт байхгүй бол 2 гэсэн утга авна Selected True эсвэл False утга авдаг жагсаалтаас сонголт хийгдсэн эсэхийг тооцох Sorted Жагсаалтийн элементүүд “Ascii” кодоор эрэмблэгдсэн эсэх. Эрэмблэгдсэн бол True утга авна Text Сонгогдсон элементйн текст • List Box - ын Event - үүд : Click Event нь жагсаалтаас нэг дарж элемент сонгох үед ажиллана. DblClick Event нь жагсаалтаас 2 дарж элемент сонгох үед ажиллана. • List Box -ын Method -ууд : AddItem Жагсаалтад элемент нэмнэ.
  • 21.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Clear Жагсаалтын бүх элементүүдийг устгана. Removeltem Жагсаалтаас элемент хасна. Жишээ: List1.AadItem “This is an added item” List1.Clear List1.Removeltem 4 ‘ list1 жагсаалтийн 4 дэхь элемент устана. Combo Box - ын тухай • Combo Box нь listbox-той төстэй. Ялгаатай тал нь зөвхөн сонгогдсон элементээ дэлгэцэн дээр харуулдаг. • Combo Box - ын Property - үүд : Appearance Байр байдал. List Жагсаалтын элементүүдийн олонлог. ListCount Жагсаалтийн эмементийн тоо ListIndex Жагсаалтаас хамгийн олон сонгогдсон элементийн тоо. Хэрэв тийм элемент байхгүй бол ListIndex = -1 Sorted Жагсаалтийн элементүүд ASCII кодоор эрэмблэгдсэн эсэх Эрэмблэгдсэн бол True утга авна. Text Сонгогдсон элементийн текст Style Combo Box-ын хэлбэр Style=0, Dropdown combo; Xэрэглэгч сонголтоо өөрчилж болно. Style=1, Simple combo; Жагсаалтаас сонголт хийхгүй. Style=2, Dropdown list; Хэргэлэгч зөвхөн жагсаалтаас сонголт хийнэ. • Combo Box Event -үүд : Click Event Жагсаалтаас нэг дарж элемент сонгох үед ажиллана. DblClick Event Жагсаалтаас 2 дарж элемент сонгох үед ажиллана. • Combo Box -ын Method -ууд : AddItem Жагсаалтад элемент нэмнэ. Clear Жагсаалтын бүх элементүүдийг устгана. RemoveItem Жагсаалтаас элемент хасна. Жишээ : IsExample.AadItem “This is an added item” IsExample.Clear IsExample.Removeltem 4 ‘IsExample жагсаалтийн 4 дэхь элемент устана.
  • 22.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Лекц№5 Visual Basic Toolbox-ын зарим хэрэгслүүд. Давхрагуудыг харуулах. • Энэ бүлэгт бид control-уудын график төрлүүд line tools, shape tools, picture box ба image box-уудын тухай үзэх бөгөөд давхрагуудыг харуулах талаар ойлголт эзэмших юм. • Элементүүд нь form дээр заавал нэг давхрага дээр байдаггүй. Үндсэндээ 3 давхрага дээр байрлана. Бүх мэдээллүүд дээд буюу bottom layer дээр, label box, image box, line tools ба shape tools-үүд дунд давхрага буюу middle-layer. Эхний давхрага буюу top-layer. Line Tool буюу шугамын хэрэгслүүд • Line tool нь шулуун шугамыг янз бүрийн өнгө өргөнтэй байгуулна. • Line tool -ын property-үүд : BorderColor Шугамын өнгийг тодорхойлно. BorderStyle Шугамын хэлбэр, маягийг тодорхойлно. BorderWidth Шугамын өргөнийг тодорхойлно. • Line tool -д events, mehod байхгүй. Shape Tool - Хэлбэр, маягийн хэрэгсэл. • Shape Tool нь тойрог, зууван дөрвөлжин, гурвалжин зэргийг байгуулна. Янз бүрийн хэлбэр, өнгө ашиглана. • Shape Tool -ын Properties-үүд : BackColor Shape-ын дэвсгэр өнгийг тодорхойлно. BackStyle Дэвсгэр нь гэрэлтдэг эсвэл бүдэг бадаг аль нь болох BorderColor Shape -ын хүрээний өнгө. BorderStyle Shape -ын хүрээний хэлбэр маяг BorderWidth Shape -ын шугамын өргөн FillColor Shape -ын дотоод өнгө FillStyle Shape -ын дотоод хэсгийн хэв маяг Shape Shape -ын дөрвөлжин, гурвалжин, дугуй, тойрог зэргийн аль нь болох Хэвтээ ба босоо Scroll Bar-ууд • Windows -ын application-д scroll bar-ууд маш өргөн хэрэглэгддэг. Bottom-layer: form Middle-layer: label, image, shape, line Top-layer: other controls and objects
  • 23.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал • Scroll Bar-ын 2 төрөл нь хоёул 3 мужаас тогтоно. end arrow хэсэгт scroll box бага хэмжээтэй, bar area хэсэгт их хэмжээтэй хөдөлгөөн хийж байна. • Scroll Bar -ын Property-үүд : LargeChange Bar area - мужид дарсны дараа өсөлтийн хэмжээ нэмэгдэх, хасагдах нь Value property-ээс хамаарна. Max Баруун алсын хэвтээ scroll bar, сүүл хэсгийн босоо scroll bar-уудын утга value нь –32,768-аас 32,767 хүртэл хувьсах утга авна. Min Зүүн алсын хэвтээ scroll bar, эхний хэсгийн босоо scroll bar-уудын value утга нь –32,768-ааc 32,767хүртэл хувьсах утга авна. SmallChange Төгсгөлийн хэсгийн сумын хөдөлгөөнд өсөх хэмжээ нь Value property-ээс хамаарна. Value Scroll box-ын байрлалыг заана. Хэвтээ Scroll Bar-ын Property-үүд : Босоо Scroll Bar-ын Property-үүд : • Scroll Bar -ын Event-үүд : Change Scroll box-ын байрлалыг тооцно. Scroll Энэ event нь Scroll box-ын үргэлжлэх хөдөлгөөнийг тооцно. Picture Box - хэрэгсэл. • Picture Box -нь графикийн мэдээллийг form дээр байгуулахад хэрэглэгдэнэ. • Picture Box нь form-ын дээд давхрагад үзэгдэнэ. End arrow Sroll box (thumb) Bar area SmallChangeLargeChange Min Max LargeChangeSmallChange Value LargeChange Max Value LargeChange SmallChange
  • 24.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал • Picture Box -ын Property-үүд : AutoSize Xэрэв True бол нь графикт хэмжээгээрээ тохирч байна. Font Picture box дээр бичигдэх ямар нэг зүйлийн фонтын хэмжээ, хэв маягийг тодорхойлно. Picture Picture box дээр зурагдах график файлыг байгуулна. • Picture box -ын Event-үүд : Click Picture box нэг удаа сонгогдоход ажиллана. DblClick Picture box 2 удаа сонгогдоход ажиллана. • Picture box -ын Method-үүд : Cls Picture box -ыг устгана. Print Picture box дээрх мэдээллийг хэвлэнэ. Жишээ: picExample.CIs ‘picExample box-ыг устгана. picExample.Print “a picture box” ‘string текстийг хэвлэнэ. • Picture box -ын LoadPicture процедур. Picture box-ын чухал функцүүдийн нэг нь LoadPicture процедур юм. энэ нь Picture box-ыг ажиллаж байх үед Picture property тавьж өгнө. Жишээ нь: picExample.Picture = LoadPicture(“c:pixsample.bmp”) Энэ комманд нь picExample picture box-т c:pixsample.bmp файлыг ачаалж өгнө. • Picture box-т ачаалагдах график төрлийн файлын 5 төрөл байна. Үүнд : Bitmap Пикцелүүдээс тогтсон, .bmp өрөгтгөлтэй дүрсийн файл. Icon 32х32 хэмжээтэй зоориулалтын bitmap файл .ico гэсэн өргөтгөлтэй. Metafile Тойрог шулуун зэрэг графикийн .wmf өргөтгөлтэй файл. JPEG JPEG(Joint Photographic Experts Group) нэртэй 8 ба 24 өнгөтэй bitmap файл, .jpg өргөтгөлтэй. GIF GIF (Graphic Interchange Format) нэртэй bitmap файл. Интертэд өргөн ашиглагддаг. .gif өргөтгөлтэй файл 256 өнгө хэрэглэнэ. Image Box - ын тухай • Form дээр графикийн мэдээлэл байгуулах хамгийн энгийн хэрэгсэл. Энэ нь picture box -той маш адилхан дэлгэц дээр ачаалагдсан зураг засах боломжгүйгээрээ ялгаатай. • Image Box нь дунд давхрага дээр харагддаг, Stretch property-г ашиглан өргөсөж, багасдаг. • Image Box -ын Property-үүд :
  • 25.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Picture Image Box дээр графикийн файл байгуулна. Stretch Хэрэв False утгатай бол Image Box графикт тохирох хэмжээгээр ихсэж, багасна. True ,бол график нь тухайн муждаа хэмжээгээ өөрчилнө. • Image Box -ын Event-үүд : Click Image Box -ыг нэг даралтаар сонгох үед ажиллана. DblClick Image Box -ыг хоёр даралтаар сонгох үед ажиллана. LoadPicture function-ыг ашиглах бөгөөд bitmap(.bmp), icon(.ico), metafile(.wmf), GIF file (.gif), ба JPEG files (.jpeg) файлуудыг мөн энэ процедурын тусламжтайгаар ачаална. Жишээ: Picture ба Image Box –ууд 1. Шинээр project нээе. Form дээр нэг Picture Box ба нэг Image Box байгуулъя. 2. Picture property-үүдэд адилхан Picture ба Image Box байгууъя. Хэрэв таны Visual Basic-ын графикийн файлууд анхны байдлаараа суусан бол (install -хийгдсэн бол) bitmap файлууд bitmap folder-т, icon файлууд icon folder-т, meta файлууд meta folder-т тус тус байна. 3. Хоёр box-уудын хэмжээг ихэсгэж багасгая. Дараа нь тэдгээрийн давхрагийг сонирхож нэг box-ын эхлэл дээр нөгөөг байгуулъя. Image Box -ын Stretch property-ыг өөрчилж үзье. Ямар үр дүн гарч байгааг сонирхцгооё ? Drive List Box -ын тухай • Drive List Box нь хэрэглэгч ажиллаж байх үе компьютерийн зөөгчөөс чухам алийг нь ашиглахыг combo box-ын жагсаалтаас сонгох боломжийг хэрэглэгчид олгодог. • Drive List Box -ын Property -үүд : Drive Cонгосон зөөгчийн нэр. • Drive List Box -ын Event -үүд : Change Cонгосон зөөгчийг өөрчлөх тохиолдолд ажиллана. Directory List Box -ын тухай • Directory List Box нь салаалсан бүтэцтэй дискний ба дэд сангуудын жагсаалтыг дэлгэц дээр харуулна. Сангуудын жагсаалт нь List Box -т тусгагдана. • Directory List Box-н property-үүд : Path Сангуудын замыг(path) зааж өгнө. • Directory List Box -ын Property -үүд : Change Cангийн сонголт өөрчлөгдөхөд ажиллана. File List Box -ын тухай
  • 26.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал • File List Box нь ажиллаж байх үед сангуудын доторх файлуудын жагсаалтаас сонголт хийхэд ашиглагдана. Та файлуудын төрлийг сонгох боломжтой. • File List Box -ын Property -үүд : FileName Cонгосон файлын нэр ListCount Жагсаалтад буй файлуудын тоо List List box-т буй файлын нэрүүдийн олонлог MultiSelec t List box -оос олон тооны файлуудыг сонг ох Path Tухайн сангийн замыг тодорхойлно. Pattern * ба ? тэмдэгтийг ашиглан ижил төрлийн файлыг соногох. • File List Box -ын Event-үүд : Click Файлын нэрийг хоёр дарж сонгоход ашиглана. PathChange List box буй файлуудын сангийн зам өөрчлөгдөхөд ажиллана. Drive, Directory ба File List Box -үүдийг зэрэгцүүлэн ажиллуулах • Drive, Directory ба File List Box -ууд нь файлын нэрийг тодорхойлоход дандаа хамт хэрэглэгддэг. • Тухайн зөөгчийг солих үед (Drive box Change event), та сангуудын замыг зааж өгөх хэрэгтэй болдог. Жишээлбэл: Хэрэв drvExample нэртэй зөөгч дээрх dirExample directory box -ын замыг : dirExample.Path = drvExample.Drive гэж зааж өгнө. • Хэрэв сангуудын нэр өөрчлөгдвөл (directory box Change event), та filExample нэртэй file box -ын хувьд дараах кодыг бичнэ. filExample.Path = dirExample.Path • Файлын замыг заахдаа backslash () тэмдэгтийг ашиглана. • Жишээлбэл: Dim YourFile as String If Right(filExample.Path, 1) = “” Then YourFile = filExample.Path + filExample.FaleName Else YourFile = filExample.Path + ”” + filExample.FaleName End If imgExample.Picture = LoadPicture(YourFile) Common Dialog Box хэрэгсэл • Бид файлд хандаж ажилладаг drive, directory ба file name list box-уудыг үзсэн билээ. Харин бид одоо файлтай шууд хандан ажилладаг Windows орчны хэрэглээний 2 application-ыг авч үзье. Файлыг нээx Open File, хадгалах Save File үйлдийг гүйцэтгэдэг dialog box-той танилцъя.
  • 27.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал • Visual Basic-т Windows орчны хэрэглээний дээрх үүргийг хийх command dialog box нэртэй Open ба Save As dialog box-ууд ашигладаг. • Энэ control нь Visual Basic-ын toolbox-т байхгүй бол та нэмж энэ toolbox-ыг оруулах хэрэгтэй.Үүний тулд Project цэсийн Components-г сонгоод жагсаалтаас Microsoft Common Dialog Control-ыг авч OK дарна уу. • Энэ Common Dialog хэрэгсэл нь form дээр үл үзэгдэх байдлаар үндсэн 5 Show’ methods ашиглан ажилладаг. Үүнд : Method Common Dialog Box ShowOpen Open dialog box ShowSave Save dialog box ShowColor Color dialog box ShowFont Font dialog box ShowPrinter Printer dialog box • cdlExample нэртэй common dialog Open box нь : cdlExample.ShowOpen гэж бичигдэнэ. Open Common Dialog Box -ын тухай • Open Common Dialog Box нь хэрэглэгч ямар нэгэн файлын нэрийг өгч нээх ба ShowOpen Method-ыг ашиглана. Жмшээлбэл: • Open Dialog Box -ын Property -үүд: Cancel error Xэрэв Cancel button сонгогдвол алдаа өгөх бөгөөд True утга авна. DialogTitle Open Dialog Box -ын нэр FileName Hээх файлын нэр Filter List box дээр файлуудыг шүүж харуулна. Жишээлбэл: Bitmap(*.bmp), icon(*.ico), metafile(*.wfm), GIF (*.gif), JPEG(*.jpg) байдалтай шүүнэ. FilterIndex Ямар төрлийн файл сонгож байгааг заана.
  • 28.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Хэрэв бол гэсэн утга авна. Flags Open Dialog Box -ын ялгах утга Save As Common Dialog Box -ын тухай • Save As Common Dialog Box нь файлд нэр өгөх хадгалах үүрэг гүйцэтгэнэ. Энд ShowSave method хэрэглэнэ . Тухайлбал: • Save As Dialog Box -ын Property -үүд : CancelError Xэрэв Cancel button сонгогдвол алдаа өгөх бөгөөд True утга авна. DefaultExt Хэрэв файлыг өргөтгөлөөр нь сонголт хийх бол өргөтгөлийг зааж өгнө. DialogTitle Open dialog box -ын нэр FileName Hээх файлын нэр Filter List box дээр файлуудыг шүүж харуулна. Жишээлбэл: Bitmap(*.bmp), icon(*.ico), metafile(*.wfm), GIF (*.gif),JPEG(*.jpg) байдалтай шүүнэ. FilterIndex Ямар төрлийн файл сонгож байгааг заана. Хэрэв bitmap бол 1 гэсэн утга авна. Flags Open dialog box -ын ялгах утга хавсралт 2-оос үзнэ үү Save As Dialog Box -ын жишээ. 1. Энд Open example -д зарим засвар хийхэд хангалттай. Үүнд : DialogTitle property-д common dialog control -ын нэрийг “Save As Example” ба DefaultExt property -д мөн “bmp”гэж заая. 2. cmdDisplay_Click процедурын нэрийг ShowSave гэж өөрчилье 3. QExampleSave нэртэйгээр LearnVB6VB CodeClass 4 folder-т хадгалъя.
  • 29.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Лекц№6 Visual Basic–ын график ба түүний хөдөлгөөн. Энэ бүлэгт бид Visual Basic -ын график горим зураг дүрсийг хөдөлгөөнд оруулах тухай авч үзэх болно. Үүнд : • Picture Box-ыг олонлогийн ашиглан зургийг хөдөлгөөнд оруулах. • Visual Basic -т бусад зургийн хэрэгслийг ашиглан график дүрслэлийг зурах, зохиох • Clipboard, Scanner гэх мэт эх үүсвэрүүдээс зураг дүрсийг оруулж, нэгтгэх График болон зургийн хөдөлгөөн нь маш өргөн хэрэглэгддэг. Энэ нь image, дүрсийг ашиглаx, тэдгээрийг засах өөрчлөх, хэрэглэгчийн интерфейсийг сайжруулах чухал хэрэгсэл болдог. Microsoft -ын Windows 95, NT-д зургийн хөдөлгөөний дэс дарааллыг өргөн ашигласан байдаг. Тухайлбал файд хуулах дискийг шалгах гэх мэт. Бусад хэрэглээний программууд ч гэсэн зургийн хөдөлгөөнийг өргөн ашигладаг. Жишээ нь Nortoon AntiVirus программд X-туяаг ашиглан файлууд руу дэс дараалан хандаж вирусын хайлт хийсэн байдаг. үүнийг дараах зурагт үзүүлэв. Image байгуулан тэдгээрийн харагдах шинж чанар нь false утгатай байх ба дараа нь зургийн хөдөлгөөн дэлгэцэнд харагдах болно. үүний дараа дүрсүүдийн төрөл нь байгуулагдах бөгөөд энэ нь үл харагдах горимд байдаг. Доорх жишээнд- Тэмдэглэх нь: Control array анхны control-ыг үүсгэсний дараа copy, paste коммандуудыг ашиглан дараах control-уудыг дэс дараалан үүсгэдэг. Доорх жишээнд утаснуудын зургийг Paint Shop Pro-д text tool ашиглан байгуулжээ. Visual Basic-ыг эхлүүлж хоосон picture box-ын control array-ыг байгуулж графикийн файлуудыг тэдгээрт суулгаж өгөх ба дараа нь 2 label box-ыг “bring” нэртэйгээр, 2 timer control-ыг хугацаа хэмжих зориулалтаар хийж өгье. Үүнийг нэг хугацаа хэмжигч нь зургийн хөдөлгөөний дэс дарааллын хурдыг хянах ба нөгөө хугацаа хэмжигч нь 2 хаягийг хянах юм. доорх зурагт интерфейсийг төрлөөр нь харуулав. Тэмдэглэх нь: Зургийн хөдөлгөөнд ашигласан дүрс, image нь form дээр тал талаасаа харагдах боломжгүй байдаг. Аль нэг timer дээр байрлах зургийн хөдөлгөөн нь доорх кодоор хийгдэнэ. Үүнд : : Private Sub trmAnimate_Timer() Static PhoneNo As Integer ImgAnimation.Picture = imgStill(PhoneNo).Picture PhoneNo = PhoneNo +1 If PhoneNo = 8 Then PhoneNo = 0 End Sub Уг хугацааны интерваль үнэхээр өндөр байдаг. (ойроцоогоор 200). Өөрөөр хэлбэл value-ын утгаас хамаарч туршилтын үр ашиг нь харагдана. PhoneNo хувьсагч нь Static гэж зарлагдсан учир бусад нь түүний утгийг авч чадахгүй ба цаашилбал цаг тутамд нь дохио өгч байдаг. Хувьсах хэмжигдэхүүнүүдийн бүрэлдэхүүн нь хувьсагчийн утгыг control -д ашиглаж чадах ба дүрс нь зургийн хөдөлгөөн рүү дарааллаараа шилждэг. Нөгөө timer нь 2 хаягийн (lblBring1, lblBring2) үзүүлэлтийг нууцлахад ашиглагдана. Хугацааны интервал 1200 орчим харьцангуй удаан байна.
  • 30.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Иймээс хаяг бүр нь хангалттай урт хугацаанд харагдана. Private Sub tmrText_Timer() If lblBring2.Visible Then lblBring2.Visible = False lblBring1.Visible = True Else lblBring1.Visible = False lblBring2.Visible = True End If End Sub 1. Зургийн хөдөлгөөн нь picture box -ын байрлалыг солиход идэвхтэй байдлаа хадгална. Үүнийг хийхийн тулд timer -т нэг шулуун нэмж picture box -ын зүүн ба дээд properties -үүдийг солиход зургийн хөдөлгөөн нь бодит байдлыг харуулна. Энэ ашигтай үзэгдлийг ANIMATE.ZIP application-г ажиллуулж харж болно. 2. Зураг дүрс байгуулах ба тэдгээрийг хөдөлгөөнд оруулах зарим жишээнүүдийн дарааллыг доор үзүүлбэл : • Дохионы гэрэл асах • Харилцан ярианы зурагт кино, 2 хүний хоорондын яриа • Нэг савнаас нөгөө савруу шингэн зүйл хийж дүүргэх • Хэн нэгэн шилээр юм уух • Цас эсвэл бороо орох 3. Туршлагаас үзэхэд ихэнх зураг дүрсийн цуглуулга нь Paint Shop Pro гэх мэт зургийн программын хэрэгсэл дээр хийгдэж боловсруулагддаг. Windows -ын зургийн дэлгэцийг Clipboard-д ‘Print Screen’ button-ыг дарж хуулах ба Paint Shop Pro-д хөрвүүлэхдээ ‘Edit’ цэсийн ‘Paste’-ыг сонгоно. Үүний нэг хэрэглээ бол дэлгэцийн дүрсийг компьютерт хадгалах, тэдгээрт тайлбар хийх, multimedia online help системийг байгуулах зэрэг болно. Өөрөөр хэлбэл та бүгдэд нь тайлбар хийхийг хүсэхгүй бол зөвхөн дүрсийн хувьд мэдээллийг санах байгууламжид шилжүүлэх ба дараа нь зарим хаягийг өөрийн хүсэж буй хэсэг дээр хэлийг ч байгуулж болно. Дараа нь хаягуудийн transparent-ыг BackStyle-ээр хийж caption-г зөөнө. Энэ хаягийн хувьд үр ашигтай боловч харах боломжгүй. Гэвч урдынх шигээ үр дүнг хүлээн авч чадна. Харин тайлбар хийсэн тохиолдолд хаяг нэмж lblAnnotation -ны нэрийг сольж болно. Энэ тохиолдолд MouseMove event нь lblAnnotation.Caption = “Resize Handle” гэж бичигдэнэ. Учир MouseMove нь урд нь ашиглагдсан байдаг ба хэрэглээ нь бүх хэрэглэгчийн хувьд зургийн шаардлагатай хэсгийг тодорхойлох ба тайлбарын label caption нь автоматаар засагдана. Бичгийн цаасны хэмжээтэй фото зургуудыг оруулж ирэхэд PC Scanner-ийг ашигладаг. Тухайлбал олон фото зургууд ба фонтууд нь (clip-art-уудын сан) CD-ROM-д хадгалагддаг бөгөөд тэндээс фото зураг фонтуудыг ашиглах нь элбэг тохиолддог. Зөвлөх нь: Xамгийн өндөр шаардлагатай дүрс зураг нь үргэлж шаардлагатай бөгөөд тэдгээтийг Visual Basic-т ашиглах бүрэн болoмжтой боловч тэдгээр нь зарим саад учирах шалтгаан нь болдог. Ихэнх Scanner -үүд pixel-ийг хэмждэг бөгөөд үүнийг зургийн дэлгэцэнд харагдах хэмжээг тооцоход ашиглана. Тэмдэглэх нь: Янз бүрийн хэлбэртэй өөр өөр графикуудыг image нь өөртөө агуулж чадах боловч зарим нь бусдаасаа илүү үр дүнтэй харагддаг. Дээрх зураг нь GIF өргөтгөлтэй ба 36k- аас илүү багтаамжтай дискэнд хадгалагдах шаардлагатай юм. Xэдий тийм боловч GIF өрөгөтгөлтэй дүрс нь илүү үр дүнтэй харагддаг.
  • 31.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Лекц№7 Visual Basic–ын Мэдээллийн сан • Энэ бүлэгт бид мэдээллийн баазын тухай ойлголт, түүнийг хэрхэн яаж хэрэглэх, Visual Basic-т мэдээллийн сантай ажиллах зарчим, арга, техник зэргийг үзэх болно. Мэдээллийн сан хичээлийн агуулга ⇒ Microsoft Visual Basic-т мэдээллийн сангийн интерфейс, программын хэрэгслүүдийг хэрэглэсний ашигтай тал. ⇒ Мэдээллийн сангийн бүтэц, технологи, мэдээллийн санг байгуулах ⇒ Visual Basic-ын DAO (data access object) control-ыг мэдээллийн сантай яаж холбох тухай ⇒ ADO (ActiveX data object) data control-ыг мэдээллийн сантай яаж холбох тухай ⇒ Visual Basic-ын data bound control ⇒ SQL (Structure Query Language)-ыг ашиглан мэдээллийн сангийн query байгуулах ⇒ Mэдээллийн сангийн хайх техникийн тухай ⇒ Learn how to use the Visual Basic Data Manager to creat a database ⇒ Learn database management techniques ⇒ Learn to creat and produce database reports ⇒ Learn how to distribute a Visual Basic database application ⇒ Understand connection to remote databases ⇒ Introduce multiple-user and database security concepts Хичээлийн бэлтгэл ажил • Visual Basic-ын Mэдээллийн сантай ажиллахад DAO (data access object) control ба ADO (ActiveX data object) data control-ууд ашиглагдана. ADO control нь зөвхөн Visual Basic6–д хэрэглэгддэг байна. Мэдээлийн сан гэж юу вэ ? • Мэдээллийн сан нь мэдээллийн цуглуулга юм. эдгээр мэдээллүүд нь тодорхой нарийн бүтэцтэй байх бөгөөд бид энэ бүтцийг ашиглан мэдээлэлтэй харьцах, засварлах зэрэг үйлдлийг гүйцэтгэдэг. • Ямарч мэдээллийн сан нь хэрэглэгч мэдээлэл хоорондын интерфейс хийдэг. Энэ үүргийг database management system (DBMS)буюу Мэдээллийн санг удирдах систем гүйдэтгэнэ. • DBMS-ийн гүйцэтгэх үүрэг нь хялбархан. Мэдээллийн сангийн дараах үйл ажиллагааг гүйцэтгэдэг. Үүнд : 1. Өгөгдлийг харах 2. Зарим нөхцөл хангасан өгөгдлийг хайх 3. Өгөгдлийг засварлах 4. Өгөгдлийг нэмэх 5. Өгөгдлийг устгах Visual Basic чухам хаана тохирох вэ ? • Visual Basic нь хэрэглэгч, мэдээллийн сан 2-ийн хооронд интерфейс үүсгэдэг учир front- end хэрэглээ үүсгэж байна гэж ярьдаг.
  • 32.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал • Visual Basic-ын application нь мэдээллийн сантай шууд холбогдож чаддаггүй. Мэдээллийн сан ба application 2-ын хооронд data control, database engine гэсэн үндсэн бүтцээс тэдгээрийн интерфейс тогтоно. • Data control нь Visual Basic-ын объект бөгөөд application ба мэдээллийн санг database engine-ийн хамт интерфейс холбоо үүсгэдэг байна. • database engine нь Visual Basic-ын удирдах системийн зүрх гэж яригддаг. Энэ нь мэдээллийн санг удирдаж ажилладаг иж бүрэн систем юм. 2. Мэдээлийн сангийн тухай ойлголт. • Өмнөх бүлэгт бид мэдээллийн сан нь гол термүүдийн нэг болохыг үзсэн билээ. Jet database engine нь Visual Basic application-ны зүрх гэдгийг ойлгосон бөгөөд энэ бүлэгт мэдээллийн сангийн бүтэц тэдгээрийг яаж байгуулдаг болохыг үзэх юм. Мэдээллийн сангийн бүтэц зохион байгуулалт. • Хамгийн энгийнээр тодорхойлсон мэдээллийн сан нь мэдээллүүдийн цуглуулга юм. Энэ цуглуулга нь сайн тодорхойлогдсон нэг ба хэд хэдэн table-үүдийн нэгдэл байдаг. • Мөрүүд буюу rows нь мэдээллийн сангийн table-ийн бичлэгүүд буюу records-ыг тодорхойлно. • Баганууд буюу columns нь мэдээллийн сангийн table–ийн шинж чанарыг тодорхойлно. Энэүү шинж чанарыг нь fields гэж нэрлэнэ.Field бүр нь мэдээллийн нэг хэсгийг нарийн тодорхойлно. Түүнийг тодорхойлоход өгөгдлийн төрлийг зааж өгөх хэрэгтэй. Тухайлбал : Binary, Boolen, Counter, double, Single, Long, Integer гэх мэт. • Доор энгийн мэдээллийн сангийн жишээг харуyлав. Field Д/д Нэр Төрсөн өдөр Өргөн Өндөр 1 Болд 01/04/58 72 170 2 Дулам 11/22/61 65 125 3 Жаргалмаа 06/11/57 68 130 • Ихэнх мэдээллийн сангууд index-ийг мэдээллийн санд буй мэдээллтэй хурдан харьцахын тулд хэрэглэгддэг. Мэдээллийн сан нь ганцхан table-тэй бол flat database гэнэ. Relational төрлийн мэдээллийн сан. • Ихэнх мэдээллийн сан нь олон table-тэй ажилладаг. Table бүр нь бичлэг эсвэл талбаруудаараа хоорондоо логик холбоотой байдаг. Зарим тадбарууд нь ерөнхий байх бөгөөд тэдгээрийн хоорондын холбоог relation гэж нэрлэнэ. Ийм төрлийн table-үүд бүхий мэдээллийн санг relational database гэнэ. • Бид 1000 бүтээгдэхүүний жагсаалт бүхий manufacturer name, address, phone гэх мэт талбартай мэдээллийн сантай ажиллах боллоо гэж үзье. Хэрэв үйлдвэрийн нэр солигдвол утасны дугааруудыг мөн сольж 1000 бичлэгт засвар хийх шаардлага гарна. Хэрэв та бүтээгдэхүүний ба үйлдвэрийн 2 table байгуулаад тэдгээрийг үйлдвэрийн дугаар буюу manufacturer ID талбараар relation үүсгэвэл зөвхөн ганц талбарт засвар хийх юм. Ийм үйлдлийг database normalization гэнэ. • Relational database-ыг түлхүүр талбар ашиглан байгуулдаг. Энэ нь хоорондоо relation үүсгэх ижил талбар юм. Record
  • 33.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал • Hэг table дэхь бичлэг нь өөр table-ийн ганцхан бичлэгтэй холбогдож байвал ийм төрлийн relation нь one-to-one, нэг table дэхь нэг бичлэг нь өөр table-ийн олон бичлэгтэй холбогдож байвал ийм төрлийн relation нь one-to-many, хэрэв нэг table дэхь олон бичлэг нь өөр table-ийн олон бичлэгтэй холбогдож байвал ийм төрлийн relation нь many-to-many relation гэж тус тус нэрлэгдэнэ. Энгийн Relational Database • Номын мэдээллийн сан BIBLIO.MDB нь дараах 4 table-үүдтэй. Үүнд : Author (6,246 бичлэгтэй) Publishers (727 бичлэгтэй) Titles ( бичлэгтэй) Titles Author ( бичлэгтэй) • Authors table нь номыг зохиогчийн мэдээллүүдтэй бөгөөд Au_ID, Name ба Year Born гэсэн талбаруудтай. • Publishers table нь хэвлэлийн газруудын тухай мэдээллүүдтэй PubID, Name, Company Name, Address, City, State, Zip, Telephone, Fax Comments гэсэн талбаруудтай. • Titles table нь номын нэрүүд бүхий Title, Year Published, ISBN, PubID, Description, Notes, Subject, Comments гэсэн талбаруудтай.
  • 34.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал • Titles Author table нь: ISBN(International Standart Book Number), ID гэсэн талбаруудтай номын зохиогчийг мэдээллийн сантай холбосон мэдээллүүдтэй юм. • Access -ыг ашиглан relationship үүсгэвэл : • Энэ диаграмд relation-ыг түлхүүр талбаруудыг шугамаар холбон харуулжээ. • Table бүр нь мэдээллийн source, relational гэсэн 2 төрлийн өгөгдлүүдээс тогтоно. Source төрлийдн өгөгдлүүд нь names, phone numbers, addresses талбарын мэдээллүүдээс relational төрлийн өгөгдлүүд нь PubID, ISBN, Au_ID түлхүүрээр холбогдсон relation төрлийн мэдээллүүдээс тогтсон байна.
  • 35.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Лекц№8 Мэдээллийн сан ба DAO Data Control. DAO ба ADO -ын ялгаа юу вэ ? • Visual Basic 6.0 -ыг судалсны эцэст бид ADO(ActiveX Data Object) data control-ын тухай ойлголттой болдог. Сүүлийн үеийн версүүдэд DAO (Data Access Object) data control-ыг (Visual Basic 6.0 үүнд орно.) голцуу ашигладаг. Иймд Visual Basic 6.0 ба Visual Basic 5 -ын хэрэглэгчид тэдгээрийг ямар ялгаатай гэж ассууж магадгүй. • Энэхүү 2 control нь мэдээллийн санг удирдах үүрэг гүйцэтгэж Jet database engine-ын ажиллагааг хангадаг хэрэгсэл болдог. Энэ 2 control-ыг хийх арга нь өөр өөр байдаг. DAO control нь маш өргөн тархсан мэдээллийн санг удирдах хэрэглээний сан юм. Харин ADO control нь шинээр гарч ирж буй технологи бөгөөд DAO-оос илүү үр дүнтэй болно. Яагаад бид DAO-г ADO-ын хамт хэрэглэдэг вэ? ⇒ Бид тухайн application-г DAO-г ашиглан засварлана. ⇒ Ширээний компьютерийн хэрэглээ улам боловсронгуй болж байна. ⇒ Одоогоор DAO control нь нууцлал аюулгүй байдлыг санал болгодог. ⇒ Microsoft Access хэрэглэгчид DAO-г ашигладаг тул зах зээл түүнийг нэг хэсэгтээ л хүлээн авна. Яагаад бид ADO-г DAO-ын хамт хэрэглэдэг вэ? ⇒ Бид интернэтэд хандах илүү чадалтай шинэ шинэ project-үүдийг бичиж байна. ⇒ ADO-г хэрэглэх нь DAO-г хэрэглэхээс хялбар ⇒ ADO нь мэдээллийн эх үүсвэртэй болоход илүү хлүчтэй. ⇒ Хэрвээ Jet engine -ыг хэрэглэхгүй бол зөвхөн ADO control-ыг хэрэглэх ганцхан зам үлдэнэ. ⇒ ADO нь DAO-г хэрэгцээнээс гаргангуут үлдэх цорын ганц data control болно. Энэ удаа бид 2 control-ын хэрэглээний тухай авч үзнэ. Зөвхөн Visual Basic 6.0 -ын хэрэглэгч л ADO control-ын тухай материалыг хэрэглэж болох нь илэрхий. Энэ бүлэгт бид DAO data control-ын хэрэглээний тухай тусгайлан үзэх ба дараагийн бүлэгт ADO data control-ыг ашиглан өмнөх материалаа үзнэ. DAO Data Control -ын тухай. • DAO data control-ыг Visual Basic-ын toolbox-оос дараах хэрэгслийг ашиглан сонгоно. • DAO data control нь мэдээллийн сан ба Visual Basic application 2-ын интерфейс юм. Энэ control нь ямарч код бичилгүйгээр хэрэглэж болно. Энэ нь мэдээллийн санг удирдах системийн гол хэсэг болно. • Энэ data control нь Visual Basic ба Access-ээс өөр мэдээллийн сантай ажиллана. Тухайлбал : Dbase, Foxpro, Paradox гэх мэт. • Энэ data control нь дараах үүргийг гүйцэтгэнэ. 1. Mэдээллийн сантай холбогдоно. 2. Tухайн мэдээллийн сангийн Table-ийг нээнэ. 3. Mэдээллийн сангийн Query дээр үндэслэгдсэн virtual table-ийг байгуулна.
  • 36.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал 4. Mэдээллийн сангийн талбаруудыг Visual Basic-ын өөр хэрэгслүүдийг ашиглан харах эсвэл засахын тулд дамжуулах ба эдгээр хэрэгслүүд нь data bound control-ыг ашиглана. 5. Шинээр бичлэг нэмэх бичлэгийг устгах бичлэгийг засварлах. 6. Өгөгдөлтэй харьцаж ажиллах үед тохиолдох алдааг хянах 7. Мэдээллийн санг хаах. DAO Data Control Property -үүд • DAO data control нь хэд хэдэнд property-үүдийг ашиглан мэдээллийн сантай холбогддог. Зарим чухал property-үүдийг үзье. Align Хаана data control ажиллаж буйг тодорхойлно. Caption Data control-ын гарчиг нэр Connect Mэдээллийн сангийн төрөл зүйл DatabaseName Data control -д харгалзах мэдээллийн сангийн нэр замыг нь заасан бүтэн нэр байх шаардлагатай. EditMode Ажиллаж байх үедээ зөвхөн унших горимд байх ба тухайн бичлэгийг засварын горимд буйг илэрхийлнэ. Exclusive Тухайн мэдээллийн сан нь нэг эсвэл олон хэрэглэгчид нээллттэй байгааг илэрхийлнэ. ReadOnly Тухайн өгөгдөл засагдах эсвэл үгүйг тодорхойлно. Recordset Бичлэгүүд хоорондоо Data control-ын тусламжтай холбогдож байгааг илэрхийлнэ. (Ажиллаж байх үед DatabaseName, Connect, RecordSource property-үүдээр холбогдож буйг тодорхойлно. ) RecordsetType Байгуулах гэж буй Data control-ын Recordset- ийн төрлийг илэрхийлнэ. RecordSource Data control-ын ажиллах table, virtual table-ийг тодорхойлно. Visible Тухайн Data control form дээр байх эсэхийг харуулна. DAO data control нь form дээр caption, 4 сумтай товчлуурын (button)хамт xарагдана. Сумнууд нь table-ийн бичлэгүүдийг шилжүүлэхэд хэрэглэгддэг. Дээрхээс үзвэл сумнууд нь бичлэгийн эхлэл төгсгөлрүү эсвэл бичлэгээс бичлэгрүү шилжүүлэхэд хэрэглэгдэж байна. Эцсийн бичлэгрїї очно Эхний бичлэгрїї очно Ємнєх бичлэгрїї очно Дараагийн бичлэгрїї очно
  • 37.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал • DAO control -ыг form дээр байгуулсаны дараа хамгийн түрүүнд DatabaseName property-г зааж суулгаж өгөх хэрэгтэй. Дараа нь RecordSource property-г суулгаж өгнө. Тухайн property-г сонгоод жагсаалтаас тэндээс ажиллах table-ыг ачаална. Энэ нь бид Recordset объектыг үүсгэж байгаа хэрэг юм. Recordset объектын -ын тухай • Recordset объект нь маш чухал ойлголтын нэг юм. Data control-д RecordSource-ийг ачаалсаны дараа Recordset объект үүсдэг. Бид энэ объектийн property-нүүд ба method- уудыг авч үзье. • RecordsetType property-д recordset объектийн үндсэн 3 төрлийг заадаг. Үүнд : Table Mэдээллийн сангийн үндсэн table бөгөөд бид бичлэгийг нэмэх солих устгах солих үйлдийг гүйцэтгэнэ. Dynaset Шинээр үүссэн төрөл бөгөөд Dynaset нь мэдээллийн сангийн query-ийн үр дүн болно. Бид мөн бичлэг нэмэх солих устгах үйлдийг гүйцэтгэнэ. Snapshot Бичлэгүүдийг заслар хийж болдоггүй хэлбэр бөгөөд мэдээлллийн сангийн өгөгдлүүдйиг харах, хайлт хийхэд зориулагдана. • Эцэст нь Recordset объект нь DatabaseName ба RecordSource гэсэн гол property-үүдтэй бөгөөд тэдгээрийн relationship-ийг харуулбал : Data Bound Control-ын тухай. • DAO data control нь мэдээллийн сантай биднийг хялбархан холбож form дээрх recordset- тэй ажиллах боломж олгодог. Мэдээллийн сан дээрх мэдээллийг харахад бид Data Bound Control-ыг хэрэглэдэг. Data Bound Control нь Recordset дээрх таны сонирхсон талбар, бичлэгүүдийг харахад ашиглагдана. Ихэнх Visual Basic-ын хэрэгслүүд Data Bound Control-ыг хэрэглэдэг. Стардарт Data Bound Control -ууд : Label Текст төрлийн өгөгдлийг харахад хэрэглэгдэнэ. Caption property нь Data Bound юм. Text Box Текст төрлийн өгөгдлйиг харах, уншихад хэрэглэгдэнэ. Text property нь Data Bound юм. Jet Database Engine Multi-table database Database Name RecordSource Recordset Points to current record
  • 38.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Check Box Boolen төрлийн өгөгдлийн талбарыг унших ба бичихэд хэрэглэгдэнэ. Value property нь data bound юм. Picture Box График төрлийн bitmap, icon, gif, jpeg ба metafile файлтай ажиллахад хэрэглэгдэнэ. Picture property нь data bound юм Image Box График төрлийн bitmap, icon, gif, jpeg ба metafile файлтай ажиллахад хэрэглэгдэнэ. Picture property нь data bound юм. Data Bound Control Property -нүүд • Data Bound Control-ыг байгуулахын тулд дараах Property-нүүдийг мэдэх шаардлагатай. Үүнд : DataChanged Xувьсах хэмжигдэхүүний утга bound control-д өөрчлөгдөх эсэхийг илэрхийлнэ. DataField Data control-д ашиглагдах table-ийн талбаруудын нэрсийг тодорхойлно. DataSource Data control -д ямар table ашиглахыг заана. • Хэрэв data bound control-ын өөрчлөгдөж хэрэглэгч өөр өөр өгөгдлүүдтэй ажиллах бол мэдээллийн сан нь автоматаар засвардагдаж хэрэглэгч шинэ өгөгдлүүдтэй ажиллах болно. Энэ бол маш чухал туйлын потенциалтай хэрэгсэл болно. • Data bound control-ыг ашиглахын тулд form дээр дараах алхмуудыг хийх хэрэгтэй. Үүнд : 1. Form дээр data bound control-ыг зур. 2. DataSource property-г сонгоод жагсаалтаас ашиглагдах table-ийг сонго. 3. DataField property-ээс хэрэглэгдэх талбаруудыг сонго. 4. Бусад шаардагдах property-нүүдийг ачаал. Data bound control ба DAO data control хоёрын relationship-ийг харуулбал : DAO Data Control Event -үүд • DAO Data Control нь event-үүдээр дамжин мэдээллийн сантай харьцаж ажилладаг. Тэдгээрийн заримтай нь танилцая. • DAO Data Control -ын зарим чухал event-үүд : DataField DataSource Recordset Points to current record Data Bound Control (Field in current record)
  • 39.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Error Visual Basic-ын код нь мэдээлийн сантай харьцаж ажиллах үед тохирохгүй байгаа тохиолдолд алдаа өгч байгааг илэрхийлнэ. Peposition Data Control шинэ бичлэгрүү шилжсэний дараа илэрнэ. Data Bound Control үгүйгээр мэдээллийг засахад ашиглана. Validate Тухайн бичлэгээс шилжсэний дараа илэрнэ. Энэ event нь бичлэгийг засварлахаар хасах эсвэл шинэ бичлэгээр солиход ашиглагдана. • Эдгээд events-үүдийн талаар дараагийн бүлэг болох мэдээллийн сангийн менежментийг үзэх үед дэлгэрүүлэн судлах болно. DAO Data Control -ын Method –ууд • DAO Data Control -ын тухай бүрэн төгс ойлгохын тулд бид зарим чухал шаардлагатай method-уудын тухай авч үзье. Энэ method-ууд нь Data Control-ын тодорхой үед гүйцэтгэгдэнэ. Refresh Мэдээллийн санд тулгуурласан RecordSource property-г шаардана. UpdateControls Bound control-ын value хувьсагчийг өөрчилнө. UpdateRecord Bound control -ын утгыг Validate event ашиглан засварлана. DAO Data Control –ын Recordset Peoperty. • DAO Data Control -н Recordset объектийн үндсэн property бөгөөд run-time горимд ажилладаг. Хэрэв та datExample нэртэй Data Control-д PeopertyName нэртэй property-г оруулъя гэвэл дараах байдлаар бичнэ. Үүнд : datExample.Recordset.PeopertyName • Recordset Data Control -ын зарим чухал property-үүд : • AbsolutePosition Tухайн бичлэгийг унших ба ачаалах Long Integer утгыг авна. BOF Тухайн бичлэг өгөгдлүүдийн эхэнд байвал True утга авна EdutMode Тухайн бичлэг засварын горимд байгааг илэрхийлнэ. EOF Тухайн бичлэг өгөгдлүүдийн эцэст байвал True утга авна PercentPosition Тухайн бичлэг процентоор илэрхийлэгдэх бол Single өгөгдлийн утга авна. RecordCount Recordset-д буй бичлэгийн тоог тодорхойлно. Updatable Read-only хэлбэрээр run-time горимд ажиллана. Хэрэв True байвал Recordset дахь бичлэгүүд нь засагдах бөгөөд False бол read only хэлбэр илэрхийлэгдэнэ. DAO Data Control –ын Recordset Method-ууд.
  • 40.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал • DAO Data Control Recordset нь хэд хэдэн method ашигладаг. Тухайлбал datExample нэртэй data control нь MethodName нэртэй method-ийг ашиглавал : datExample.Recordset.MethodName гэж тодорхойлж өгнө. • Recordset Method -уудын зарим чухал хэсгээс дурьдвал : AddNew Recordset -д шинэ бичлэг нэмнэ. CancelUpdate Засвар хийж байх үед ажиллагааг зогсоох үед хэрэглэгдэнэ. Close Recordset -ийг хаана Delete Recordset -ээс бичлэг устгана. Edit Recordset -д буй бичлэгийг засварын горимд байгааг тодорхойлно. MoveFirst Recordset -ийн эхний бичлэгрүү шилжинэ. MoveLast Recordset -ийн эцсийн бичлэгрүү шилжинэ. MoveNext Recordset -ийн дараачийн бичлэгрүү шилжинэ. MovePrevious Recordset -ийн өмнөх бичлэгрүү шилжинэ. Requery Давтан ашиглагдаж байгаа буйг илэрхийлнэ Update Бүх нь засварын горимд байгааг илэрхийлнэ.
  • 41.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Лекц№9 Мэдээллийн сан ба ADO Data Control ADO Data Control -ын тухай • ADO (ActiveX Data Object) data control нь Visual Basic-ын application ба мэдээллийн сангийн хоорондын интерфейсийг үүсгэдэг. чухал технологи бөгөөд мэдээллийн санг удирдах системийн гол цөм нь юм. ADO data control нь Visual Basic-ын стандарт toolbox- т байдаггүй тул түүний нэмэж оруулж өгөх хэрэгтэй .Үүний тулд үндсэн цэсийн Project цэсийг сонгоод тэндээс Components-ийг авч Microsoft ADO Data Control -ыг сонгоод OK гэж дарахад тухайн control нь toolbox-т нэмэгдэнэ. Тэр нь дараах icon болно • Энэ Data Control нь дараах бодлогуудийг шийдвэрлэнэ. Үүнд : 1. Mэдээлийн сантай холбох 2. Mэдээллийн сангийн зориулалтын table-ийг нээх 3. Mэдээллийн сангийн query дээр үндэслэсэн virtual table байгуулах 4. Mэдээллийн сангийн тайлбаруудыг Visual Basic-ын хэрэгслүүдэд засварлах ба харах зориулалтаар дамжуулах 5. Бичлэгийн нэмэх устгах засварлах 6. Өгөгдөлтэй харьцаж ажиллах үед илрэх алдааг таниулах 7. Мэдээллийн санг хаах ADO Data Control Property -нүүд • ADO Data Control-д зарим property-үүдийг ачаалсанаар мэдээллийн сантай холбогдоно. Заим чухал шаардлагатай property-үүдийг авч үзье. Align Data Control Хаана дэлгэцэнд хадгалагдаж байгааг тодорхойлно. Caption Data Control -ын гарчиг Command Type Recordset объектийн эх үүсвэрүүдийг байгуулах (table,query) ConnectionString Mэдээллийн сантай холбогдох мэдээллүүдийг агуулна. EditMode Run-tome горимд зөвхөн унших бөгөөд тухайн бичлэгийг засварлах үеийг заана. LockType Тухайн бичлэг засварлах үед ямар горимд байгааг илэрхийлэх бөгөөд өөрчлөх боломжтой. RecordSource Тухайн data control хандаж буй table, virtual table- ийг заана. Visible Run-time горимд form дээр тухайн data control байх эсэхийг тодорхойлно. • ADO Data Control нь form дээр байрласан үед чиглэл заасан байх бөгөөд доорх зураг дээрх үүргүүдийг гүйцэтгэнэ. Эцсийн бичлэг, мєр лїї очно Эхний бичлэг, мєр лїї очно Ємнєх бичлэг, мєр лїї очно Дараагийн бичлэг, мєр лїї очно
  • 42.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал ConnectionString Property -ийн тухай. • Data Control -ыг form дээр байгуулсны дараа та ConnectionString Property-ийг зааж өгөх хэрэгтэй. ADO Data Control нь олон төрлийн мэдээллийн сангийн төрлүүдтэй холбогдоно. Энд мэдээллийн сантай холбогдох үндсэн 3 арга байдаг бөгөөд өгөгдлийг холболт буюу data link, ODBC өгөгдлийн эх үүсвэрүүдийг ашиглах, ConnectionString Property-ийг зааж өгөх зэрэг болно. Одоо бид ConnectionString Property -г ашиглан Microsoft Access мэдээллийн сантай холбогдох талаар авч үзэх болно. • Visual Basic энэ холболтыг хийх бөгөөд энэ үйлдлийг жишээн дээр тайлбарлах нь зүйтэй болно. Бид BIBLIO.MDB мэдээллийн сантай өмнөх бүлэгт ажиллаж байсан билээ. Энэ мэдээллийн санг олоод өөрсдийн ажлын талбарт байгуулъя. • Одоо холболтыг хийх алхмуудыг нэрлэе. Үүнд : Start a new Visual Basic project and place an ADO Data Control on the form 1. Шинэ Visual Basic-н project-г эхлүүлж form дээр ADO Data Control-ыг байгуулъя. 2. Properties Window –оос, ConnectionString-ыг сонгоё. Property Pages window xарагдах болно. 3. Use ConnectionString -г сонгоод Build button-ыг дарна. Data Link Properties window харагдах болно. 4. Provider tab -ыг авч Microsoft Jet 3.51 OLE DB Provider-ыг сонгоно. 5. Next button -ыг дараад Connection tab -руу очно. 6. BIBLIO.MDB файлыг өөрийн ажлын талбарт авчирахын тулд Select Access Database dialog box -ыг сонгоод Open button -ыг дарна. 7. Test Connection -ыг сонгоод OK button-ыг дарна. Property Pages Window -ыг сонгоод OK button -ыг дарна. Ийнхүү холболт хийгдлээ. Recordset Объектийн тухай. • Recordset Объект нь маш чухал ойлголтын нэг юм. Бид Recordsource property-ийг үзэх үед хэрэгтэй бичлэгүүдээ Recordset объектэд цуглуулдаг. Бид энэ объектийн үндсэн property-үүд ба method-уудыг үзэх болно. Энэ бүлэгт бид Recordset нь BIBLIO.MDB мэдээллийн сангийн тодорхой Table-үүдтэй холбогдохыг авч үзнэ. Data Bound Control -ын тухай. • ADO Data Control нь мэдээллийн сантай Recordset-ийн тусламжтайгаар хоолбогдоно. Энэ нь Data Bound Control-уудаар гүйцэтгэгдэнэ. • Стандарт Data Bound Control -уудыг нэрлэвэл : Label Caption property буюу Data Bound Control -ын нэр, гарчиг Text Box Data Bound Control -ын Text property
  • 43.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Check Box Data Bound Control -ын Value property Picture Box Data Bound Control -ын Picture property Image Box Data Bound Control -ын график дүрсийг илэрхийлэх Picture property • Энд Data Bound Control-ын DataList, DataCombo, DataGrid control –уудыг мөн ашиглана. Data Bound Control –ын Property-үүд • Data Bound Control-ын мэдээллийн сантай холбогдох холбоог үүсгэхийн тулд бид дараах цөөн тооны property-үүдийг мэдэх шаардлагатай. Үүнд: DataChanged Data Bound Control-ын үед өгөгдийн утга солигдох эсэхийг тодорхойлно. DataField Table-ийн ямар талбаруудыг авахыг заана. DataSource Ямар өгөгдлүүдтэй ажиллахыг заана.
  • 44.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Лекц№10 ADO Data Control -ын Event -үүд. • ADO Data Control -ын зарим чухал event -үүдыг авч үзье. WillMove Бичлэгийг чиглүүлэгч нэг мөрөөс нөгөө мөрд шилжүүлэхийг зохицуулна. MoveComplet Бичлэгийг чиглүүлэгч нэг мөрөөс нөгөө мөрд шилжсэнийг илэрхийлнэ. EndoRecordset Бичлэгийг чиглүүлэгч сүүлчийн бичлэгт очсоныг илэрхийлнэ. WillChangeRecordset Recordset-д өөрчлөлт хийгдэж байгааг илэрхийлнэ. RecordsetChangeComplete Recordset -д өөрчлөлт хийгдсэнийг илэрхийлнэ. WillChangeRecord Recordset -д бичлэгт өөрчлөлт хийгдэж байгааг илэрхийлнэ. RecordChangeComplete Recordset -д бичлэгт өөрчлөлт хийгдсэнийг илэрхийлнэ. WillChangeField Recordset -д талбарт өөрчлөлт хийгдэж байгааг илэрхийлнэ. FieldChangeComplete Recordset -д талбарт өөрчлөлт хийгдсэнийг илэрхийлнэ. ADO Data Control-ын Method -ууд. • Энд бид ADO Data Control -ын зөвхөн ганцхан method -ыг авч үзье. Refresh Мэдээллийн сангийн RecordSource property -г ачаална ADO Data Control Recordset -ийн нүүд. • Recordset объект нь өөрийн үндсэн property-үүдтэй байх бөгөөд тэдгээр нь зөвхөн run- time горимд ажилладаг. Хэрэв datExample танд нэртэй data control байх ба тэр нь PropertyName нэртэй property-тэй бол та дараах байдлаар хандана. datExample.Recordset.PropertyName • Data Control Recordset -ийн зарим чухал property-үүдээс авч үзвэл : AbsolutePosition Tухайн бичлэгийг унших ба ачаалах Long Integer утгыг авна BOF Тухайн бичлэг өгөгдлүүдийн эхэнд байвал True утга авна. EditMode Тухайн бичлэг засварын горимд байгааг илэрхийлнэ. EOF Тухайн бичлэг өгөгдлүүдийн эцэст байвал True
  • 45.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал утга авна. PercentPosition Тухайн бичлэг нь процентоор илэрхийлэгдэх бол Single өгөдлийн утга авна. RecordCount Recordset -д буй бичлэгийн тоог тодорхойлно. Updatable Read-only xэлбэрээр run-time горимд ажиллана. Хэрэв True байвал Recordset дахь бичлэгүүд нь засагдах бөгөөд False бол Read only хэлбэр илэрхийлэгдэнэ. ADO Data Control Recordset Method-ууд • Recordset Data Control нь өөрийн method -уудтай тухайлбал data control нь datExample нэртэй, MethodName нэр бүхий method-тай гэвэл дараах байдлаар тодорхойлно. datExample.Recordset.MethodName • Зарим чухал method -уудаас дурьдвал : AddNew Recordset -д шинэ бичлэг нэмнэ. CancelUpdate Засвар хийж байх үед ажиллагааг зогсоох үед хэрэглэгдэнэ. Close Recordset -ийг хаана. Delete Recordset -ээс бичлэгийг устгана. Edit Recordset -д буй бичлэгийг засварыг горимд байгааг тодорхойлно. MoveFirst Recordset -ийн эхний бичлэгрүү шилжинэ. MoveLast Recordset -ийн эцсийн бичлэгрүү шилжинэ. MoveNext Recordset -ийн дараачийн бичлэгрүү шилжинэ. MovePrevious Recordset -ийн өмнөх бичлэгрүү шилжинэ. Requery Давтан ашиглагдаж байгаа буйг илэрхийлнэ. Update Бүх data bound control нь засварын горимд байгааг илэрхийлнэ. DAO ба ADO тэдгээрийн ялгаа юу вэ? • Өмнөх бүлэгт бид энэ асуултыг асуусан, одоо дахиад асууж байна. • Энэ 2 data control нь хоёул мэдээллийн сантай холбож өгдөг бөгөөд DAO control нь DatabaseName property -г хэрэглэдэг, харин ADO control нь ConnectionString хэрэглэдэг юм. • Recordset-ийг үүсгэхдээ DAO control нь RecordSource property-г, ADO control нь RecordSource, CommandType property-үүдийг тус тус ашигладаг байна. ADO Data Environment -ийн тухай • ADO data control -ын гол ойлголтын нэг нь ADO Data Environment буюу ADO өгөгдлийн орчин юм. Энэ нь олон тооны data control, мөн олон тооны мэдээллийн сантай харьцаж ажиллах боломж олгодог. • Энэ нь Connection объект ба Command объекттэй ажилладаг.
  • 46.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Data Environment Дээрх зураг дээр тэдгээрийн хоорондын уялдааг харууллаа. Recordset 1 Recordset 2 Recordset 3 Recordset 4 Recordset 5 Command Object 1 Command Object 2 Command Object 3 Command Object 4 Command Object 5 Connection Object 1 Connection Object 2 Database 1 Database 2
  • 47.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Лекц№12 Connection Объектийн тухай. • Connection Объект нь Data Environment-ийн мэдээллийн сантай холбогдох ирээдүйг тодорхойлдог. • Connection объект нь хэд хэдэн property -үүдтэй. Үүнд : Attributes Xолболт хийгдэх тэмдэгт төрлийн шинж чанарын мэдээллүүд CommandTimeout Cервер өгөгдсөн тодорхой хугацаанд хариу өгөх хугацаа ConnectionSource Xолболт хийх өгөгдлүүдийн байгаа хаягийг заасан зам (тэмдэгт) ConnectionTimeou t Aлсын зайн серверийн холболт хийхийг хүлээх хугацаа Command Объектийн тухай. • Command oбъект нь Data Environment-ийн мэдээллийн сангийн Table -тай холбогдох ирээдүйг тодорхойлдог. • Command объект нь хэд хэдэн property -үүдтэй. Үүнд : CommandText Mэдээллийн сангийн query агуулсан Table-ийг тодорхойлж өгнө. CommandType Холболтод хамрагдах мэдээллийн сангийн query бүхий table эсвэл virtual table аль нь болохийг заана. ConnectionName Connection объектийн нэр LockType дээрх өгөгдөл нь өөрчлөгдөх эсэхийг зөвхөн унших горимд ажиллах эсэхийг заана. ADO Data Environment ашигласан жишээ. Энэ жишээнд бид Connection объектийг BIBLIO.MDB мэдээллийн сан дээр, Command объектийг Titles table дээр тус тус үзүүлэх болно. Шинээр project эхлүүлье. Data Environment -ийг өөрийн project дээр нэмье. Үүний тулд Project цэсийн Add Data Environment дэд цэсийг сонгоно. Хэрэв дэд цэсэнд Add Data Environment цэс нь байхгүй бол Project цэсийн Components -ийг сонгоод Designers цэсээс Data Environment -ийг сонгоод OK дарна. Data Environment цонх нь дараах байдалтай харагдана.
  • 48.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал 1. Properties window -pyy шилжээд Data Environment1-ийн Name -д denBooks, Connection1 -ийн Name-ийг conBooks гэж тус тус нэрлэе. 2. Oдоо бид Connection объектийг байгуулъя : ⇒ conBooks connection дээр баруун товчлуураас Properties-ийг сонгоод Data Link Properties цонхыг нээх ⇒ Provider хэсгээс Microsoft Jet 3.51 OLE DB Provider -ийг авах ⇒ Next товчлуур дараад Connection хэсгээс өөрийн ажиллах мэдээллийн санг сонгох (бид BIBLIO.MDB-г авсан билээ). Open товчлуурыг дараад Test Connection-ийг сонгоод . ⇒ Data Link Properties цонхны OK дарна. 3. Oдоо бид Command объектийг байгуулъя : ⇒ Data Environment -ийн conBooks дээр баруун товчлуураас Add Command -ийг сонгоё. ⇒ Command1 дээр баруун товчлуураас Properties-ийг сонгоё. General хэсэг идэвхтэй байна. ⇒ Command oбъектийн нэрийг comTItles гэж өгье. ⇒ Source of Data хэсгийн Database Object -оос Table -ийг сонгоод Object Name -ийг Titles Table гэж авъя. Command объект байгуулагдлаа. Titles-аас баруун товчлуураар Expand All нөхцлийг сонгоё. Тэгвэл бидний Data Environment дараах байдалтай харагдана. Data Environment -орчинд Data Bound Control ажиллах нь. • Data Environment орчинд data bound control -ын холболтыг хийхийн тулд бид дараах 3 property -үүдийг ашиглана. Үүнд : DataField Command объектийн ямар table -ийн ямар талбарууд байгааг тодорхойлно. DataMember Command объект нь ямар table -үүдийг ашиглахыг заана.
  • 49.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал DataSource Ямар Data Environment data bound control-д ажиллахыг заана. • Data Environment-ийн орчинд ажиллах data bound control-ыг үүсгэхийн тулд дараах алхмуудыг дамжина. Үүнд : 1. Form дээр data bound control -ыг байгуулах. 2. DataSource property -г зааж өгөх. 3. DataMember property -г зааж өгөх. 4. DataField property -г зааж өгөх. Бусад шаардлагатай property -нүүдийг зааж өгөх. Drag ба Drop Control. Дээрх жишээнд үзсэнтэй адил интерфейсийг ADO data control ашиглан Data Environment орчинд үзэх болно. 1. Өмнөх номын мэдээллийн санд Titles table ашиглан Data Environment байгуулсан дараах байдалтай харагдах цонхон дээр ажиллая. 2. Form дээр харгалзах property -үүдийг зааж өгье. Үүнд : Name frmDataEnvironment BorderStyle 1-Fixed Single Caption Data Environment Example 3. Data Environment цонхноос Title талбараас зүүн товчлуурыг дараад Form руу чирнэ. Form- ын хэсэгт icon харагдана. Доор харагдаж буй байдлаар form -ыг зурах. 4. Properties window дээр Name, DataField, DataMember, DataSource property -үүдийг дараах байдлаар зааж өгнө.
  • 50.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Name txtTitle DataField Title DataMember comTitles DataSource denBooks 5. Дээрхийн адилаар Year Published, ISBN, PubID талбаруудыг Form дээр байрлуулна. 6. Application -ыг хадгалаад ажиллуулахад дараах үр дүнд хүрнэ. Data Environment -ийн Recordset -үүд. • Data Environment нь ADO data control -ын Recordset ба түүний property -нүүд method -уудтай ажилладаг. • comExample нэртэй Command объект нь rscomExample нэртэй Recordset -тэй бөгөөд Data Environment нь denExample нэртэй байг. Тэгвэл бид denExample.rscomExample.PropertyName гэж property -нүүдийг нь тодорхойлно. • Дээрхтэй адилаар method -уудыг доорх байдллар бичнэ. denExample.rscomExample.MethodName
  • 51.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Лекц №13 DAO -оос ADO ба ADO -оос DAO шилжилт хийх тухай. • Хэрэв танд мэдээллийн сантай ажилладаг DAO data control ашигласан application байгаад ADO data control-д ADO Data Environment ашигладаг болгон хувиргах хэрэгтэй байг. • DAO control -оос ADO control -руу шилжих дараах алхмууд байна.Үүнд : ⇒ DAO control-ын Name, DatabaseName, RecordSource property-үүдийг тэмдэглэж авах ⇒ DAO control -ыг устгах ⇒ Form дээр ADO control -ыг байгуулах ⇒ Name property-д ижил нэр өгч ConnectionString -д DAO-ийн DatabaseName, RecordSource property -нүүдийг ачаалах • ADO control -оос DAO control -д шилжих алхмууд : ⇒ ADO control -ын Name, ConnectionString, RecordSource property-үүдийг тэмдэглэж авах ⇒ ADO data control -ыг устгах ⇒ Form дээр DAO data control -ыг байгуулах ⇒ Name property-д ижил нэр өгч DatabaseName-д ConnectionString -ийн нэрийг авч RecordSource property -г бичиж өгөх. • DAO data control -ыг ADO Data Environment -д өөрчлөхөд дараах алхмуудыг хийж өгнө. ⇒ DAO control-ын DatabaseName, RecordSource property -үүдийг тэмдэглэж авах ⇒ DAO data control -ыг устгах ⇒ ADO Data Environment -ыг project дээр байгуулах ⇒ Connection объектыг DAO -ийн DatabaseName -ыг авахаар хийж өгөх. ⇒ Command объектыг RecordSource property -ийн Data-тай зохион байгуулах ⇒ Data bound control -ын property -нүүд нь DataSource нь Data Environment орчинд DataMember нь Command объектынх, DataField -үүд нь bound талбарууд байхаар өөрчилж бичиж өгөх. • ADO Data Environment -ээс DAO data control -д шилжихдээ : ⇒ ADO Connection объект ба ADO Command объектын өгөгдлүүдийг тэмдэглэж авах. ⇒ ADO Data Environment -ыг устгах ⇒ Form дээр DAO data control -ыг байгуулах ⇒ DatabaseName property-ыг зааж өгөөд ADO Command объектийн RecordSource property-ыг суулгаж өгөх. ⇒ Data bound control property -г засварлах.
  • 52.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Лекц№14 SQL -тэй ажиллах. SQL -ийн тухай. • SQL-ийг IBM компани 1970-аад онд анх үндэслэжээ. • SQL мэдээллийн сангуудыг удирдах хэрэгслүүдийн нэг бөгөөд үндсэн 2 категорт хуваагддаг байна. Үүнд : DML (Data definition language), DDL(Data manipulation language) DDL нь table-үүдийг тодорхойлох, index-ийг үүсгэх, relational мэдээллийн санг байгуулах үүрэг хүлээдэг байна. Харин DML нь өгөгдлүүдийн хооронд тооцоолол хийх тэдгээрийг эрэмбэлэх сонголт хийх зэрэг бодлогыг шийдвэрлэдэг. SQL -ийн үндэс. • SQL нь мэдээллийн санг удирдах системийн хамт ажилладаг. Харин зөвхөн Visual Basic -тэй ажилладаггүй. • Query нь SQL-ийн нэг statement болдог бөгөөд мэдээллийн сантай ажиллах хүнд бодлогыг шийдвэрлэхэд дөхөмтэй байдаг байна. • SQL statement нь юу хийж чаддаг вэ ? ⇒ Бичлэгүүдийг эрэмбэлэх ⇒ Талбаруудыг сонгох ⇒ Бичлэгүүдийг сонгох ⇒ Table-үүдийг удирдах ⇒ Тооцооллыг гүйцэтгэх ⇒ Өгөгдлүүдийг мэдээллийн сангийн тайланд хувиргах ⇒ Өгөгдлүүдийг засварлах • SQL-д row мэдээллийн сангийн бичлэг буюу record, column нь талбар буюу field-ийг төлөөлдөг. • Хэрэв та table -ийг тодорхойлох бол дунд хаалтан дотор дараах байдлаар бичнэ. [My Big Table] Visual Basic -т SQL-ийг хэрхэн ашигладаг вэ ? • Visual Basic SQL-ийн query-г data sourse буюу өгөгдлийн эх булгийг бүрдүүлэхэд ашигладаг. SQL-ийн statement-үүд нь DAO ба ADO data control -ыг ашиглан мэдээллийн санг удирдах Jet database engine процессыг recordset объектын тусламжтайгаар гүйцэтгэдэг. Энэ объект нь virtual table-үүдтэй харьцаж үйл ажиллагаа явуулдаг. Үр дүн тухайн объект мэдээллийн санг харах, засварлах боломжтой болно. SQL нь DAO Data Control -той ажиллах нь. • DAO Data Control -ын үед SQL statement нь RecordSourse property дээр илэрхийлэгдэнэ. Энэ үйл ажиллагаа design mode горимд биелдэг.
  • 53.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал • Харин run mode горимд SQL statement нь MySQL нэртэй, datDAOExample нэртэй data control-д ажиллаж байвал үндсэн код нь дараах байдалтай бичигдэнэ. Үүнд : datDAOExample.RecordSourse=MySQL datDAOExample.Refresh • SQL statement нь мэдээллийн сангийн сонгогдсон бичлэгүүдтэй буюу Recordset объекттэй ажиллаж бичлэгүүдийг тоолох буюу RecordCount property-гийн үүргйиг дараах 2 мөр кодоор илэрхийлж болох юм. Үүнд : datDAOExample.Recordset.MoveLast datDAOExample.Recordset.MoveFirst Эдгээр кодууд нь дараах кодтой ижил чанартай юм. datDAOExample.Recordset.RecordCount Жишээ 9-1. SQL нь DAO Data Control -той ажиллах нь. 1. Шинээр project нээе. Хоёр label control ба DAO data control -ыг байгуулаад харгалзах property-үүдийг бичиж өгвөл : DatabaseName BIBLIO.MDB RecordSourse SELECT *FROM Titles RecordSourse property-г зааж өгсөний дараа Properties Window дараах байдалтай болно. 2. Label1 label control -д харгалзах 2 property -г бичиж өгвөл : DataSource Data1 DataField Title 3. Form_Activate процедурт дараах кодыг бичье. Энэ нь бичлэгийг тоолох үүрэг гүйцэтгэнэ. Privite Sub Form_ Activate() Data1.Recordset.MoveLast Data1.Recordset.MoveFirst Label2.Caption = Data1.Recordset.RecordCount End Sub 4. Application -ыг хадгалаад ажиллуулж туршина уу. Дараах үр дүнд хүрнэ. Үүнд :
  • 54.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал 5. Одоо Form_Active процедурт эхний хэсэгт нь дараах 2 мөрийг нэмж өгье. Эдгээ мөрүүд нь RecordSource -ийг run-time горимд шилжүүлэх юм. Data1.RecordSource = “SELECT * FROM Titles ORDER BY Title” Data1.Refresh 6. Application -ыг хадгалаад ажиллуулбал : SQL нь ADO Data Control -той ажиллах нь. • ADO Data Control-той SQL statement нь RecordSource property-г ашигладаг бөгөөд design mode-ийн хувьд дараах алхмуудыг хийх шаардлагатай. Үүнд : ⇒ ConnectionString property-г байгуулах. ⇒ Properties Window дээрээс RecordSource property-г сонгоод RecordSource Property Page цонхыг гаргах ⇒ Command Type-ын доод хэсгээс 1-adCmdText-ийг сонгох, дараа нь Command Text(SQL) цонхонд SQL statement-ыг бичээд OK товчлуурыг дарах • Харин run-mode горимд SQL statement нь MySQL нэртэй, data control нь datADOExample нэртэй бол үндсэн код нь дараах байдлаар бичигдэнэ. Үүнд : datADOExample.RecordSource = MySQL datADOExample.Refresh • SQL statement-ын Recordset объект нь мэдээллийн сангийн сонгогдсон бичлэгүүдтэй ажилладаг тэдгээрийг тоолохын тулд дээрх кодчилолын өмнө дараах 2 мөрийг нэмж RecordCount property -гийн үүргийг гүйцэтгэж болно. Үүнд : datADOExample.Recordset.MoveLast datADOExample.Recordset.MoveFirst Өөрөөр доорх байдалтай бичиж болох юм.
  • 55.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал datADOExample.Recordset.RecordCount SQL нь ADO Data Environment орчинд ажиллах нь. • ADO Data Environment орчинд SQL statement нь шинэ Command объектийн хэлбэрээр ажиллана. Design горимд : ⇒ Connection объектйг байгуулах ⇒ Data Environment -ын Connection объектйин баруун товчлуураас Add Command -ыг сонгох. Command объектоос баруун товчлуураар Properties -ийг сонго. Ингэхэд General хэсэг идэвхжих бөгөөд Source of Data хэсгээс SQL statement-ийг дараад OK товчлуурыг дарна. • ADO Data Environment орчинд бид SQL statement -ийн run-time горимд ялгаатай хандалтуудыг авч үзнэ. Recourdset нь design mode горимд параметрүүд нь эхлээд хаагдаад дараа нь нээгдэх зарчмаар ажилладаг билээ. Жишээлбэл: бид denExample нэртэй Data Environment, comExample нэртэй command объект, MySQL нэртэй шинэ SQL statement -тэй ажиллаж байсан гэж үзье. Recordset нь rscomExample нэртэй байсан бол Recordset -ийг дахин SQL statement -ийн хамт нээх гэвэл дараах кодыг бичиж өгнө. denExample.rscomExample.Close denExample.rscomExample.Open MySQL Шинээр Recordset-ийг байгуулсаны дараа үндсэн Recordset нь data bound control -ийн зүүн талд шилжинэ. Иймд data bound control -ыг ADO Data Environment -тэй нэгтгэхийн тулд DataSource property-г дахин ачаалах хэрэгтэй. Нэгтгэсэн control нь ExampleControl нэртэй ба Data Environment нь DataEnvironmentName нэртэй гэж үзвэл дараах кодыг бичиж өгнө. Үүнд : Set ExampleControl.DataSource.DataEnvironmentName SQL statement -ын Recordset объект нь мэдээллийн сангийн сонгогдсон бичлэгүүдтэй ажилладаг тэдгээрийг тоолохын тулд дээрх кодчилолын өмнө дараах хоёр мөрийг нэмж RecordCount property-гийн үүргийг гүйцэтгэж болно. Recordset нь rscomExample нэртэй бол : denExample.rscomExample.MoveLast denExample.rscomExample.MoveFirst гэж бичих бөгөөд дараах байдалтай бичих нь ижил чанартай.
  • 56.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал denExample.rscomExample.RecordCount Жишээ 9-3. SQL нь ADO Data Environment -тэй ажиллах нь 1. Шинээр project -ийг эхлүүлэн хоёр label control, хоёр command button-г нэмж байгуулаад Project Explorer цонхонд Data Environment-ийг нэмье. Connection1-ийн баруун товчлуурыг сонгоод Properties-ийг ачаалж өөрийн ажлын талбарт BIBLIO.MDB мэдээллийн санг хуулъя. 2. Connection1-ээс баруун товчлуураар Add Command-ыг сонгоод Command объектийн горимд оръё. Тухайн объектоос баруун товчлуураар Properties -ийг авч General хэсгийг илэхжүүлэн Source of Data -аас SQL statement -ийн хэсэгт доорх коммандыг бичье. SELECT * FROM Titles Бидний form дараах байдлаар харагдана. OK товчлуурыг дарна. 3. Эхний label control ба хоёр command button–д харгалзах property-нүүдийг дараах байдлаар бичвэл : Label1: DataSource DataEnvironment1 DataMember Command1 DataField Title Command1: Caption &Previous Command2: Caption &Next 4. Form_Activate процедурт бичлэгийн тоог заах дараах кодыг бичье. Private Sub Form_Activate() DataEnvironment1.rsCommand1.MoveLast DataEnvironment1.rsCommand1.MoveFirst Label2.Caption = DataEnvironment1.rsCommand1.RecordCount End Sub 5. Command button–д харгалзах кодыг бичвэл: Private Sub Command1_Click() DataEnvironment1.rsCommand1.MovePrevious If DataEnvironment1.rsCommand1.BOF Then DataEnvironment1.rsCommand1.MoveFirst End If End Sub Private Sub Command2_Click() DataEnvironment1.rsCommand1.MoveNext If DataEnvironment1.rsCommand1.EOF Then DataEnvironment1.rsCommand1.MoveLast End If End Sub
  • 57.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал 6. Application-ыг хадгалаад ажиллуулбал : 7. Form_Activate процедурын эхэнд дараах гурван мөрийг нэмбэл : DataEnvironment1.rsCommand1.Close DataEnvironment1.rsCommand1.Open “SELECT * FROM Titles ORDER BY Title” Set Label1.DataSource = DataEnvironment1 8. Application -ыг хадгалаад ажиллуулбал :
  • 58.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал Лекц№15. Visual Basic-ын SQL Tester 1. Шинээр project эхлүүлж DAO data control -г байгуулж хоёр label control, нэг command button, DBGrid control-ыг нэмж өгье. Энэ DBGrid control нь toolbox дээр байхгүйд бөгөөд DataSource property ашиглан мэдээллийн сангийн table-ийг харах засварлах үүрэг гүйцэтгэдэг бөгөөд toolbox нэмэгдэн орж ирдэг хэрэгсэл билээ. Үүний тулд Project цэсээс Components -ыг сонгоод тэндээс Microsoft Data Bound Grid Control -г авч OK товчлуурыг сонгосноор toolbox дээр идэвхтэй болдог. Энэ нь манай form доорх байдалтай болно. Components -ыг сонгосны дараа Microsoft Data Bound Grid Control нь тэнд байхгүй байвал та Microsoft Bound Grid Control -ыг сонгох болно. Энэ нь Visual Basic 6.0 -ын ADO технологийн хувьд дээрхтэй адил байдаггүй. Одоо яах вэ гэсэн асуудал тулгарна. Энд түргэн ба удаан хоёр зам байдаг. Зам1 –Түргэн зам ADO Data Grid Control-ыг ашигла. (toolbox дээр мөн нэмэгдэнэ гэсэн үг) Өөрөөр хэлбэл form дээрх DAO data control -ын байранд ADO data control-ыг байгуулна. ADO data control–д DatabaseName property байхгүй билээ. Хэрэв ADO data control ашиглавал ConnectionString property-г BIBLIO.MDB мэдээллийн сангийн хуулвбарын хамт ачаалах хэрэгтэй. DataSource property-г ачаалах үед дараах алдааг өгнө. Учир нь та RecordSource property-г зааж өгөх ёстой байсан шүү дээ. Одоо OK товчлуурыг дарахаас өөр аргагүй. Зам 2-Удаан зам Бид энд орхигдсон DAO Data Grid Control ба бусад шаардлагатай control-уудыг сууулгаж өгнө. Танд Microsoft Visual Basic 6.0-ын CD хэрэгтэй болно. Мөн бусад шаардлагатай DOS- ын программууд хэрэг болох юм. VB6 CD-ээс COMMONTOOLSVBCONTROLS санд доорх файлууд байгаа эсэхийг шалгана: AniBtn32.ocx, Gauge32.ocx, Gauge32.ocx (энэ файл бидэнд хэрэг болно), KeySta32.ocx, MSOutl32.ocx, Spin32.ocx, Three32.ocx, MSChart32.ocx Дараах алхмуудыг хийж тухайн файлуудыг өөрийн компьютерт ачаална. Үүнд : 1. WINDOWSSYSTTEM санд файлуудыг хуулах. 2. Visual Basic–ээp өөрөөр нь тухайн control-ыг шалгуул. (Components цэсийг сонгосны дараа Browse дэд цэсийг сонгоно). Эсвэл RegSvr32.exe коммандыг ашиглан DOS-ын орчинд дараах байдлаар шалгана. RegSvr32.exe нь COMMONTOOLSVBREGUTILS санд байх болно. regSvr32.exe grid32.ocx
  • 59.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал SELECT/FROM SQL Statement -ын тухай. • Дээрх жишээнүүдэд үзсэн нилээд өргөн хэрэглэгддэг SQL statement нь SELECT/FROM statement юм. Энэ statement нь хэд хэдэн талбарыг table -үүдээс ялган ажиллахад ашиглагдана. • SELECT/FROM statement -ын гол дүрэм нь: SELECT[Field] FROM [Tables] Field нь талбарууд бөгөөд Tables нь ажиллах мэдээллийн сангийн харгалзах table юм. Хэрэв (*) тэмдэг тавьсан бол энэ нь тухайн table-ийн бүх талбаруудыг заана. Тухайлбал: SELECT * FROM Titles нь BIBLIO.MDB мэдээллийн сангийн бүх талбарууд буюу Authors, Publishers, Title, Author талбаруудыг сонгоно. Зөвхөн Title Author table-д дараах маягаар бичнэ. SELECT * FROM [Title Author] • Хэрэв талбаруудыг нэр заан ялгах бол доорх байдлаар бичнэ. SELECT Field1, Field2, Field3 FROM Table • Хэрэв талбарын нэр нь хоорондоо зайтай бичигдсэн бол дунд хаалтанд бичиж өгнө. SELECT Title, [Year Published] FROM Titles Үүнийг дээрх программ SQL Tester-т бичвэл : • DISTINCT гэсэн түлхүүр үг нь бичлэгүүдийг ялгах үед давхар бичлэг гаргахгүй сэргийлнэ. Үүнийг SQL Tester программ дээр жишээгээр харуулъя. SELECT PubID FROM Titles Дээр PubID нь адилхан хэд хэдэн бичлэг байгаа нь харгадаж байна. Хэрэв дараах байдлаар бичвэл давхар бичлэг нь устана. SELECT DISTINCT PubID FROM Titles Дээрх дасгалыг хийж мэдээллийн сангаа шалгаж баталгаажуулна уу!
  • 60.
    Хичээлийн код: SW211Хичээлийн нэр: Өгөгдлийн сангийн програмчлал ORDER BY Clause -ыг ашиглах нь. • SELECT/FROM statement -ыг ашиглах үед table-ийн бичлэгүүдийг эрамблэх хэрэгтэй болдог бөгөөд ORDER BY Clause -ийг хэрэглэнэ. Дүрэм нь: SELECT [Fields] FROM [Tables] ORDER BY FieldSort Хэрэв өсөх эрэмбээр нь эрэмблэх бол DESC түлхүүр үгийг авдаг. • Үүнийг SQL Tester дээр жишээгээр үзвэл : SELECT * FROM Titles ORDER BY PubID Titles table-ийн бүх бичлэгүүд PubID талбараар эрэмблэгдэнэ. Дээрх жишээнд өсөх эрэмбээр нь гэж зааж өгвөл : SELECT * FROM Titles ORDER BY PubID DESC • Хэрэв та хэд хэдэн талбараар эрэмблэх бол дараах байдлаар бичнэ. SELECT * FROM Titles ORDER BY PubID, Title • Хэрэв тодорхой тооны бичлэгийг ялган авах шаардлагатай бол Top түлхүүр үгийн ашиглана. Top n гэвэл эхний n бичлэгийг ялгана. Top n PERCENT нь эхний n процент бичлэгийг ялгана. Тухайлбал дараах байдлаар бичнэ. SELECT TOP 20 * FROM Titles ORDER BY PubID, Title SELECT TOP 20 PERCENT * FROM Titles ORDER BY PubID, Title
  • 61.
    WHERE Clause -ынтухай. • SELECT/FROM SQL statement -д нилээд өргөн хэрэглэгддэг нь WHERE Clause юм. Дүрэм нь : SELECT [Field] FROM [Tables] WHERE Criteria • WHERE Clause доорх операторуудыг ашиглана. < бага <= бага юм уу тэнцүү > их >= их юм уу тэнцүү = тэнцүү <> тэнцэхгүй Бусад операторууд : Between хооронд In хувьсагчийн утганд тохирно. Like таарч тохирно. Энгийн Table ба WHERE Clause • Бид BIBLIO.MDB мэдээллийн сангийн Titles table-ийн 1995 оноос хойш хэвлэгдсэн номг бүх талбаруудаар ялган үзье. Title талбараар нь эрэмблэн дараах кодыг бичье. Үүнд : SELECT * FROM Titles WHERE [Year Published]>1995 ORDER BY Title • Хэрэв Washington мужид хэвлэгдсэн номыг ялгая гэвэл : SELECT *FROM Publisher WHERE State = “WA” болно. • BETWEEN түлхүүр үгийг ашиглан 1995-аас 1998 онд хэвлэгдсэнийг нь : SELECT * FROM Titles WHERE [Year Published]>1995 BETWEEN 1995 AND 1998 • IN түлхүүр үгийг ашиглан New York, Massahsetts, Califonia мужид хэвлэгдсэн номыг ялгавал : SELECT * FROM Publisher WHERE State IN (‘NY’, ‘MA’, ‘CA’) • LIKE түлхүүр үгийн ашиглан ‘g’ тэмдэгт оролцсон зохиогчоор ялгалт хийе гэвэл : SELECT * FROM Authorts WHERE Author LIKE ‘*g*’ • Давхар нөхцөл зааж ялгалт хийхдээ логикийн AND ба OR операторыг хэрэглэнэ. 1993 онд хэвлэгдсэн Data гэсэн үг оролцож эхэлсэн номнуудыг : SELECT * FROM Titles WHERE [Year Published] >1993 AND Title LIKE ‘Data’ гэж ялган харна.
  • 62.
    Хэд хэдэн Table-тэйWHERE Clause хэрэглэн ажиллах. • Бид өмнө нь дандаа энгийн table(ганцхан)-тэй ажиллаж байсан бөгөөд хэд хэдэн table-тэй зэрэг ажиллах нь элбэг тохиолддог билээ. Ийм тохиолдолд SQL statement-ийг яаж хэрэглэх талаар үзье. • Бид SELECT/FROM statement-ийг ORDER BY, WHERE Clause-ийн хамт хэрэглэж ирлээ. Гэтэл SQL statement бичихэд хэтэрхий урт илэрхийлэл бичиглэх нь бий. Иймд дараах хэлбэрээр бичихэд тохиромжтой байдаг. SELECT [Fields] FROM [Tables] WHERE [Criteria] ORDER BY[Fields] SQL statement нь олон талбартай ажилладаг, хэд хэдэн table ашиглдаг, нөхцөлүүд нэлээд өргөн бүтэцтэй байхад яаж ажиллах вэ гэдгийг доор жишээгээр харуулъя. • Titles table нь хэвлэгч үйлдвэрийн нэрийг тодорхойлж чадахгүй бөгөөд бидэнд номын зохиогчийг Titles table-ийн Titles талбараас, хэвлэгч үйлдвэрийн нэрийг Publisher table- ийн Company Name талбараас авах болсаон гэвэл дараах SQL statement-ийг бичиж өгнө. SELECT Titles.Title, Publishers. [Company Name] • FROM Clause нь table ба талбар(field) хоёрыг доорх байдлаар холбож өгнө. FROM Titles,Publishers • Доорх WHERE Clause нь хоёр өөр table-ийг хооронд нь холбож өгч байгаа бөгөөд өмнөх хэсгийг нь primary key, дараах хэсгийг нь foreing key гэж нэрлэнэ. WHERE Titles.PubID = Publishers.PubID • Энд бид үр дүнд үүссэн Recordset эрэмблэгдсэн байна. ORDER BY Titles.Title • Дээрхийг нэгтгэн бичвэл : SELECT Titles.Title, Publishers. [Company Name] FROM Titles,Publishers WHERE Titles.PubID = Publishers.PubID ORDER BY Titles.Title SQL Tester доорх байдалтай үзэгдэнэ.. • • Өмнөх жишээн хэвлэгч үйлдвэр яг QUE Corporation байхаар авъя гэвэл SQL statement нь доорх байдлаар засагдана : SELECT Titles.Title, Publishers. [Company Name]
  • 63.
    FROM Titles,Publishers WHERE Titles.PubID= Publishers.PubID AND Publishers. [Company Name] = ‘QUE CORP’ ORDER BY Titles.Title INNER JOIN Clause -ын тухай. • Хэд хэдэн table-тэй ажиллахад INNER JOIN Clause нь WHERE Clause -тай ижил үүрэг гүйцэтгэдэг. Харин бичлэгийн дүрэм нь бага зэргийн ялгаатай. SELECT [Fields] FROM Table1 INNER JOIN Table ON Linking Criteria WHERE Criteria ORDER BY [Fields] SELECT нь талбаруудыг заах ба FROM нь эхний table-ийг тодорхойлж INNER JOIN нь нэгтгэгдэх хоёр дахь table-ийг зааж өгөх бөгөөд ON дээр нэгтгэгдэх нөхцөлийг өгч WHERE Clause дээр үндэс нөхцөлийг зааж нь ORDER BY эрэмбэлнэ. • SELECT Clause -аар номын нэр хэвлэгчийн нэрийг ялгаж авъя. SELECT Titles.Title, Publishers. [Company Name] Бид PubID талбаруудаар нь INNER JOIN Clause ашиглан Titles table-ийг Publishers table-тэй нэгтгэн дараах кодыг бичье FROM Titles INNER JOIN Publishers ON Titles.PubID = Publishers.PubID Visual Basic -ын SQL функцүүд. • BIBLIO.MDB мэдээллийн сангийн Titles table-ийн номын нэрийг том үсгээр бичиx SQL Tester комманд нь дараах байдалтай байна. SELECT UCase(Titles.Title) FROM Titles • BIBLIO.MDB мэдээллийн сангийн Author table-ийн Year Born талбарыг ашиглан 1999 онд хэдэн настай байхыг Age талбар байгуулан ялгая гэвэл : SELECT Authors.Author,(1999-Authors.[Year Born]) As Age FROM Authors Энд зарим хүмүүсийн төрсөн өдөр нь бичигдээгүй учир хоосон байгааг анхаарна уу • NULL нь тухай string байхгүй байгааг илэрхийлж хоосон зайд бичигдэнэ. IS NULL ба NOT NULL функцүүдийг SQL statement-д хэрэглэдэг . Дараах жишээнд төрсөн өдөр нь бичигдсэн бичлэгүүдийг ялгасан байна. SELECT Authors.Author,(1999-Authors.[Year Born]) As Age FROM Authors WHERE Authors.[Year Born] IS NOT NULL Title table-ийг дараах байдлаар эрэмбэлье. ORDER BY Titles.Title OUTER JOIN Clause -ын тухай. • INNER JOIN нь хоёр table-ийн түлхүүр үзүүлэлт тэнцүү бичлэгүүдийг ялган Join буюу нэгтгэх үйл ажилагаа хийдэг. Жишээлбэл: BIBLIO.MDB мэдээллийн сангийн хувьд Publishers, Titles хоёр table-ийг PubID түлхүүрээр дараах байдлаар нэгтгэнэ.
  • 64.
    Publishers INNER JOINTitles ON Publishers.PubID = Titles.PubID Энэ statement нь Publishers table-ийн PubID нь Titles table-ийн PubID-тэй тохирохгүй байвал Recordset үүсэхгүй бөгөөд бүх бичлэгүүдийг түлхүүр үзүүлэлт нь тохирох үл тохирохыг харгалзалгүй ялгалт хийдэг. Хоёр төрлийн OUTER JOIN statement байдаг. • RIGHT OUTER JOIN нь хоёр дахь table-ийн бичлэгүүд нь нэг дэхь table-ийн бичлэгүүдтэй таарахгүй байхад хэрэглэгдэнэ. • SQL Tester-т : SELECT Titles.Title, Publishers. [Company Name] FROM Titles RIGHT OUTER JOIN Publishers ON Titles.PubID = Publishers.PubID ORDER BY Titles.Title байдлаар бичигдэнэ. • LEFT OUTER JOIN нэг дэхь table-ийн бичлэгүүд нь хоёр дахь table-ийн бичлэгүүтэй таарахгүй байхад хэрэглэгдэнэ. SQL Tester -т SELECT Titles.Title, Publishers. [Company Name] FROM Titles LEFT OUTER JOIN Publishers ON Titles.PubID = Publishers.PubID ORDER BY Titles.Title SQL Aggregate функцүүд. • Тухайн функцүүдээс дурьдвал : AVG(Field) Талбаруудын дундаж утга COUNT(Field) Талбаруудын тоо FIRST(Field) Эхний талбарын утга LAST(Field) Сүүлчийн талбарын утга MAX(Field) Талбаруудын хамгийн их утга MIN(Field) Талбаруудын хамгийн бага утга SUM(Field) Талбаруудын утгуудын нийлбэр • Authors table дээр жишээ авч үзье. SELECT COUNT(Authors Author) AS HowMany AVG(Authors.[Year Born]) AS Ave Year FIRST(Authors.[Year Born]) AS First Year LAST(Authors.[Year Born]) AS Last Year MAX(Authors.[Year Born]) AS Max Year MIN(Authors.[Year Born]) AS Min Year SUM(Authors.[Year Born]) AS Sum Year FROM Authors
  • 65.
    • Aggregate функцүүдыннь хэсэг бүлгийн үр дүнг GROUP BY clause–ийн тусламжтайгаар боловсруулдаг. SELECT Publishers.State, Count(Publishers.State) as HowMany FROM Publishers GROUP BY Publishers.State