Kako kreirati vlastiti podijeljeni obrazac u Accessu koristeći VBA

Podijeli sada:

Podijeljeni obrasci u Accessu su izuzetno korisni. Nažalost, ne rade kada ih stavite u navigacijski obrazac. Naučite kako možete kreirati VBA funkciju koja će simulirati Accessove funkcionalnosti podijeljenog obrasca i učiniti da radi čak i unutar obrasca za navigaciju.

Podijeljeni obrazac vam omogućava da imate dva prikaza vaših zapisa u isto vrijeme – prikaz obrasca i pregled lista sa podacima. Omogućava vam pregled svih vaših zapisa dok vam u isto vrijeme daje mogućnost da ih pregledate i uređujete jedan po jedan.

Nažalost, podijeljeni obrasci neće raditi kada ih stavite u obrazac za navigaciju – nešto što me zbunjuje. Dobro je da postoji rješenje za ovo. Koristeći VBA, možete kreirati vlastitu funkciju koja će simulirati Accessov podijeljeni oblik. Samo slijedite dolje navedene korake.

Preuzeti sada

Ako želite što prije početi koristiti ovu funkciju, možete:

Odmah preuzmite uzorak baze podataka sa VBA kodovima

Inače, ako želite DIY, možete pročitati sadržaj ispod.

Koraci za kreiranje vlastitog podijeljenog obrasca u Accessu koristeći VBA

1. Otvorite svoj podijeljeni obrazac i ažurirajte zadani prikaz na jedan obrazac. Otvorite svoj podijeljeni obrazac i ažurirajte zadani prikaz na jedan obrazac

  1. Otvorite svoju podijeljenu formu.
  2. Dok ste u prikazu dizajna, odaberite obrazac.
  3. Idite na List sa svojstvima (ALT + Enter) > karticu Obrazac.
  4. Promijenite zadani prikaz u: Pojedinačni obrazac.
  5. Zatvorite obrazac i sačuvajte.

2. Kreirajte kopiju obrasca. Ovo će služiti kao prikaz lista sa podacima.

  1. Idite na okno za navigaciju.
  2. Desni klik na obrazac i odaberite Kopiraj.
  3. Desni klik na prazno područje u oknu za navigaciju i odaberite Zalijepi.
  4. Promijenite naziv obrasca. Dodajte ga sa “_Datasheet”.

Primjer:

  • Forma: Članovi
  • Kopija obrasca: Members_Datasheet

3. Otvorite obrazac lista sa podacima i ažurirajte njegova svojstva prikaza obrasca.

  1. Otvorite obrazac Datasheet.
  2. Dok ste u prikazu dizajna, odaberite obrazac.
  3. Idite na karticu sa svojstvima > Obrazac.
  4. Ažurirajte sljedeća svojstva:
    • Zadani prikaz: Datasheet
    • Dozvoli prikaz lista sa podacima: Da
    • Dozvoli prikaz obrasca: Ne
  5. Zatvorite obrazac i sačuvajte.

4. Ponovo otvorite glavni obrazac i dodajte obrazac lista sa podacima kao podobrazac.

  1. Otvorite glavni obrazac (onaj koji je kopiran) u prikazu dizajna.
  2. Dodajte podobrazac.
    • Idite na meni Dizajn. Odaberite Podobrazac/Podizvještaj.Odaberite Podobrazac
    • Kliknite na oblast Detalji obrasca.
    • Pojavit će se čarobnjak za podobrazac.Čarobnjak za podobrazac

1. Kliknite na 'Koristi postojeći obrazac'.

2. Odaberite obrazac sa podacima.

3. Kliknite na Next.Odaberite 'Define My Own'

4.Odaberite 'Define my own'.

5. Kliknite na Završi.

3. Obrazac sa podacima je sada podobrazac vašeg glavnog obrasca. Podesite ga na željenu veličinu i položaj.

5. Na kraju dodajte kod.

  1. Otvorite VBA Editor (ALT + F11).
  2. Odaberite glavni obrazac i zalijepite kod koji slijedi.Odaberite glavni obrazac i zalijepite 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. Nakon kopiranja koda, zamijenite sve instance riječi Members_Datasheet sa stvarnim nazivom vašeg obrasca sa podacima.
  2. Kada završite, izaberite obrazac sa podacima iz menija Projekt i kopirajte kod ispod.
'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. Ažurirajte vrijednosti za sljedeće varijable:
  • pk_tbox – odnosi se na tekstualni okvir koji sadrži primarni ključ.
  • pk_field – odnosi se na polje primarnog ključa izvora zapisa.

Svaki od njih ima zvjezdicu (*) u odjeljku za komentare tako da ih lako možete pronaći.

  1. Kada završite, sačuvajte promene (CTRL + S) i zatvorite VBA Editor.

Sada možete dodati svoj vlastiti podijeljeni obrazac unutar obrasca za navigaciju. Isprobaj!

Popravi oštećenu bazu podataka pristupa (.accdb)

Može postojati mnogo razloga zašto se Access baza podataka ošteti. Nažalost, nemamo kontrolu nad većinom njih. Ako vam se to dogodi, zapamtite da i dalje postoji način da je oporavite. DataNumen Inc. je kreirao softver koji radi accdb repair. Provjeri.

Uvod za autora:

Jayme Stack je stručnjak za oporavak podataka DataNumen, Inc., koji je svjetski lider u tehnologijama za oporavak podataka, uključujući sql oporavak i Excel softverski proizvodi za oporavak. Za više informacija posjetite www.datanumen.com

Podijeli sada:

Komentari su zatvoreni.