アクセスでレコードをすばやく複製する方法

今すぐ共有:

ボタンをクリックするだけで以前のレコードから特定のデータをコピーできるVBA関数を作成する方法を学びます。 同じものを繰り返し入力する必要はありません。

XNUMXつのフィールドを除いて、以前のレコードとまったく同じ値のセットを持つ新しいレコードをAccessに入力する必要があるという経験をしたことがありますか? 面倒かもしれませんね。 このチュートリアルでは、ボタンをクリックするだけで前のレコードの特定の値をコピーできる関数を作成する方法を説明します。これにより、再入力の時間を節約できます。 以下の手順に従ってください。

ダウンロード

あなたがしたい場合tarできるだけ早く機能を使用するには、次のことができます。

今すぐVBAコードを含むサンプルデータベースをダウンロードする

それ以外の場合、DIYをしたい場合は、以下の内容を読むことができます。

Accessに「レコードコピーの作成」機能を追加する手順

  1. フォームをデザインビューで開きます。デザインビューでフォームを開く
  2. コマンドボタンを追加します。 コマンドボタンウィザードをスキップします。
  3. 追加する クリック時 ボタンへのイベント。ボタンにオンクリックイベントを追加する
  • デザインビューで、ボタンを選択します。
  • プロパティシートを開きます(ALT + Enter)
  • [イベント]タブに移動>クリック時>…
  • Builderを選択します メニューがポップアップし、コードビルダーを選択します。
  • [OK]をクリックします。
  • これにより、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. 次に、コードが機能するかどうかをテストします。

コードの説明

上記のコードは、書店のデータベースに使用されました。 書籍シリーズのため、XNUMXつのフィールド(タイトル)を除いて、すべての書籍の詳細(著者、国、言語など)が同じである場合があります。 したがって、コードの必要性。

以下のリストは、プログラムフローを示しています。

  1. ユーザーがコピーするレコードを選択したかどうかを確認します。 ユーザーが[新しいレコードの追加]ボタンをクリックした直後にボタンをクリックすると、エラーメッセージがポップアップ表示され、IDがnullになります。
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. mであるフィールドにフォーカスを設定しますost ユーザーが最初に編集する可能性があります。 これにより、ユーザーがまだ更新する必要のあるフィールドを手動で選択する必要がなくなるため、ユーザーエクスペリエンスが向上します。
 Title.SetFocus      ‘TO DO: change 'Title' with name of field that is going to be edited by the user

破損したデータベースを修復する

不幸な理由で、データベースを開くことができない日を目覚めさせた場合は、実行するサードパーティのツールを試すことができます アクセス修復。 それは不思議に働きます。

著者紹介:

Jayme Stackは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 SQLの回復 と優れた回復ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

今すぐ共有:

コメントは締め切りました。