Jak vytvořit svůj vlastní rozdělený formulář v Accessu pomocí VBA

Sdílej nyní:

Rozdělené formuláře v Accessu jsou mimořádně užitečné. Bohužel nefungují, když je umístíte do navigačního formuláře. Zjistěte, jak můžete vytvořit funkci VBA, která bude simulovat funkce rozděleného formuláře aplikace Access a umožní ji fungovat i uvnitř navigačního formuláře.

Rozdělený formulář vám umožňuje mít dva pohledy na vaše záznamy současně – formulářové zobrazení a zobrazení datového listu. Umožňuje vám mít přehled o všech vašich záznamech a zároveň vám dává možnost je prohlížet a upravovat jeden po druhém.

Bohužel, rozdělené formuláře nebudou fungovat, když je vložíte do navigačního formuláře – něco, co mě mate. Dobře, že na to existuje řešení. Pomocí VBA můžete vytvořit svou vlastní funkci, která bude simulovat rozdělený formulář Accessu. Postupujte podle níže uvedených kroků.

Stáhnout nyní

Pokud chcete tuto funkci začít používat co nejdříve, můžete:

Stáhněte si nyní ukázkovou databázi s kódy VBA

Jinak si můžete přečíst obsah níže, pokud si chcete udělat kutilství.

Kroky k vytvoření vlastního rozděleného formuláře v Accessu pomocí VBA

1. Otevřete svůj rozdělený formulář a aktualizujte výchozí zobrazení na jeden formulář. Otevřete svůj rozdělený formulář a aktualizujte výchozí zobrazení na jeden formulář

  1. Otevřete svůj rozdělený formulář.
  2. V návrhovém zobrazení vyberte formulář.
  3. Přejděte na list vlastností (ALT + Enter) > karta Formulář.
  4. Změnit výchozí zobrazení na: Jeden formulář.
  5. Zavřete formulář a uložte.

2. Vytvořte kopii formuláře. To bude sloužit jako zobrazení datového listu.

  1. Přejděte na navigační panel.
  2. Klikněte pravým tlačítkem na svůj formulář a vyberte Kopírovat.
  3. Klikněte pravým tlačítkem na prázdnou oblast v navigačním panelu a vyberte Vložit.
  4. Změňte název formuláře. Připojte jej pomocí „_Datasheet“.

Příklad:

  • Forma: Členové
  • Kopie formuláře: Members_Datasheet

3. Otevřete formulář datového listu a aktualizujte jeho vlastnosti zobrazení formuláře.

  1. Otevřete formulář datového listu.
  2. V návrhovém zobrazení vyberte formulář.
  3. Přejděte na kartu Vlastnosti > Formulář.
  4. Aktualizujte následující vlastnosti:
    • Výchozí zobrazení: list
    • Povolit zobrazení datového listu: Ano
    • Povolit zobrazení formuláře: Ne
  5. Zavřete formulář a uložte.

4. Znovu otevřete hlavní formulář a přidejte formulář datového listu jako podformulář.

  1. Otevřete hlavní formulář (ten, který byl zkopírován) v návrhovém zobrazení.
  2. Přidejte podformulář.
    • Přejděte do nabídky Design. Vyberte Podformulář/Podsestava.Vyberte Podformulář
    • Klikněte na oblast podrobností formuláře.
    • Zobrazí se Průvodce podformulářem.Průvodce podformulářem

1. Klikněte na 'Použít existující formulář'.

2. Vyberte formulář datového listu.

3. Klikněte na Další.Vyberte „Definovat vlastní“

4. Vyberte možnost „Definovat vlastní“.

5.Click Dokončit.

3. Formulář datového listu je nyní podformulářem vašeho hlavního formuláře. Upravte jej na požadovanou velikost a polohu.

5. Nakonec přidejte kód.

  1. Otevřete editor VBA (ALT + F11).
  2. Vyberte hlavní formulář a vložte následující kód.Vyberte hlavní formulář a vložte kód
'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 zkopírování kódu nahraďte všechny výskyty slova Members_Datasheet se skutečným názvem formuláře datového listu.
  2. Až budete hotovi, vyberte svůj datový list z nabídky Projekt a zkopírujte níže uvedený kód.
'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. Aktualizujte hodnoty pro následující proměnné:
  • pk_tbox – odkazuje na textové pole obsahující primární klíč.
  • pk_field – odkazuje na pole primárního klíče zdroje záznamů.

Každý z nich má v sekci komentářů hvězdičku (*), abyste je snadno našli.

  1. Po dokončení uložte změny (CTRL + S) a zavřete editor VBA.

Nyní můžete do navigačního formuláře přidat svůj vlastní rozdělený formulář. Vyzkoušej to!

Opravit poškozenou databázi přístupu (.accdb)

Existuje mnoho důvodů, proč se databáze Accessu poškodí. Bohužel nad většinou z nich nemáme kontrolu. Pokud se vám to stane, nezapomeňte, že stále existuje způsob, jak ji obnovit. DataNumen Inc. vytvořila software, který funguje accdb oprava. Koukni na to.

Úvod autora:

Jayme Stack je expert na obnovu dat DataNumen, Inc., která je světovým lídrem v oblasti technologií pro obnovu dat, včetně zotavení sql a excelové softwarové produkty pro obnovu. Pro více informací navštivte www.datanumen.com

Sdílej nyní:

Komentáře jsou uzavřeny.