Sådan oprettes din egen splitformular i adgang ved hjælp af VBA

Opdelte formularer i Access er yderst nyttige. Desværre virker de ikke, når du placerer dem i en navigationsformular. Lær, hvordan du kan oprette en VBA-funktion, der simulerer Access' opdelte formularfunktioner og får den til at fungere selv inde i en navigationsformular.

Opdelt formular giver dig mulighed for at have to visninger af dine poster på samme tid - formularvisning og dataarkvisning. Det giver dig mulighed for at have et overblik over alle dine poster, samtidig med at du har mulighed for at se og redigere dem én efter én.

Desværre vil opdelte formularer ikke fungere, når du lægger dem i en navigationsformular - noget der undrer mig. Godt der er en løsning på dette. Ved hjælp af VBA kan du oprette din egen funktion, der simulerer Access' opdelte form. Bare følg nedenstående trin.

Hent nu

Hvis du vil begynde at bruge funktionen så hurtigt som muligt, kan du:

Download eksempeldatabasen med VBA-koder nu

Ellers kan du læse indholdet nedenfor, hvis du vil gøre det selv.

Trin til at oprette din egen splitformular i Access ved hjælp af VBA

1. Åbn din delte formular, og opdater standardvisningen til Single Form. Åbn din opdelte formular, og opdater standardvisningen til en enkelt formular

  1. Åbn din delte formular.
  2. Vælg formularen i designvisningen.
  3. Gå til egenskabsarket (ALT + Enter) > Formularfanen.
  4. Skift standardvisning til: Enkelt formular.
  5. Luk formularen og gem.

2. Opret en kopi af formularen. Dette vil tjene som dataarkvisning.

  1. Gå til navigationsruden.
  2. Højreklik på din formular og vælg Kopier.
  3. Højreklik på et tomt område i navigationsruden, og vælg Sæt ind.
  4. Skift formularnavnet. Tilføj det med "_Datasheet".

Eksempel:

  • Form: Medlemmer
  • Kopi af formularen: Members_Datasheet

3. Åbn dataarkformularen, og opdater dens egenskaber for formularvisning.

  1. Åbn dataarkformularen.
  2. Vælg formularen i designvisningen.
  3. Gå til Egenskabsarket > Formularfanen.
  4. Opdater følgende egenskaber:
    • Standardvisning: Blad
    • Tillad dataarkvisning: Ja
    • Tillad formularvisning: Ingen
  5. Luk formularen og gem.

4. Åbn hovedformularen igen, og tilføj dataarkformularen som underformular.

  1. Åbn hovedformularen (den der blev kopieret) i designvisning.
  2. Tilføj en underformular.
    • Gå til menuen Design. Vælg Underformular/Underrapport.Vælg Underformular
    • Klik på det detaljerede område i formularen.
    • Underformularguiden vises.Underformularguiden

1. Klik på 'Brug en eksisterende formular'.

2. Vælg din dataarkformular.

3. Klik på Næste.Vælg 'Definer min egen'

4. Vælg 'Definer min egen'.

5. Klik på Udfør.

3. Dataarkformularen er nu en underformular til din hovedformular. Juster den til din ønskede størrelse og position.

5. Tilføj til sidst koden.

  1. Åbn VBA Editor (ALT + F11).
  2. Vælg hovedformularen, og indsæt koden, der følger.Vælg hovedformularen og indsæt koden
'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. Efter kopiering af koden skal du erstatte alle forekomster af ordet Medlemmer_Datablad med det faktiske navn på din dataarkformular.
  2. Når du er færdig, skal du vælge din dataarkformular fra projektmenuen og kopiere koden nedenfor.
'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. Opdater værdierne for følgende variabler:
  • pk_tbox – henviser til tekstboksen, der indeholder den primære nøgle.
  • pk_felt – henviser til postkildens primære nøglefelt.

De har hver en stjerne (*) i kommentarfeltet, så du nemt kan finde dem.

  1. Når du er færdig, skal du gemme ændringerne (CTRL + S) og lukke VBA Editor.

Nu kan du tilføje din helt egen opdelte formular i navigationsformularen. Prøve det!

Reparer beskadiget adgangsdatabase (.accdb)

Der kan være mange grunde til, at en Access-database bliver beskadiget. Desværre har vi ikke kontrol over de fleste af dem. Hvis det sker for dig, så husk, at der stadig er en måde at gendanne den på. DataNumen Inc. har skabt en software, der udfører accdb reparation. Tjek det ud.

Forfatter Introduktion:

Jayme Stack er ekspert i datagendannelse i DataNumen, Inc., som er verdens førende inden for datagendannelsesteknologier, herunder sql opsving og excel-genopretningssoftwareprodukter. For mere information besøg www.datanumen.com

Kommentarer er lukket.