Geteilte Formulare in Access sind äußerst nützlich. Leider funktionieren sie nicht, wenn Sie sie in ein Navigationsformular einfügen. Erfahren Sie, wie Sie eine VBA-Funktion erstellen können, die die Funktionen für geteilte Formulare von Access simuliert und auch innerhalb eines Navigationsformulars funktioniert.
Mit dem geteilten Formular können Sie zwei Ansichten Ihrer Datensätze gleichzeitig haben - Formularansicht und Datenblattansicht. Sie haben einen Überblick über alle Ihre Datensätze und können diese gleichzeitig einzeln anzeigen und bearbeiten.
Leider funktionieren geteilte Formulare nicht, wenn Sie sie in ein Navigationsformular einfügen - etwas, das mich verblüfft. Gut, dass es dafür eine Problemumgehung gibt. Mit VBA können Sie Ihre eigene Funktion erstellen, die das geteilte Formular von Access simuliert. Befolgen Sie einfach die folgenden Schritte.
Jetzt kostenlos herunterladen
Wenn Sie die Funktion so schnell wie möglich nutzen möchten, dann können Sie Folgendes tun:
Laden Sie jetzt die Beispieldatenbank mit VBA-Codes herunter
Andernfalls können Sie den folgenden Inhalt lesen, wenn Sie selbst basteln möchten.
Schritte zum Erstellen eines eigenen geteilten Formulars in Access mit VBA
1. Öffnen Sie Ihr geteiltes Formular und aktualisieren Sie die Standardansicht auf Einzelformular. 
- Öffnen Sie Ihr geteiltes Formular.
- Wählen Sie in der Entwurfsansicht das Formular aus.
- Gehen Sie zur Registerkarte Eigenschaftenblatt (ALT + Eingabetaste)> Formular.
- Ändern Sie die Standardansicht in: Einzelformular.
- Schließen Sie das Formular und speichern Sie es.
2. Erstellen Sie eine Kopie des Formulars. Dies dient als Datenblattansicht.
- Gehen Sie zum Navigationsbereich.
- Klicken Sie mit der rechten Maustaste auf Ihr Formular und wählen Sie Kopieren.
- Klicken Sie mit der rechten Maustaste auf einen leeren Bereich im Navigationsbereich und wählen Sie Einfügen.
- Ändern Sie den Formularnamen. Fügen Sie es mit "_Datasheet" hinzu.
Ejemplo:
- Form: Mitglieder
- Kopie des Formulars: Members_Datasheet
3. Öffnen Sie das Datenblattformular und aktualisieren Sie die Eigenschaften der Formularansicht.
- Öffnen Sie das Datenblattformular.
- Wählen Sie in der Entwurfsansicht das Formular aus.
- Gehen Sie zur Registerkarte Eigenschaftenblatt> Formular.
- Aktualisieren Sie die folgenden Eigenschaften:
- Standardansicht: Datenblatt
- Datenblattansicht zulassen: Ja
- Formularansicht zulassen: Nein
- Schließen Sie das Formular und speichern Sie es.
4. Öffnen Sie das Hauptformular erneut und fügen Sie das Datenblattformular als Unterformular hinzu.
- Öffnen Sie das Hauptformular (das kopierte) in der Entwurfsansicht.
- Fügen Sie ein Unterformular hinzu.
- Gehen Sie zum Menü Design. Wählen Sie Unterformular / Unterbericht.
- Klicken Sie auf den Detailbereich des Formulars.
- Der SubForm-Assistent wird angezeigt.
- Gehen Sie zum Menü Design. Wählen Sie Unterformular / Unterbericht.
1. Klicken Sie auf "Vorhandenes Formular verwenden".
2.Wählen Sie Ihr Datenblattformular.
3.Klicken Sie auf Weiter.
4.Wählen Sie 'Mein eigenes definieren'.
5.Klicken Sie auf Fertig stellen.
3. Das Datenblattformular ist jetzt ein Unterformular Ihres Hauptformulars. Stellen Sie es auf die gewünschte Größe und Position ein.
5. Fügen Sie abschließend den Code hinzu.
- Öffnen Sie den VBA-Editor (ALT + F11).
- Wählen Sie das Hauptformular aus und fügen Sie den folgenden Code ein.
'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
- Ersetzen Sie nach dem Kopieren des Codes alle Instanzen des Wortes Mitglieder_Datenblatt mit dem tatsächlichen Namen Ihres Datenblattformulars.
- Wenn Sie fertig sind, wählen Sie Ihr Datenblattformular aus dem Menü Projekt und kopieren Sie den folgenden Code.
'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
- Aktualisieren Sie die Werte für die folgenden Variablen:
- pk_tbox - bezieht sich auf das Textfeld mit dem Primärschlüssel.
- pk_field - bezieht sich auf das Primärschlüsselfeld der Datensatzquelle.
Sie haben jeweils ein Sternchen (*) im Kommentarbereich, damit Sie sie leicht finden können.
- Wenn Sie fertig sind, speichern Sie die Änderungen (STRG + S) und schließen Sie den VBA-Editor.
Jetzt können Sie Ihr eigenes geteiltes Formular in das Navigationsformular einfügen. Versuch es!
Beschädigte Access-Datenbank (.accdb) reparieren
Es gibt viele Gründe, warum eine Access-Datenbank beschädigt werden kann. Leider haben wir auf die meisten davon keinen Einfluss. Sollte Ihnen das passieren, denken Sie daran, dass es dennoch eine Möglichkeit gibt, die Datenbank wiederherzustellen. DataNumen Inc. hat eine Software entwickelt, die funktioniert accdb Reparatur. Hör zu.
Einführung des Autors:
Jayme Stack ist ein Experte für Datenwiederherstellung in DataNumen, Inc., das weltweit führend bei Datenwiederherstellungstechnologien ist, einschließlich SQL-Wiederherstellung und Excel-Wiederherstellungssoftwareprodukte. Für weitere Informationen besuchen Sie www.datanumen.com €XNUMX



