Jak rychle duplikovat záznamy ve vašem přístupu

Sdílej nyní:

Zjistěte, jak můžete vytvořit funkci VBA, která vám umožní kopírovat určitá data z předchozích záznamů pouhým kliknutím na tlačítko. Není třeba opakovaně psát stejné věci.

Už jste někdy měli zkušenost, kdy musíte v Accessu zadat nový záznam, který má přesně stejnou sadu hodnot s předchozím záznamem kromě jednoho pole? Může to být únavné, že? Tento výukový program vás naučí, jak můžete vytvořit funkci, která kliknutím na tlačítko zkopíruje určité hodnoty předchozího záznamu - což vám ušetří čas při přepisování. Postupujte podle níže uvedených kroků.

Stáhnout nyní

Pokud chcete tuto funkci začít používat co nejdříve, můžete:

Stáhněte si nyní ukázkovou databázi s kódy VBA

Jinak si můžete přečíst obsah níže, pokud si chcete udělat kutilství.

Kroky pro přidání funkce „Vytvořit kopii záznamu“ v Accessu

  1. Otevřete formulář v návrhovém zobrazení.Otevřete formulář v návrhovém zobrazení
  2. Přidejte příkazové tlačítko. Přeskočit průvodce příkazovým tlačítkem.
  3. Přidat komentář Při kliknutí událost na tlačítko.Přidejte na tlačítko událost kliknutím
  • V návrhovém zobrazení vyberte tlačítko.
  • Otevřít list vlastností (ALT + Enter)
  • Přejděte na kartu Události> Po kliknutí>…
  • Když Zvolte Builder objeví se nabídka, vyberte Tvůrce kódu.
  • Klepněte na tlačítko OK.
  • Tím se otevře editor VBA.
    1. Zkopírujte následující kód a upravte jej tak, aby vyhovoval vašim potřebám. Použijte komentáře jako průvodce.
    Private Sub Command24_Click()
        Dim currentID As Long
     
        'TO DO: change all instances of 'BookID' with the actual name of your table's ID or primary key
     
        If IsNull(BookID) Then
            MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
            Exit Sub
        End If
     
        currentID = BookID
        DoCmd.GoToRecord record:=acNewRec
     
        'TO DO: set the fields to be copied (those that most likely will have the same values)
        'FORMAT: fieldName = Dlookup("fieldname", "tableName", "primaryKeyField=" & currentID)
     
         Author = DLookup("Author", "Books", "BookID=" & currentID)
         Country = DLookup("Country", "Books", "BookID=" & currentID)
         Language = DLookup("Language", "Books", "BookID=" & currentID)
         Genre = DLookup("Genre", "Books", "BookID=" & currentID)
         Publisher = DLookup("Publisher", "Books", "BookID=" & currentID)
     
         Title.SetFocus ‘TO DO: change 'Title' with name of field that is going to be edited by the user
     
    End Sub
  1. Nyní otestujte kód, zda funguje.

Vysvětlení kódu

Výše uvedený kód byl použit pro databázi knihkupectví. Kvůli sérii knih existují případy, kdy jsou všechny podrobnosti knihy (např. Autor, země, jazyk atd.) Stejné, kromě jednoho pole - názvu. Tedy potřeba kódu.

Níže uvedený seznam ukazuje průběh programu.

  1. Zkontrolujte, zda uživatel vybral záznam ke kopírování. Pokud uživatel klikne na tlačítko hned po kliknutí na tlačítko Přidat nový záznam, zobrazí se chybová zpráva - ID bude neplatné.
If IsNull(BookID) Then
     MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
     Exit Sub
End If
  1. Získejte ID nebo primární klíč aktuálního záznamu a přiřaďte jej jako hodnotu pro aktuální ID Toto bude použito jako základ pro hodnoty, které mají být zkopírovány.
currentID = BookID
  1. Přidat nový záznam.
DoCmd.GoToRecord record:=acNewRec
  1. Nastavit hodnoty určitých polí na základě aktuální ID Zde se zkopírují data z vybraného záznamu.
'FORMAT: fieldName = Dlookup("fieldname", "tableName", "primaryKeyField=" & currentID)

Author = DLookup("Author", "Books", "BookID=" & currentID)
Country = DLookup("Country", "Books", "BookID=" & currentID)
Language = DLookup("Language", "Books", "BookID=" & currentID)
Genre = DLookup("Genre", "Books", "BookID=" & currentID)
Publisher = DLookup("Publisher", "Books", "BookID=" & currentID)
  1. Nastaví fokus na pole, které uživatel s největší pravděpodobností upraví jako první. To vylepší uživatelský zážitek, protože eliminuje nutnost ručního výběru pole, které je ještě třeba aktualizovat.
 Title.SetFocus      ‘TO DO: change 'Title' with name of field that is going to be edited by the user

Opravte poškozenou databázi

Pokud se z nešťastného důvodu jednoho dne probudíte a nebudete moci otevřít databázi, můžete vyzkoušet nástroje třetích stran, které provádějí Přístup k opravě. Dělá to zázraky.

Úvod autora:

Jayme Stack je expert na obnovu dat DataNumen, Inc., která je světovým lídrem v oblasti technologií pro obnovu dat, včetně zotavení sql a excelové softwarové produkty pro obnovu. Pro více informací navštivte www.datanumen.com

Sdílej nyní:

Komentáře jsou uzavřeny.