Kaip sukurti savo padalintą formą „Access“ naudojant VBA

Bendrinti dabar:

„Access“ padalintos formos yra labai naudingos. Deja, jie neveikia, kai įdedate juos į naršymo formą. Sužinokite, kaip galite sukurti VBA funkciją, kuri imituos „Access“ padalintos formos funkcijas ir leis jai veikti net naršymo formoje.

Išskaidyta forma leidžia vienu metu turėti du įrašų rodinius – formos rodinį ir duomenų lapo rodinį. Tai leidžia jums peržiūrėti visus savo įrašus ir tuo pat metu suteikti galimybę peržiūrėti ir redaguoti juos po vieną.

Deja, suskaidytos formos neveiks, kai jas įdėsite į naršymo formą – tai mane glumina. Gerai, kad yra išeitis. Naudodami VBA galite sukurti savo funkciją, kuri imituos „Access“ padalintą formą. Tiesiog atlikite toliau nurodytus veiksmus.

Atsisiųsti dabar

Jei norite starJei norite kuo greičiau pasinaudoti šia funkcija, galite:

Atsisiųskite pavyzdinę duomenų bazę su VBA kodais dabar

Kitu atveju, jei norite pasidaryk pats, galite perskaityti toliau pateiktą turinį.

Veiksmai, kaip sukurti savo padalintą formą programoje „Access“ naudojant VBA

1. Atidarykite išskaidytą formą ir atnaujinkite numatytąjį rodinį į vieną formą. Atidarykite padalintą formą ir atnaujinkite numatytąjį rodinį į vieną formą

  1. Atidarykite padalintą formą.
  2. Būdami dizaino rodinyje pasirinkite formą.
  3. Eikite į ypatybių lapą (ALT + Enter) > skirtuką Forma.
  4. Pakeiskite numatytąjį rodinį į: Viena forma.
  5. Uždarykite formą ir išsaugokite.

2. Sukurkite formos kopiją. Tai bus duomenų lapo rodinys.

  1. Eikite į naršymo sritį.
  2. Dešiniuoju pelės mygtuku spustelėkite formą ir pasirinkite Kopijuoti.
  3. Dešiniuoju pelės mygtuku spustelėkite tuščią sritį naršymo srityje ir pasirinkite Įklijuoti.
  4. Pakeiskite formos pavadinimą. Pridėkite jį su „_Datasheet“.

Pavyzdys:

  • Forma: nariai
  • Formos kopija: Members_Datasheet

3. Atidarykite duomenų lapo formą ir atnaujinkite jos formos rodinio ypatybes.

  1. Atidarykite duomenų lapo formą.
  2. Būdami dizaino rodinyje pasirinkite formą.
  3. Eikite į ypatybių lapą > skirtuką Forma.
  4. Atnaujinkite šias ypatybes:
    • Numatytasis rodinys: Duomenų lapas
    • Leisti duomenų lapo rodinį: Taip
    • Leisti peržiūrėti formą: Ne
  5. Uždarykite formą ir išsaugokite.

4. Iš naujo atidarykite pagrindinę formą ir pridėkite duomenų lapo formą kaip antrinę formą.

  1. Atidarykite pagrindinę formą (tą, kuri buvo nukopijuota) dizaino rodinyje.
  2. Pridėti antrinę formą.
    • Eikite į dizaino meniu. Pasirinkite antrinę formą / papildomą ataskaitą.Pasirinkite antrinę formą
    • Spustelėkite formos Išsamios informacijos sritį.
    • Pasirodys antrinės formos vedlys.Subformos vedlys

1. Spustelėkite „Naudoti esamą formą“.

2. Pasirinkite duomenų lapo formą.

3.Spustelėkite Kitas.Pasirinkite „Apibrėžti savo“

4. Pasirinkite „Apibrėžti savo“.

5. Spustelėkite Baigti.

3. Duomenų lapo forma dabar yra pagrindinės formos antrinė forma. Sureguliuokite jį pagal norimą dydį ir padėtį.

5. Galiausiai pridėkite kodą.

  1. Atidarykite VBA redaktorių (ALT + F11).
  2. Pasirinkite pagrindinę formą ir įklijuokite toliau esantį kodą.Pasirinkite pagrindinę formą ir įklijuokite 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. Nukopijavę kodą, pakeiskite visus žodžio atvejus Nariai_duomenų lapas su tikruoju duomenų lapo formos pavadinimu.
  2. Baigę pasirinkite savo duomenų lapo formą iš projekto meniu ir nukopijuokite toliau esantį kodą.
'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. Atnaujinkite šių kintamųjų reikšmes:
  • pk_tbox – nurodo teksto laukelį, kuriame yra pirminis raktas.
  • pk_field – nurodo įrašo šaltinio pirminio rakto lauką.

Kiekvienas jų komentarų skiltyje yra paženklintas žvaigždute (*), kad galėtumėte lengvai juos rasti.

  1. Baigę išsaugokite pakeitimus (CTRL + S) ir uždarykite VBA redaktorių.

Dabar naršymo formoje galite pridėti savo išskaidytą formą. Išbandyk!

Pataisyti pažeistą prieigos duomenų bazę (.accdb)

Priežasčių, kodėl „Access“ duomenų bazė sugenda, gali būti daug. Deja, mes nekontroliuojame most jų. Jei taip atsitiks jums, atminkite, kad vis dar yra būdas tai susigrąžinti. DataNumen Inc. sukūrė programinę įrangą, kuri atlieka accdb remontas. Pasižiūrėk.

Autoriaus įvadas:

Jayme'as Stackas yra duomenų atkūrimo ekspertas DataNumen, Inc., kuri yra pasaulyje duomenų atkūrimo technologijų lyderė, įskaitant sql atkūrimas ir Excel atkūrimo programinės įrangos produktai. Norėdami gauti daugiau informacijos, apsilankykite WWW.datanumen.com

Bendrinti dabar:

Komentarai yra uždaryti.