2 משתנים - variables משתנה - הנו מאגר מידע זמני למרות ש- vb לא...

Post on 13-Jan-2016

234 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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