Hur du skapar ditt eget delade formulär i åtkomst med VBA

Delade formulär i Access är extremt användbara. Tyvärr fungerar de inte när du placerar dem i ett navigeringsformulär. Lär dig hur du kan skapa en VBA-funktion som simulerar Access split-funktionaliteter och får den att fungera även i ett navigeringsformulär.

Delat formulär gör att du kan ha två vyer av dina poster samtidigt - formulärvy och databladvy. Det låter dig ha en översikt över alla dina poster samtidigt som du ger dig möjlighet att visa och redigera dem en efter en.

Tyvärr fungerar delade formulär inte när du placerar dem i ett navigeringsformulär - något som förvirrar mig. Bra att det finns en lösning för detta. Med hjälp av VBA kan du skapa din egen funktion som simulerar Access delad form. Följ bara stegen nedan.

Hämta hem nu

Om du vill börja använda funktionen så snart som möjligt kan du:

Ladda ner provdatabasen med VBA-koder nu

Annars kan du läsa innehållet nedan om du vill göra det själv.

Steg för att skapa ditt eget delade formulär i åtkomst med VBA

1. Öppna ditt delade formulär och uppdatera standardvyn till enstaka formulär. Öppna ditt delade formulär och uppdatera standardvyn till enstaka formulär

  1. Öppna ditt delade formulär.
  2. Välj formuläret i designvyn.
  3. Gå till fastighetsbladet (ALT + Enter)> fliken Form.
  4. Ändra standardvyn till: Enkelform.
  5. Stäng formuläret och spara.

2. Skapa en kopia av formuläret. Detta fungerar som dataarkvy.

  1. Gå till navigeringsfönstret.
  2. Högerklicka på ditt formulär och välj Kopiera.
  3. Högerklicka på ett tomt område i navigeringsfönstret och välj Klistra in.
  4. Ändra formulärnamnet. Lägg till det med “_Datasheet”.

Exempel:

  • Form: Medlemmar
  • Kopia av formuläret: Members_Datasheet

3. Öppna databladformuläret och uppdatera egenskaperna för formulärvyn.

  1. Öppna databladformuläret.
  2. Välj formuläret i designvyn.
  3. Gå till Fastighetsbladet> Fliken Formulär.
  4. Uppdatera följande egenskaper:
    • Standardläget: Datablad
    • Tillåt visning av datablad: Ja
    • Tillåt formulärvy: Nej
  5. Stäng formuläret och spara.

4. Öppna huvudformuläret igen och lägg till databladformuläret som underformulär.

  1. Öppna huvudformuläret (det som kopierades) i designvyn.
  2. Lägg till ett underformulär.
    • Gå till Design-menyn. Välj Underformulär / Delrapport.Välj Subform
    • Klicka på detaljområdet i formuläret.
    • SubForm-guiden visas.SubForm-guiden

1. Klicka på "Använd ett befintligt formulär".

2.Välj ditt databladformulär.

3.Klicka på Nästa.Välj "Definiera min egen"

4.Välj 'Definiera mina egna'.

5.Klicka på Slutför.

3. Databladformuläret är nu en delformulär för ditt huvudformulär. Justera den till önskad storlek och position.

5. Lägg slutligen till koden.

  1. Öppna VBA Editor (ALT + F11).
  2. Välj huvudformuläret och klistra in koden som följer.Välj huvudformuläret och klistra in koden
'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. När du har kopierat koden, byt ut alla instanser av ordet Members_Datablad med det faktiska namnet på ditt databladformulär.
  2. När du är klar väljer du ditt databladformulär från projektmenyn och kopierar koden nedan.
'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. Uppdatera värdena för följande variabler:
  • pk_tbox - hänvisar till textrutan som innehåller den primära nyckeln.
  • pk_field - refererar till postkällans primära nyckelfält.

De har var och en en asterisk (*) i kommentarsektionen så att du enkelt kan hitta dem.

  1. När du är klar sparar du ändringarna (CTRL + S) och stänger VBA Editor.

Nu kan du lägga till din egen delade form i navigeringsformuläret. Testa!

Åtgärda skadad åtkomstdatabas (.accdb)

Det kan finnas många anledningar till att en Access-databas blir skadad. Tyvärr har vi inte kontroll över de flesta av dem. Om det händer dig, kom ihåg att det fortfarande finns ett sätt att återställa den. DataNumen Inc. har skapat en programvara som fungerar accdb reparation. Kolla in det.

Författarintroduktion:

Jayme Stack är en dataåterställningsexpert i DataNumen, Inc., som är världsledande inom teknik för återställning av data, inklusive SQL-återhämtning och Excel-programvara för återställningsprogramvara. För mer information besök www.datanumen.com

Kommentarer är stängda.