2
variablesמשתנים -
משתנה - הנו מאגר מידע זמני
לא מחייבת הגדרת משתנים VBלמרות ש- )כברירת מחדל( רצוי לעשות זאת.
ודא שאופציהRequired Variable decleration בתפריט Tools, Options
מסומנת כפעילה, זה Editorבכטיסיה לדווח על שגיאותVBיגרום ל-
ניתן להוסיף את הפקודהOption Explicit בראש הקוד בכל אחד
מהטפסים והמודולים
3
( Data Types)סוגי משתנים - S( מחרוזת String)n( מספר שלם Integer)l שלם שלם ארוך(Long integer )f( נקודה צפה floating point )d נקודה צפה c מטבע(Currency )b בולאני( Boolean) v משתנה מסוגVariant
4
הגדרת משתנים: משתנה לוקלי באזור השיגרה או הטופס
Dim i As integer, name as stringPrivate i As integer
: משתנה גלובלי באזור המודולPublic i As Currency
: )משתנה סטטי באזור השיגרה )שומר את ערכוStatic name As String
שימוש במילה(static בראש השיגרה הופכת את משתניה לסטטיים.
5
הגדרת קבועים
Const meters=1000public const progtitle=“my program”
מילת המפתחpublic גורמת לקבועים להיות זמינים בכל התוכנית, בהנחה
moduleשההצהרה ב-
6
הגדרת מערכים בעלי אורך קבוע
Dim Counter)15( as integerPublic Counter)15( as integerDim counter)1 to 16( as integerDim sums)100 to 120( as strings
-ל- 0כדי לשנות את ברירת המחדל של הערך הנמוך ביותר של האינדקס מ ניתן להגדיר במודול:1
option base 1
7
מערך רב-ממדיDim arr)9,9( as Double
Static matrixa)1 to 10, 1 to 10( as integer
Dim Multid)3, 1 to 10, 1 to 15(
8
מערך דינמיDim Arr)( as Double
הקצאת מספר האיברים האקטואלי ע”י בתוך פרוצדורהredimמשפט
sub calc)(
.
.
Redim Arr)19,25(
End Sub
9
הגדרת סוגי משתנים חדשיםPrivate type personPublic type person
private type person
id as string
name as string
age as integer
end type
10
הגדרת משתנים של סוגי משתנים חדשים
Dim myrecord as person, yourrecord_ as person
11
If statements
If...Then
If...Then...Else
Select Case
12
If statementsIf condition Then
statementsEnd If
If condition1 Then[statementblock-1][ElseIf condition2 Then[statementblock-2]] ...[Else[statementblock-n]]
End If
13
Select Case
Select Case testexpression[Case expressionlist1[statementblock-1]][Case expressionlist2[statementblock-2]]...[Case Else[statementblock-n]]
End Select
14
Loop Statement
Do...Loop
For...Next
For Each...Next
15
Do...Loop Statement
Repeats a block of statements while a condition is True or until a condition
becomes True.
Do [{While | Until} condition] [statements] [Exit Do] [statements]Loop
16
Do...Loop Statement
Do [statements] [Exit Do] [statements]Loop [{While | Until} condition]
17
Do...Loop Statement
Loop zero or more times
Loop at least onceDo Until condition
statementsLoop
Do statementsLoop Until condition
Do While n < 100 n = n + n Loop
18
While...Wend Statement
While condition [statements]
Wend
Dim Counter Counter = 0 While Counter < 20 Counter = Counter + 1 Wend ' End While loop when
Counter > 19.
19
הצגת הודעה
MsgBox “Hello Users”
Dim mystr as string
mystr = “Hello” & “Users”
MsgBox mystr
MsgBox)Prompt,[,buttons][,title][,helpfile,context](
20
הצגת הודעה
ניתן לשלב בתיבת ההודעה אחד מבין ארבעה סמלים אפשריים המציינים את מהות ההודעה:
מורה על התרחשות הודעה חשובה ביותר - (16)שגיאה חמורה
מורה על שהתוכנית זקוקה למידע שאילתה - (32)נוסף מהמשתמש
מעיד על של שגיאת תוכנית העלולה אזהרה - (48)להוביל לתוצאות בלתי רצויות
מיידעת את המשתמש לגבי מצב הודעת מצב - (64)התוכנית )ציון סוף תהליכים שונים(
vbcritical
vbquestion
21
הצגת הודעה - ערך מוחזר
ניתן להתריע בפני בעיות שונות או להודיע למשתמש לבצע מהלך מסוים וזה מתבצע
ע”י החזרת ערך. Result = MsgBox)“the printer is not_
responding”, vbretriycancel,”priter_ error”(
22
הצגת הודעה - מערכת לחצנים
קבוע ערך מערכת לחצנים OK 0vbOkonlyCancel, OK 1 vbOkCancelIgnor,Retry,Abort2 vbAbortRetryCcancelCancel, No, Yes3 vbYesNoCancelNo, Yes 4 vbYesNoCancel, Retry 5 vbCancelRetry
23
הצגת הודעה - ערך מוחזר
קבוע ערך לחצן OK 1 vbOkCancel 2 vbCancelAbort 3 vbAbortRetry 4 vbRretryIgnor 5 vbIgnorYes 6 vbYes No 7 vbNo
24
הצגת הודעה - דוגמה
Dim smsg as string
dim nbuttons as integer
Dim nresult as integer
smsg=“are you sure you want to exit?”
nbutton=vbyesno+vbquestion
nresult=MsgBox(smsg,nbuttons,”my program”)
if nresult=vbyes then
end
enif
25
Input Boxתיבת קלט – InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])
Private Sub Form_Load()Dim input1 As Stringinput1 = InputBox("Enter your name",
"Name Win")MsgBox "Your name is:" & input1,
vbInformation, "Name Win"End Sub
26
Input Boxתיבת קלט –
27
Combo Box
:Combo Boxשלושה סוגים של
•Style 0 )default( - drop-down combo box
על החץ המשתמש יכול להוסיף אפשרויות לרשימה או ללחוץלבחירה מרשימת האפשרויות
•Style 1 - Simple combo box
הרשימה מופיעה, אין חץ פתיחה. מאפשר למשתמש להוסיף אפשרויות
•Style 2 - Drop down list box
הרשימה אינה מופיעה עד שלוחצים על החץ. אין אפשרות להוסיף אפשרויות לרשימה
28
Combo Box - גישה
• box.list)index(
• Text1.Text = List1.List)2(
- מציינת את המיקום של ListIndexהתכונה •האלמנט הנבחר
•ListIndex( אם לא נבחרה אפשרות או 1 יהיה , )-שהמשתמש הוסיף אפשרות
מציינת את מספר ListCountהתכונה •האלמהנטים ברשימה
29
Combo Box - גישה
• AddItem
•Removeitem
•Clear
•ListIndex
•ListCount
List1.additem “germany”
List1.additem “japan”, 0
List1.removeitem 0
List1.clear
30
Creating Menus
By using the menu editor
31
תיבות דו-שיח
שלוש דרכים להוסיף תיבות דו-שיח ליישום שלך:הוספת בקרים לטפסים ( שימוש בתיבות קלט ופלטInputBox, MsgBox) שימוש בפקדCommonDialog על מנת להשתמש
Print, File openבתיבות דו-שיח סטנדרטיות כמו:
32
תיבות דו-שיח נפוצותCommonDialogפקד
Common Dialog מאפשר להציג את תיבות
הדו-שיח הבאות:OpenSave AsColorFontPrint
33
תיבות דו-שיח נפוצותCommonDialogפקד
יש Common Dialog כדי להשתמש בפקד
להוסיפו לסרגל הפקדים כך:
לבחור ProjectComponents לסמן אתMicrosoft Common Dialog Control
34
תיבות דו-שיח נפוצותCommonDialogפקד
בזמן ריצה ניתן להשתמש בשיטות הבאות:
Methods Dialog Displayed
ShowOpen Open
ShowSave Save As
ShowColor Color
ShowFont Font
ShowPrinter Print
ShowHelp Help
35
Open Dialog Box
Private Sub mnuOpenItem_Click)(
CommonDialog1.Filter ="Metafiles_ )*.WMF(|*.WMF"
CommonDialog1.ShowOpen
Image1.Picture =_ LoadPicture)CommonDialog1.filename(
mnuCloseItem.Enabled = True
End Sub
36
Color Dialog Box
Private Sub command1_Click)(
CommonDialog1.ShowColor
End Sub
37
Modal Dialog Box
Modal Dialog Box must be closed before you can continue working
A Dialog Box is Modal if you click OK or CANCEL before you can switch
To display a form as a modal dialog box
use a style argument of 1form1.show 1
38
Modeless Dialog Box
Modeless Dialog Box let you shift the focus between the dialog box and another form without having to close the dialog box.
Form1.show
39
Procedures
פרוצדורות מחלקות את התוכנית למספר תוכניות קטנות
פרוצדורות שנכתבו עבור פרוייקט אחדיכולות להיות בשימוש עבור פרוייקט אחר
Sub procedures do not return a value
Function procedures return a value
Property procedures can return and assign a values, and set references to objects
40
Sub Procedures
[Private|public][static]Sub procedurename )args(
statements
End Sub
Sub is Public by default
call MyProc)arg1,arg2(
MyProc arg1,arg2
41
Function Procedures
[Private|public][static]Function procname )args( [As Type]
statements
End Function
As type is variant type by default
Label1.Caption = func)y(
42
By Value
Function func)ByVal x As Integer( As Integer
x = 3
func = 4
End Function
Private Sub Form_Load)(
Dim y As Integer
y = 5
Label1.Caption = func)y( & "---" & y
End Sub
43
By Reference
Function func)Byref x As Integer( As Integer
x = 3
func = 4
End Function
Private Sub Form_Load)(
Dim y As Integer
y = 5
Label1.Caption = func)y( & "---" & y
End Sub
44
Property Procedures
נשתמש בסוג זה של פרוצדורות כאשר יוצרים תכונות חדשות לאובייקטים או רוצים לשייך קוד
מסוים לתכונה
VB מספק שלושה סוגים של פרוצדורות property:
Property Let - sets the value of a property
Property Get - returns the value of a property
Property Set - Set a reference to an object
45
MDI- Multiple Document Interface
במקרים מסוימים יהיה צורך לאחסן ולאחזר נתונים מבלי להידרש לעוצמה של מסד
נתונים.
במקרים כאלה, קבצי טקסט יהוו את הפתרון הרצוי.
46
קבצי טקסט
במקרים מסוימים יהיה צורך לאחסן ולאחזר נתונים מבלי להידרש לעוצמה של מסד
נתונים.
במקרים כאלה, קבצי טקסט יהוו את הפתרון הרצוי.
47
פתיחת קובץגישה סדרתית -
לקבצים סדרתיים אין מבנה מסודר כלשהו.
( Output(, לכתיבה )inputפתיחת קובץ לקריאה )(Appendולהוספה )
Open pathname for [input|Output|Append] As filenumber [len=buffersize]
פתיחת קובץ לא קיים לקריאה תהווה שגיאה
פתיחת קובץ לא קיים לכתיבה או הוספה, תיצור אותו.
48
קריאה מקובץגישה סדרתית -
Line input # filenum, line
קריאת שורה מהקובץinput #filenum,str,int,date
קריאה לתוך משתנים מתאימים. פ’ זו מחפשת את תווי ההפרדה )פסיקים, גרשיים, ו-#(
“text”,100,#1999-12-31#str=Input)chnum,#filenum(
filenum תווים מקובץ chnumקריאת
str=input)4,#filenum(
תווים מהקובץ4קורא
49
כתיבה לקובץגישה סדרתית -
Print #filenum, “hello”
hellowrite #filenum “hello”
“hello”
50
גישה אקראית גישה אקראית מתאימה לקבצים המכילים
רשומות בעלי אורך ומבנה זהים
Type worker
lastname as string*10
title as string*7
rank as string*2
End Type
public employee as worker
51
פתיחת קובץגישה אקראית -
Open pathname [for random] As filenumber len=buffersize
הגישה האקראית היא ברירת המחדל, לכן לא for randomלכתוב חייבים
reclen=len)employee(filenum=freefileopen “myfile.txt” as filenum len=reclen
52
קריאה וכתיבה גישה אקראית -
קריאת רשומות למשתנים
Get filenum, position, employee
positionמכיל מספר הרשומה
get #1,1,employeeכתיבת משתנים לרשומות
Put #filenum,position,employee משתמשים במשפטseek כדי לעבור בין רשומות
בקובץ
seek #1,3
3 הבא יתייחס לרשומה מספר put או getמשפט
53
גישה בינרית הגישה הבינרית מאפשרת שליטה מוחלטת
בקובץ יכולים לייצג כל bytesעל הקובץ. ה- דבר.
בגישה הבינרית משתמשים כאשר חשובלשמור על גודל קובץ קטן
Open pathname for binary As filenumber
54
פונקציות על קבצים file copy source, dest kill path name oldname as newname mkdir pathname rmdir pathname chdir pathname chdrive drive strvar=dir(path[,attr])
if dir$(“c:\myfile.txt”)=“” then ... Strvar=cyrdir$)[drive](
יחזיר את שם התיקיה הפעילה close #filenum
הפונקציהshellלהפעלת תוכניות נוספות doublevar=shell)pathname[,winstyle](
dtaskid=shell)notepad d:\readme.txt”, vbnormalfocus(
55
Accessing Databases
אובייקטDATA תכונות אובייקטDATA:
connect )Access( Databasename Readonly )true,false( RecourdSource RecordSetType )Table, Dynaset, SnapShot(
:תכונות אובייקט קשור DataSource )אובייקט DATA( DataField
56
Recordset אובייקטrecordset.מייצג את הנתונים שעובדים עימם בתוכנית
Indexתכונה להגדרת שדה חיפוש של בסיס הנתונים
Seek) שיטה method לחיפוש הרשומה (ניתן להשתמש (באופרטורי השוואה עמ”נ להשוות את המחרוזת שמחפשים
לטקסט שבבסיס הנתונים)
NoMatch תכונה שהיא true אם לא נמצאה המחרוזת שמחפשים
MoveFirstשיטה שגורמת לרשומה הראשונה להיות הנוכחית
57
Recordset Type
Table-type Recordset )vbTableType( a set of records that
represents a single database table that
you can use to add, change or delete records Dynaset-type Recordset )vbDynasetType( a dynamic set of records
that represents a database table or the results of
a query containing fields from one or more tables.
You can add, change and delete records and it will
be reflected in the table)s( Snapshot-type Recordset )vbSnapshotType( a static copy of a set of
records that you can use to find data or generate
reports. It can contain fields from one or more tables
but cant be updated
58
הוספת רשומה לבסיס הנתונים
• Data1.Recordset.AddNew
Data1.Recordset.field1 = value
• EOFAction property: 0 - MoveLast
1 - EOF (disable movenext button)
2 - AddNew
59
מחיקת רשומה מבסיס הנתונים
Data1.Recordset.Delete
פקודה זו מוחקת את הרשומה הנוכחית
Data1.Recordset.MoveNext
עוברים לרשומה הבאה
60
גיבוי/שיכפול בסיס הנתונים
Filename=inputbox(“Enter the path for_ backupcopy”)
if filename <> ”” then
filecopy data1.databasename, filename
endif
61
חיפוש נתון מבסיס הנתונים
Prompt$=“Enter the last name you want to search”)
searchstr = inputbox(prompt$,”lname search”)
data1.recordset.index=“lname”
data1.recordset.seek “=“, searchstr$
if data1.recordset.nomatch then
msgbox(“last name not found”)
end if
62
OLE -Object Link and Embedded
OLE הוא אובייקט המאפשר להתחיל יישומי windows מתוך יישום VB
) או Linkיישומים אלה יכולים להיות מקושרים (.VB) ביישום Embeddedמשובצים (
• Linked object מכיל נתונים המנוהלים ע”י - האפליקציה שיצרה אותו ומאוחסנים בקובץ
האפליקציה.
•Embedded object מכיל נתונים המאוחסנים - VBבתוך היישום של
63
64
OLE AutomationDim x As ObjectSet x = CreateObject("word.application")x.Visible = Falsex.Documents.Addx.Selection.Text = Text1.Textx.ActiveDocument.CheckSpellingText1.Text = x.Selection.Textx.ActiveDocument.Close savechanges:=wdDoNotSaveChangesx.QuitSet x = Nothing
wordיצירת אובייקט
wordהסתר
פתח מסמך חדש
למסמךtextboxהעתק את
הרץ בדיקת איות
העתק תוצאה בחזרה ל- textbox
wordצא מ-
Top Related