Jak utworzyć własny formularz podzielony w programie Access za pomocą VBA

Podziel się teraz:

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 formularz podzielony i zaktualizuj widok domyślny do pojedynczego formularza

  1. Otwórz podzielony formularz.
  2. W widoku projektu wybierz formularz.
  3. Przejdź do arkusza właściwości (ALT + Enter)> karta Formularz.
  4. Zmień widok domyślny na: Formularz pojedynczy.
  5. Zamknij formularz i zapisz.

2. Utwórz kopię formularza. Będzie to służyć jako widok arkusza danych.

  1. Przejdź do okienka nawigacji.
  2. Kliknij prawym przyciskiem myszy formularz i wybierz Kopiuj.
  3. Kliknij prawym przyciskiem myszy pusty obszar w panelu nawigacji i wybierz opcję Wklej.
  4. 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.

  1. Otwórz formularz arkusza danych.
  2. W widoku projektu wybierz formularz.
  3. Przejdź do arkusza właściwości> karty Formularz.
  4. Zaktualizuj następujące właściwości:
    • Widok domyślny: Karta katalogowa
    • Zezwalaj na widok arkusza danych: Tak
    • Zezwalaj na widok formularza: Nie
  5. Zamknij formularz i zapisz.

4. Otwórz ponownie formularz główny i dodaj formularz arkusza danych jako podformularz.

  1. Otwórz formularz główny (ten, który został skopiowany) w widoku projektu.
  2. Dodaj podformularz.
    • Przejdź do menu Projekt. Wybierz Podformularz / Podraport.Wybierz podformularz
    • Kliknij obszar Szczegóły formularza.
    • Pojawi się Kreator podformularza.Kreator podformularza

1. Kliknij „Użyj istniejącego formularza”.

2. Wybierz formularz arkusza danych.

3. kliknij Dalej.Wybierz „Zdefiniuj własne”

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.

  1. Otwórz Edytor VBA (ALT + F11).
  2. Wybierz główny formularz i wklej poniższy kod.Wybierz główny formularz i wklej 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
  1. Po skopiowaniu kodu zamień wszystkie wystąpienia słowa Członkowie_Arkusz danych z rzeczywistą nazwą formularza arkusza danych.
  2. 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
  1. 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źć.

  1. 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

Podziel się teraz:

Możliwość dodawania komentarzy nie jest dostępna.