570 likes | 661 Vues
VB for applications. Lesson Plan. Fundamentals of VB VB for handling events in Access. Project 1 (parts 1-2-3). Avg = 143.3 (27 submissions). Visual Basic in Access. Previous version (< 2002) Use macro to perform automation Use VB This version
E N D
Lesson Plan • Fundamentals of VB • VB for handling events in Access
Project 1 (parts 1-2-3) • Avg = 143.3 (27 submissions)
Visual Basic in Access • Previous version (< 2002) • Use macro to perform automation • Use VB • This version - Very little support for macro (only for backward compatibility) - Focus on VB
Visual Basic in Access • VB is a real programming language and is NOT a macro language • We focus on using VB for handling user-initiated events (keyboard press, mouse lick..) • Where do we use Visual Basic for Applications code? • Docmd command • Write query expression • To create user-defined functions • Even handling, error handling …
Modules • Form modules: • Contain code in response to event-triggered by a user using controls of a form • Report modules • Contain code in response t event-trigged by reports, sections of reports • Access modules, and Class modules • Allows you to define custom objects
Modules • One or more procedures (sub-procedures) Example: Private Sub Add_Click() On Error GoTo Err_Add_Click ‘Start procedure code DoCmd.GoToRecord , , acNewRec Exit_Add_Click: ……. ‘End procedure code End Sub
Procedures • Procedures Definition: private/public SUB <procedure name> ‘ code right here end SUB Similar to void-returned method in Java/C++ (or void returned functions in C)
Functions Functions: private/public FUNCTION <procedure name>([Parameter as Datatype]) As ReturnType ‘ code right here end Function Similar to non-void-returned method in Java/C++ (or non-void returned functions in C)
Datatype • Symbol value: type-declaration character • Byte: [0,255] Symbol value: none • Integer: [-231, 231-1] Symbol value: % • Boolean: true, false. Symbol value: none • Long: [-2,147,483,648; 2,147,483,647] Symbol value: & • Double: Symbol value: # • Currency: symbol value @ • String: symbol value $ • Date: symbol value none
Variables and naming conventions • Implicit variables: IntegerVar% = 1234 • Explicit variables: Dim IntegerVar As Integer
Variables • Arrays: are variables that consists of a collection of values Dim newArray(20) as String ‘create an array with 21 elements indexed from 0 to 20 Dim newArray(1 to 20) as String ‘create an array with 20 elements indexed from 1 to 20
Controlling program flow • Conditional statements: If boolean_expression1 then statement to be executed if boolean_expression1 is true Else statement to be executed if boolean_expression1 is false Endif
Controlling program flow Select case statement: Select Case <variable name> case exp1 statement being executed if the value of variable name = exp1 case exp2 statement being executed if the value of variable name = exp2 …case else: statement being executed if none of the above is met End Select
Controlling program flow Case expression can be: single value or list of values range of values expression with relational operators Example: select case inputStr case “A” to “Z” char = “Upper Case” case “a” to “z” char =“Lower Case”
Repetitive commands For, Next For counter=startValue to stopValue Step stepValue ‘Code are here Next Example: Sum%=0 For i = 1 to 100 step 2 Sum%= Sum%+ i next i
Repetitive commands On Error GoTO Label GoTo label: creates a loop but breaks the structure of a program
VBA for event handling in Access Form • An event: mouse click, mouse movement, keyboard press • VBA code is used to process the actions associated with such an event. • Event procedure from properties for any controls in a form
Adding a button to open a new form Private Sub Login_Click() On Error GoTo Err_OpenNewUserForm_Click Dim formName As String Dim formCriteria As String formName = "NewUser" DoCmd.OpenForm formName, , , formCriteria Exit_Err_OpenNewUserForm_Click: Exit Sub Err_OpenNewUserForm_Click: MsgBox Err.Description Resume Exit_Err_OpenNewUserForm_Click End Sub
Adding a button to display a specific record on another form
Adding a button to display a specific record on another form
Adding a button to display a specific record on another form
Adding a button to display a specific record on another form
Adding a button to display a specific record on another form
Adding a button to display a specific record on another form
Adding a button to display a specific record on another form
Adding a button to display a specific record on another form
Adding a button to display a specific record on another form Private Sub DisplayUserInfo_Click() On Error GoTo Err_DisplayUserInfo_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "UserInformation" stLinkCriteria = "[FirstName]=" & "'"& Me![userfirstname] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_DisplayUserInfo_Click: Exit Sub Err_DisplayUserInfo_Click: MsgBox Err.Description Resume Exit_DisplayUserInfo_Click End Sub
Adding a button to display a specific record on another form
Adding a button to display a specific record on another form
Adding a button to display a specific record on another form
Adding a button to display a specific record on another form Private Sub DisplayUserInfo_Click() On Error GoTo Err_DisplayUserInfo_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "UserInformation" stLinkCriteria = "[FirstName] LIKE " & "'"& Me![userfirstname] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_DisplayUserInfo_Click: Exit Sub Err_DisplayUserInfo_Click: MsgBox Err.Description Resume Exit_DisplayUserInfo_Click End Sub
Referring to Access Object with VBA • Form and form property: Example: Forms!UserInformation Forms!UserInformation.RecordSource Me.RecordSource Me.Userpassword
Validating data Private Sub ISBN_BeforeUpdate(Cancel As Integer) If IsNull(Me!ISBN) Then MsgBox "This should not be empty" Exit Sub End If firstChar$ = Left(Me!ISBN, 1) Select Case firstChar$ Case 0 To 9 Exit Sub Case Else MsgBox “ISBN should start with a number" Cancel = True End Select End Sub
Practice Work on project 1 – part 5-6
Review for Exam • Week 1: Three separate types of functionality: • Data Management • Application logic • Presentation Single-tier, client-server, three-tier architecture How Do Databases Support the World Wide Web
Review for Exam • Week 2 Relational model: table, key(PR,FK), row, column, domain,tuple/record, NULL value Data integrity, entity integrity, Referential Integrity, enterprise integrity Views, relationship (three types, how to modelthem)
Review for Exam • Week 3 Normalization Validating data (field level, table level) SQL statements
Review for midterm exam • Week 4: Query: boolean expressions, different types of queries (select,action, parameter, crosstab) Different types of joins (equ(inner)joins, left/right joins)
Review for midterm exam • Week 5 and week 6: Form and report
Review for midterm exam • Matching A-3 B-6 C-4 D-2 E-5 F-1
Review for midterm exam 2. Query operations on a database are very important. Which operation is not a query operation? a. Insert b. Update c. Select d. Model
Review for midterm exam 3. Consider a database with a logical description Employee (employeeNumber, lastName, firstName, age). Select the entry that would most likely be require to be unique a. employeeNumber b. lastName c. firstName d. Age e. None of the above
Review for midterm exam 4. Insert into video (videoId, movieName,typeDVDVHS) values (102, ‘Citizen Kane’,’VHS’); Insert into video (videoId, movieName,typeDVDVHS) values(103, ‘Chicago’,’DVD’);
Review for midterm exam 5. Employee table: Empid: Primary key (PK) State: Foreign key (FK) State table: Stateid: primary key(PK) Relationship between state and employee: one to many State: parent table Employee: child table