Ustaw główny panel aplikacji (ten, który robiliśmy na poprzednich zajęciach) jako startowy (opcja Startup z menu Tools).
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
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
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.")
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
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