VBA2, pjwstk PJLinka.pl, RBD


  1. Ustaw główny panel aplikacji (ten, który robiliśmy na poprzednich zajęciach) jako startowy (opcja Startup z menu Tools).

  2. W formularzu „Autorzy” dodaj przycisk „Książki autora”, który spowoduje wyświetlenie wszystkich książek wybranego aktualnie autora. Zrealizujemy to w ten sposób, że wyświetlimy formularz książki z ustawionym odpowiednim kryterium:

Private Sub KsiazkiAutora_Click()
On Error GoTo Err_KsiazkiAutora_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Książki autora "
stLinkCriteria = "IDAutora=Forms![Autorzy]![IDAutora]"

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit Sub
Err_KsiazkiAutora_Click:
MsgBox Err.Description
End Sub

  1. Na formularzu „Książki” znajduje się przycisk usuwający bieżący rekord (dodawaliśmy go na poprzednich zajęciach). Oprogramuj zdarzenie Form_Delete tak, aby przed usunięciem rekordu użytkownik musiał potwierdzić usunięcie:

Private Sub Form_Delete(Cancel As Integer)
If MsgBox("Czy na pewno usunąć?", vbYesNo) = vbNo Then Cancel = True
End Sub

  1. Zmodyfikuj filtr z poprzednich zajęć tak, aby wartość po której filtrujemy (tytuł) nie była wprowadzana w pole tekstowe, lecz była możliwa do wprowadzenia przez InputBox:

Tytuł = InputBox("Wprowadź tytuł książki, której szukasz.")

  1. W formularzu „Książki” może powstać problem, gdy chcemy wprowadzić nową książkę, a jej tematu nie ma w bazie (nie pojawi się w polu combi). Możemy oprogramować zdarzenie NotInList tak, aby nowy temat został dodany.

Private Sub Temat_NotInList(NewData As String, Response As Integer)

If MsgBox("Czy chcesz wprowadzić nowy temat?", vbYesNo + vbQuestion) = vbYes Then

Response = acDataErrAdded

DoCmd.RunSQL "INSERT INTO Tematy(Nazwa) VALUES('" & newData & "')"

Else

Response = acDataErrContinue

Me.Undo

End If

End Sub

  1. Oprogramuj akcję AfterUpdate I AfterInsert tak, aby po wstawieniu nowego autora w formularzu Autorzy, odświerzyło się pole combi w formularzu Książki.

Forms!Ksiazki!Autorz.Requery



Wyszukiwarka