Visual Basic

Proqram

Proqram

Proqramı yazmamışdan əvvəl onun nə iş görəcəyini aydınlaşdıraq. Proqramın konkret işi aşağıdakılardır:
Name, SurName, Fathers Name, Adress, Phone, Birthday adlı sütunlardan ibarət "Clients" adlı bir cədvəl hazırlamaq və bu cədvəl üzərində sətri əlavə etmək, silmək, redaktə etmək və istənilən sütun üzərində axtarış əməliyyatını realizə etmək.

Bütün bunları həyata keçirmək üçün əvvəlcə "Clients" adlı bir cədvəl yaratmaq lazımdır. Belə ki, cədvəlin sütunlarının adı, tipi, ölçüsü uyğun olaraq, aşağıdakı kimi olsun:
1) Name - CHAR 20
2) SurName - CHAR 25
3) Fathers Name - CHAR 20
4) Telephone - CHAR 12
5) BirthDay - DATETIME

Bu sütunlardan heç biri açar rolunu oynamır.
Cədvəl hazır olduqdan sonra proqramı yaza bilərik. Əvvəlcə proqramın xarici görünüşünü düzəldək. Bunun üçün, aşağıda sadalanan komponentlərdən istifadə edəcəyik:
Form, Label, CommandButton, DataGrid, Adodc, TextBox, ComboBox.
Bu komponentlərdən istifadə edərək, proqramın əsas pəncərəsini Şəkildəki kimi təsvir edək.

Form üzərində bütün bu komponentləri yerləşdirdikdən sonra, proqramın mətnini yazaq. Lakin əvvəlcə "Clients" adlı cədvələ qoşulaq. Bunun üçün DataGrid və Adodc arasında qarşılıqlı əlaqə yaradaq. DataGrid komponentinin DataSourse bölməsinə Adodc, Adodc komponentinin Connection String bölməsinə isə, "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=baza; Data Source=ws23" mənimsədək. Bu əməliyyatlardan sonra, DataGrid cədvəli ilə "Clients" adlı cədvəl arasında qarşılıqlı asılılıq alırıq. İndi isə, cədvəl üzərində aşağıdakı əməliyyatları realizə edək.

1) Əlavə etmək əməliyyatı.
Əvvəlcə Form üzərində 6 dənə Label, 6 dənə TextBox, 4 dənə CommandButton, 1 dənə DataGrid və 1 dənə Adodc komponentlərini yerləşdiririk. Label komponentlərinin Caption bölməsinə ardıcıl olaraq cədvəlin sütunlarının adlarını TextBox komponentlərinin Text bölməsinə boşluq, CommandButton komponentlərinin Caption bölməsinə isə, ardıcıl olaraq "Add", "Delete", "Find", "Exit" sözünü mənimsədirik. Bütün bunlar Properties hissəsində həyata keçirilir.

Belə tip proqramları yazmaq üçün Adodc adlı komponentdən istifadə edilir. Adodc komponenti cədvəl üzərində yeni sətir əlavə etmək, sətirin istənilən yazısı üzərində dəyişiklik etmək, istənilən sətiri silmək və s. əməliyyatları realizə etməyə imkan verir. Beləliklə, əlavə etmək əməliyyatının proqramı aşağıdakı kimi olur:


Private Sub add_Click()

If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "" Or Text6.Text = "" Then

MsgBox ("Boş xanaları doldurun!")

Else

Adodc.Recordset.AddNew
Adodc.Recordset.Fields(0) = Text1.Text
Adodc.Recordset.Fields(1) = Text2.Text
Adodc.Recordset.Fields(2) = Text3.Text
Adodc.Recordset.Fields(3) = Text4.Text
Adodc.Recordset.Fields(4) = Text5.Text
Adodc.Recordset.Fields(5) = Text6.Text
Adodc.Recordset.MoveNext

Adodc.Refresh
table.Refresh

End If
End Sub

2) Sətirin pozulması əməliyyatı.
Artıq DataGrid və "Clients" adlı cədvəl arasında əlaqə var. Əgər cədvəldən istədiyimiz sətiri pozmaq istəyiriksə, kursoru cədvəlin istədiyimiz sətirinin üzərində saxlayırıq və pozma əməliyyatını həyata keçiririk. Proqramın kodu isə aşağıdakı kimidir.


Private Sub delete_Click()

Adodc.Recordset.delete

Adodc.Refresh
table.Refresh

End Sub

3) Redaktə etmək əməliyyatı.
Cədvəl üzərində redaktə etmək üçün Form üzərində yerləşən DataGrid komponentinin istənilən sətirinin üzərində siçanın sol düyməsi ilə vurub, istədiyimiz dəyişiklikləri edə bilərik.

4) Axtarış əməliyyatı.
Bu əməliyyatı realizə etmək üçün əlavə Form-dan istifadə olunur. Axtarış əməliyyatının strukturu aşağıdakı kimidir.
Əvvəlcə əsas formanın üzərində yerləşən Find adlı düymə sıxılır. Bu zaman ekranda yeni pəncərə açılır ki, bu pəncərənin görünüşü şəkildəki kimidir:

Bu Form üzərində 2 dənə Label, 2 dənə CommandButton, TextBox, ComboBox, DataGrid və Adodc komponentləri vardır. TextBox komponentinin Text bölməsinə boşluq, Label1, Label2, Command1 və Command2 komponentinin Caption bölməsinə isə, uyğün olaraq, "Find By", "Write word", "Ok" və "Cancel" mənimsədirik. Belə ki, Ok düyməsi sıxıldıqda, ComboBox komponentində verilən sütuna uyğun olaraq, TextBox komponentinə mənimsədilmiş söz axtarılır, Cancel düyməsi sıxıldıqda isə, axtarış üçün hazırlanan pəncərə bağlanılır, proqram əvvəlki vəziyyətinə qayıdır və axtarış əməliyyatı həyata keçirilmir.

Axtarış əməliyyatının proqram kodu isə aşağıdakı kimidir:


Private Sub Command1_Click()

With Adodc

.ConnectionString = "Provider=SQLOLEDB.1; Persist Security Info=False;User ID=sa;Initial Catalog=baza; Data Source=ws23"

.UserName = sa
.Password = ""
.CommandType = adCmdText

.RecordSource = "select * from clients where " + Combo1.Text + " ='" + Text1.Text + "'"

End With

Adodc.Refresh
table.Refresh

End Sub

Göründüyü kimi, burada Transact-SQL dilindən istifadə olunub. Daha dəqiq desək, burada bir əmrdən istifadə olunub. Bu əmrin tam yazılış forması aşağıdakı kimidir:


SELECT select_list
[INTO new_table_]
FROM table_source
[WHERE search_condition]
[GROUP BY group_by_expression]
[HAVING search_condition]
[ORDER BY order_expression [ASC | DESC] ]

Bu əmr vasitəsilə əsasən, axtarış əməliyyatları realizə olunur. Burada əsas parametrlər aşağıdakılardır:
1) Select - bu parametr axtarışın nəticələrinin hansı sütunlar üzərində göstərəcəyini təyin edir. Belə ki, burada istənilən qədər sütunlar göstərilə bilər.
2) From - bu parametr isə, axtarışın hansı cədvəl üzərində aparılacağını göstərir. Burada da istənilən qədər cədvəlin adını göstərmək olar.
3) Where - bu parametr axtarışın hansı üsulla aparılmasını göstərir. Daha dəqiq desək, burada axtarışın hansı şərtlər daxilində aparılacığı göstərilir.
4) Order by parametri isə, aparılacaq axtarışın nəticəsinin hansı ardıcıllıqla verilməsini göstərir. Burada da parametr olaraq, sütunun adı verilir və nəticə həmin sütuna uyğun olaraq, nizamlanmış şəkildə verilir.

İndi isə, proqramı tam olaraq yazaq.


Private Sub add_Click()

If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "" Or Text6.Text = "" Then

MsgBox ("Boş xanaları doldurun!")

Else

Adodc.Recordset.AddNew
Adodc.Recordset.Fields(0) = Text1.Text
Adodc.Recordset.Fields(1) = Text2.Text
Adodc.Recordset.Fields(2) = Text3.Text
Adodc.Recordset.Fields(3) = Text4.Text
Adodc.Recordset.Fields(4) = Text5.Text
Adodc.Recordset.Fields(5) = Text6.Text
Adodc.Recordset.MoveNext

Adodc.Refresh
table.Refresh

End If

End Sub


Private Sub delete_Click()

Adodc.Recordset.delete

Adodc.Refresh
table.Refresh

End Sub


Private Sub exit_Click()

End
End Sub


Private Sub find_Click()

Form2.Show

End Sub


Private Sub Form_Load()

With Adodc

.ConnectionString = "Provider=SQLOLEDB.1; Persist Security Info=False;User ID=sa;Initial Catalog=baza; Data Source=ws23"

.UserName = sa
.Password = ""
.CommandType = adCmdText
.RecordSource = "select * from clients"

End With

Adodc.Refresh

End Sub


Private Sub Command1_Click()

With Adodc

.ConnectionString = "Provider=SQLOLEDB.1; Persist Security Info=False;User ID=sa;Initial Catalog=baza; Data Source=ws23"

.UserName = sa
.Password = ""
.CommandType = adCmdText
.RecordSource = "select * from clients where " + Combo1.Text + " ='" + Text1.Text + "'"

End With

Adodc.Refresh
table.Refresh

End Sub


Private Sub Command2_Click()

Form2.Hide

End Sub