Formularze dzielone w programie Access są niezwykle przydatne. Niestety nie działają, gdy umieścisz je w formularzu nawigacyjnym. Dowiedz się, jak utworzyć funkcję VBA, która będzie symulować funkcje podzielonej formy programu Access i sprawić, by działała nawet w formularzu nawigacyjnym.
Formularz podzielony umożliwia jednoczesne wyświetlanie dwóch rekordów - widoku formularza i widoku arkusza danych. Umożliwia przeglądanie wszystkich rekordów, a jednocześnie daje możliwość przeglądania i edytowania ich jeden po drugim.
Niestety, podzielone formularze nie będą działać, gdy umieścisz je w formularzu nawigacji - coś, co mnie wprawia w zakłopotanie. Dobrze, że istnieje obejście tego problemu. Korzystając z VBA, możesz stworzyć własną funkcję, która będzie symulować podzielony formularz Access. Po prostu wykonaj poniższe czynności.
Pobierz teraz
Jeśli chcesz zacząć korzystać z tej funkcji jak najszybciej, możesz:
Pobierz teraz przykładową bazę danych z kodami VBA
W przeciwnym razie, jeśli chcesz wykonać majsterkowanie, możesz przeczytać poniższą zawartość.
Kroki, aby utworzyć własny formularz podzielony w programie Access przy użyciu VBA
1. Otwórz podzielony formularz i zaktualizuj widok domyślny do formularza pojedynczego. 
- Otwórz podzielony formularz.
- W widoku projektu wybierz formularz.
- Przejdź do arkusza właściwości (ALT + Enter)> karta Formularz.
- Zmień widok domyślny na: Formularz pojedynczy.
- Zamknij formularz i zapisz.
2. Utwórz kopię formularza. Będzie to służyć jako widok arkusza danych.
- Przejdź do okienka nawigacji.
- Kliknij prawym przyciskiem myszy formularz i wybierz Kopiuj.
- Kliknij prawym przyciskiem myszy pusty obszar w panelu nawigacji i wybierz opcję Wklej.
- Zmień nazwę formularza. Dołącz go za pomocą „_Datasheet”.
Przykład:
- Formularz: Członkowie
- Kopia formularza: Members_Datasheet
3. Otwórz formularz arkusza danych i zaktualizuj jego właściwości widoku formularza.
- Otwórz formularz arkusza danych.
- W widoku projektu wybierz formularz.
- Przejdź do arkusza właściwości> karty Formularz.
- Zaktualizuj następujące właściwości:
- Widok domyślny: Karta katalogowa
- Zezwalaj na widok arkusza danych: Tak
- Zezwalaj na widok formularza: Nie
- Zamknij formularz i zapisz.
4. Otwórz ponownie formularz główny i dodaj formularz arkusza danych jako podformularz.
- Otwórz formularz główny (ten, który został skopiowany) w widoku projektu.
- Dodaj podformularz.
- Przejdź do menu Projekt. Wybierz Podformularz / Podraport.
- Kliknij obszar Szczegóły formularza.
- Pojawi się Kreator podformularza.
- Przejdź do menu Projekt. Wybierz Podformularz / Podraport.
1. Kliknij „Użyj istniejącego formularza”.
2. Wybierz formularz arkusza danych.
3. kliknij Dalej.
4. Wybierz opcję „Zdefiniuj własne”.
5.Kliknij Zakończ.
3. Formularz arkusza danych jest teraz podformularzem formularza głównego. Dostosuj go do żądanego rozmiaru i położenia.
5. Na koniec dodaj kod.
- Otwórz Edytor VBA (ALT + F11).
- Wybierz główny formularz i wklej poniższy kod.
'MAIN FORM Option Explicit Private Sub Form_AfterUpdate() Me.Members_Datasheet.Requery End Sub Private Sub Form_Current() If Me.NewRecord Then Me.Members_Datasheet.Form.Recordset.AddNew Else Me.Members_Datasheet.Requery End If End Sub
- Po skopiowaniu kodu zamień wszystkie wystąpienia słowa Członkowie_Arkusz danych z rzeczywistą nazwą formularza arkusza danych.
- Po zakończeniu wybierz formularz arkusza danych z menu Projekt i skopiuj poniższy kod.
'SUBFORM/DATASHEET FORM Option Explicit Private Sub Form_AfterUpdate() Me.Parent.Form.Requery End Sub Private Sub Form_Current() Dim pk_field As String, pk_tbox As Control Dim primaryKey As String, strSearch As String Set pk_tbox = Me.Member_ID 'textbox containing primary key * pk_field = "Member_ID" 'primary key field name * primaryKey = Nz(pk_tbox.Value, 0) 'change value to 0 if null pk_field = "[" & pk_field & "]" 'enclose field name with brackets If primaryKey <> 0 Then 'if not null (or not a new record) strSearch = pk_field & "=" & primaryKey Me.Parent.Recordset.FindFirst strSearch Else Me.Parent.Form.Recordset.AddNew End If End Sub
- Zaktualizuj wartości następujących zmiennych:
- pk_tbox - odnosi się do pola tekstowego zawierającego klucz podstawowy.
- pole_pk - odnosi się do pola klucza podstawowego źródła rekordów.
Każdy z nich ma gwiazdkę (*) w sekcji komentarzy, dzięki czemu można je łatwo znaleźć.
- Po zakończeniu zapisz zmiany (CTRL + S) i zamknij Edytor VBA.
Teraz możesz dodać swój własny podzielony formularz w formularzu nawigacji. Wypróbuj to!
Napraw uszkodzoną bazę danych dostępu (accdb)
Istnieje wiele powodów, dla których baza danych Access może ulec uszkodzeniu. Niestety, na większość z nich nie mamy wpływu. Jeśli Ci się to przydarzy, pamiętaj, że nadal istnieje sposób na jej odzyskanie. DataNumen Inc. stworzyła oprogramowanie, które wykonuje accdb naprawa. Sprawdź to.
Wprowadzenie autora:
Jayme Stack jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym odzyskiwanie sql i doskonałe oprogramowanie do odzyskiwania. po więcej informacji odwiedź www.datanumen.com



