如何在您的訪問中快速復制記錄

立即分享:

了解如何創建VBA函數,該函數允許您只需單擊一個按鈕即可複制先前記錄中的某些數據。 無需重複鍵入相同的內容。

您是否曾經有過需要在Access中輸入一個新記錄的經驗,該記錄與一個以前的記錄具有完全相同的一組值(除了一個字段)? 可能很累吧? 本教程將教您如何創建一個函數,單擊按鈕即可複制先前記錄的某些值,從而節省了重新鍵入的時間。 請按照以下步驟操作。

立即下載

如果您想盡快開始使用此功能,您可以:

立即下載帶有VBA代碼的示例數據庫

否則,如果要DIY,可以閱讀以下內容。

在Access中添加“創建記錄副本”功能的步驟

  1. 在設計視圖中打開您的窗體。在設計視圖中打開您的表單
  2. 添加命令按鈕。 跳過命令按鈕嚮導。
  3. 添加一個 點擊時 按鈕的事件。向按鈕添加點擊事件
  • 在設計視圖中,選擇按鈕。
  • 打開屬性表(ALT + Enter)
  • 轉到事件選項卡>單擊時>…
  • 當 選擇建造者 彈出菜單,選擇Code Builder。
  • 單擊“確定”。
  • 這將打開VBA編輯器。
    1. 複製以下代碼並對其進行修改以適合您的需求。 使用註釋作為指導。
    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. 現在測試代碼是否有效。

代碼說明

上面的代碼用於書店的數據庫。 由於書籍系列的原因,在某些情況下,除一個字段(標題)外,所有書籍的詳細信息(例如作者,國家/地區,語言等)都​​是相同的。 因此,需要代碼。

下面的列表顯示了程序流程。

  1. 檢查用戶是否已選擇要復制的記錄。 如果用戶在單擊“添加新記錄”按鈕後立即單擊該按鈕,則會彈出一條錯誤消息,使ID為空。
If IsNull(BookID) Then
     MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
     Exit Sub
End If
  1. 獲取當前記錄的ID或主鍵,並將其分配為 當前ID 這將用作要復制的值的基礎。
currentID = BookID
  1. 添加新記錄。
DoCmd.GoToRecord record:=acNewRec
  1. 根據 當前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)
  1. 將焦點設定在使用者最有可能首先編輯的欄位上。這可以提升使用者體驗,因為它免去了使用者手動選擇待更新欄位的步驟。
 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

立即分享:

評論被關閉。