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
- Otevřete formulář v návrhovém zobrazení.

- Přidejte příkazové tlačítko. Přeskočit průvodce příkazovým tlačítkem.
- Přidat komentář Při kliknutí událost na tlačítko.
- 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.
-
- 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 - 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.
- 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
- 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
- Přidat nový záznam.
DoCmd.GoToRecord record:=acNewRec
- 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)
- 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
