6. Budowanie aplikacji

Etapy budowania aplikacji:

    Większość etapów można przyspieszyć wykorzystując kreatory, a potem dopracowując utworzone
     obiekty.

6.1 Wykonanie formularza

Tworzenie formularza

Dostępne obiekty na formularzach: Najważniejsze własności: 6.2 Wykonanie raportu

Tworzenie raportu

Części raportu: Grupy i sortowanie: Najważniejsze własności: Możliwości formatowania raportu: Inne możliwości raportów:


6.3 Moduły i Visual Basic for Applications

Zastosowanie

Składnia Przykład 1: Przetwarzanie transakcyjne

Funkcja wykonuje ciąg zapytań o zmianę danych a następnie pozwala wszystkie zmiany zatwierdzić lub odrzucić.

Function ChangeTitle
        Const MB_ICONQUESTION = 32
        Const YES = 6
        Const YES_NO = 4
        Dim CRLF As String, EmployeeName As String
        Dim Message As String, Prompt As String
        Dim MyWorkspace As Workspace, MyDatabase As Database, MyTable As Recordset
        CRLF = Chr$(13) & Chr$(10)
        Prompt = "Change title to Account Executive?"
        Set MyWorkspace = DBEngine.Workspaces(0)
                ' Get default workspace.
        Set MyDatabase = MyWorkspace.Databases(0)
                ' Get current database.
        Set MyTable = MyDatabase.OpenRecordset("Employees", DB_OPEN_TABLE)
                ' Open table.
        MyWorkspace.BeginTrans  ' Start of transaction.
        Do Until MyTable.EOF
                If MyTable![Title] = "Sales Representative" Then
                        EmployeeName = MyTable![Last Name] & ", " & MyTable![First Name]
                        Message = "Employee: " & EmployeeName & CRLF & CRLF
                        If MsgBox(Message & Prompt, MB_ICONQUESTION & YES_NO, "Change Job Title") = YES Then
                                MyTable.Edit    ' Enable editing.
                                MyTable![Title] = "Account Executive"
                                        ' Change job title.
                                MyTable.Update  ' Save changes.
                        End If
                End If
                MyTable.MoveNext        ' Move to next record.

        Loop
        If MsgBox("Save all changes?", MB_ICONQUESTION + YES_NO, "Save Changes") = YES Then
                MyWorkspace.CommitTrans ' Commit changes.
        Else
                MyWorkspace.Rollback    ' Undo changes.
        End If
        MyTable.Close                   ' Close table.
End Function

Pokazano:

Przykład 2: Obsługa pól na formularzu

Procedura obsługi zdarzenia OnCurrent powoduje, że jeśli pracownik ma wpisaną datę zwolnienia, to jego dane nie mogą być
zmienione.

Sub Form_Current ()
    On Error Resume Next
    ' konieczne - nie wszystkie pola mają własność Enabled!
    Dim i As Integer
    Dim f As Form

    Set f = Forms![Pracownicy]
    For i = 1 To Me.Count
        f(i).locked = Not IsNull(Me![Data zwolnienia])
    Next i
End Sub

Pokazano:

Inne ciekawe możliwości języka: