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.
- În vizualizarea design, selectați formularul.
- Accesați Foaia de proprietate (ALT + Enter) > fila Formular.
- Schimbați vizualizarea implicită la: Formular unic.
- Închideți formularul și salvați.
2. Creați o copie a formularului. Aceasta va servi ca vizualizare a foii de date.
- Accesați panoul de navigare.
- Faceți clic dreapta pe formular și selectați Copiere.
- Faceți clic dreapta pe o zonă goală din panoul de navigare și selectați Lipire.
- 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.
- Deschideți formularul Fișă de date.
- În vizualizarea design, selectați formularul.
- Accesați Fișa de proprietate > fila Formular.
- Actualizați următoarele proprietăți:
- Vedere standard: Foaie de date
- Permiteți vizualizarea foii de date: Da
- Permite vizualizarea formularului: Nu
- Închideți formularul și salvați.
4. Deschideți din nou formularul principal și adăugați formularul de foaie de date ca subformular.
- Deschideți formularul principal (cel care a fost copiat) în vizualizarea design.
- Adăugați un subformular.
- Accesați meniul Design. Selectați subformular/subraport.
- Faceți clic pe zona Detalii a formularului.
- Va apărea SubForm Wizard.
- Accesați meniul Design. Selectați subformular/subraport.
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.
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.
- Deschideți Editorul VBA (ALT + F11).
- Selectați formularul principal și inserați codul care urmează.
'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
- După copierea codului, înlocuiți toate aparițiile cuvântului Members_Datasheet cu numele real al formularului dumneavoastră de fișă de date.
- 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
- 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ță.
- 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



