了解如何創建VBA函數,該函數允許您只需單擊一個按鈕即可複制先前記錄中的某些數據。 無需重複鍵入相同的內容。
您是否曾經有過需要在Access中輸入一個新記錄的經驗,該記錄與一個以前的記錄具有完全相同的一組值(除了一個字段)? 可能很累吧? 本教程將教您如何創建一個函數,單擊按鈕即可複制先前記錄的某些值,從而節省了重新鍵入的時間。 請按照以下步驟操作。
立即下載
如果您想盡快開始使用此功能,您可以:
否則,如果要DIY,可以閱讀以下內容。
在Access中添加“創建記錄副本”功能的步驟
- 在設計視圖中打開您的窗體。

- 添加命令按鈕。 跳過命令按鈕嚮導。
- 添加一個 點擊時 按鈕的事件。
- 在設計視圖中,選擇按鈕。
- 打開屬性表(ALT + Enter)
- 轉到事件選項卡>單擊時>…
- 當 選擇建造者 彈出菜單,選擇Code Builder。
- 單擊“確定”。
- 這將打開VBA編輯器。
-
- 複製以下代碼並對其進行修改以適合您的需求。 使用註釋作為指導。
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 - 現在測試代碼是否有效。
代碼說明
上面的代碼用於書店的數據庫。 由於書籍系列的原因,在某些情況下,除一個字段(標題)外,所有書籍的詳細信息(例如作者,國家/地區,語言等)都是相同的。 因此,需要代碼。
下面的列表顯示了程序流程。
- 檢查用戶是否已選擇要復制的記錄。 如果用戶在單擊“添加新記錄”按鈕後立即單擊該按鈕,則會彈出一條錯誤消息,使ID為空。
If IsNull(BookID) Then MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation Exit Sub End If
- 獲取當前記錄的ID或主鍵,並將其分配為 當前ID 這將用作要復制的值的基礎。
currentID = BookID
- 添加新記錄。
DoCmd.GoToRecord record:=acNewRec
- 根據 當前ID 這是從所選記錄中復制數據的位置。
'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
修復損壞的數據庫
如果由於不幸的原因,您有一天無法起床而醒來,則可以嘗試使用第三方工具來執行 通道維修。 它創造奇蹟。
作者簡介:
Jayme Stack是 DataNumen,Inc.是數據恢復技術的全球領導者,包括 sql恢復 和excel恢復軟件產品。 欲了解更多信息,請訪問 萬維網。datanumen.COM
