Cum să vă creați propriul formular împărțit în Access folosind VBA

Distribuie acum:

Formularele împărțite în Access sunt extrem de utile. Din păcate, acestea nu funcționează când le plasați într-un formular de navigare. Aflați cum puteți crea o funcție VBA care va simula funcționalitățile de formulare separate ale Access și o va face să funcționeze chiar și în interiorul unui formular de navigare.

Formularul împărțit vă permite să aveți două vizualizări ale înregistrărilor dvs. în același timp - vizualizare formular și vizualizare foaie de date. Vă permite să aveți o privire de ansamblu asupra tuturor înregistrărilor dvs., oferindu-vă, în același timp, opțiunea de a le vizualiza și edita una câte una.

Din păcate, formularele divizate nu vor funcționa atunci când le introduceți într-un formular de navigare – ceva care mă deranjează. Bine că există o soluție pentru asta. Folosind VBA, vă puteți crea propria funcție care va simula forma divizată a Access. Doar urmați pașii de mai jos.

Descarcă acum

Dacă doriți să începeți să utilizați funcția cât mai curând posibil, puteți:

Descărcați acum baza de date exemplu cu coduri VBA

În rest, dacă vrei să faci DIY, poți citi conținutul de mai jos.

Pași pentru a crea propriul formular de divizare în Access folosind VBA

1. Deschideți formularul divizat și actualizați vizualizarea implicită la Formular unic. Deschideți formularul divizat și actualizați vizualizarea implicită la un singur formular

  1. Deschideți formularul divizat.
  2. În vizualizarea design, selectați formularul.
  3. Accesați Foaia de proprietate (ALT + Enter) > fila Formular.
  4. Schimbați vizualizarea implicită la: Formular unic.
  5. Închideți formularul și salvați.

2. Creați o copie a formularului. Aceasta va servi ca vizualizare a foii de date.

  1. Accesați panoul de navigare.
  2. Faceți clic dreapta pe formular și selectați Copiere.
  3. Faceți clic dreapta pe o zonă goală din panoul de navigare și selectați Lipire.
  4. Schimbați numele formularului. Adăugați-o cu „_Datasheet”.

Exemplu:

  • Forma: Membri
  • Copie a formularului: Members_Datasheet

3. Deschideți Formularul Datasheet și actualizați proprietățile de vizualizare a formularului.

  1. Deschideți formularul Fișă de date.
  2. În vizualizarea design, selectați formularul.
  3. Accesați Fișa de proprietate > fila Formular.
  4. Actualizați următoarele proprietăți:
    • Vedere standard: Foaie de date
    • Permiteți vizualizarea foii de date: Da
    • Permite vizualizarea formularului: Nu
  5. Închideți formularul și salvați.

4. Deschideți din nou formularul principal și adăugați formularul de foaie de date ca subformular.

  1. Deschideți formularul principal (cel care a fost copiat) în vizualizarea design.
  2. Adăugați un subformular.
    • Accesați meniul Design. Selectați subformular/subraport.Selectați Subformular
    • Faceți clic pe zona Detalii a formularului.
    • Va apărea SubForm Wizard.Expertul SubForm

1. Faceți clic pe „Utilizați un formular existent”.

2.Selectați formularul de fișă de date.

3. Faceți clic pe Următorul.Selectați „Definește-l pe al meu”

4.Selectați „Definește-mi propriul”.

5. Faceți clic pe Terminare.

3. Formularul de fișă de date este acum un subformular al formularului principal. Ajustați-o la dimensiunea și poziția dorite.

5. În cele din urmă, adăugați codul.

  1. Deschideți Editorul VBA (ALT + F11).
  2. Selectați formularul principal și inserați codul care urmează.Selectați formularul principal și inserați codul
'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. După copierea codului, înlocuiți toate aparițiile cuvântului Members_Datasheet cu numele real al formularului dumneavoastră de fișă de date.
  2. Când ați terminat, selectați Formularul de fișă de date din meniul Proiect și copiați codul de mai jos.
'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. Actualizați valorile pentru următoarele variabile:
  • pk_tbox – se referă la caseta de text care conține cheia primară.
  • pk_field – se referă la câmpul cheie primară al sursei de înregistrare.

Fiecare are un asterisc (*) în secțiunea de comentarii, astfel încât să le puteți găsi cu ușurință.

  1. Când ați terminat, salvați modificările (CTRL + S) și închideți Editorul VBA.

Acum, puteți adăuga propriul formular împărțit în formularul de navigare. Încearcă!

Remediați baza de date de acces deteriorată (.accdb)

Pot exista o mulțime de motive pentru care o bază de date Access devine coruptă. Din păcate, nu avem control asupra majorității acestora. Dacă vi se întâmplă, amintiți-vă că există încă o modalitate de a o recupera. DataNumen Inc. a creat un software care funcționează reparare accdb. Verifică.

Introducerea autorului:

Jayme Stack este un expert în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv recuperare sql și produse software de recuperare Excel. Pentru mai multe informații vizitați www.datanumen.com

Distribuie acum:

Comentariile sunt închise.