MS Access

Accessでレコードコピー(オートナンバー除く)の決定版のコード!

投稿日:

Accessで、レコードのオートナンバーを除くフィールドを1行、複製(コピー)したくって、Google検索したのだけどなかなか出てこず、しかしやっと見つけた、黄金のソース・・・・。

[VBA] ADOの Clone と AddNew – その他(プログラミング) 解決済み| 【OKWAVE】

やりたかったのは、単純に、レコードのコピー。
フォームのボタンをクリックすると、コピーが作られ、Requeryすると、一番上に表示される、そんな感じの処理。

最初は、

DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.RunCommand acCmdPasteAppend
Me.Requery

のようなコードでフォーム上のデータをコピペしていたのだが、非連結の検索用テキストボックスの扱いがうまくいかず、ペースト時にエラーになる。
非連結だからコピペしなくてもよいのだがなぜかコピー対象にされる(自分の環境の場合SQLServer上のテーブルのみで発生、mdbテーブルだと発生せず)。
そこはよくわからないけどAccessの仕様だろう。

レコードのクローンを用意して、そこからフィールドごとにループしてレコードを作ればよいかなとは想像してみたのだが、具体的にはどう作ればよいのか、わからず。
そんな中で、上記のコードを見つけた時の喜びやいかに。

にしても、解答者の、30246kiku さん、神だ、天使だ! 感動だ。

-MS Access

執筆者:

関連記事

no image

Accessのフォームを開く際、acHiddenとVisibleの組み合わせで高速化

Accessのフォームを開く際、acHiddenとVisibleの組み合わせで高速化 Accessのとあるシステムで、 フォームを開いてフィルタをセットして実行してさらに並べ替える・・・という処理をし …

no image

Accessでファイル選択ダイアログを開いて選択したExcelファイルの先頭シートを読み込み番号が一致するデータの配送日を本日日付で消し込む処理

ファイル選択ダイアログを開いて、選択したExcelファイルの先頭シートを読み込み、番号が一致するデータの配送日を本日日付で消し込む処理(楽天販売DB.mdb) ダイアログを表示する際には、事前にMic …

no image

フォーム テンプレート

Accessのフォームを作るときに、「フォーム テンプレート」を使う方法があること、知っている人は多いのかな? 既存のフォームにあるテキストボックスの色やサイズなどの設定(プロパティ)を引き継いで、新 …

no image

Accessでのテーブルのエクスポート定義

Access2007のテーブルをcsv保存したいのだが、結果ファイルにダブルコーテーションを付けたくない・・・。 ダブルクォーテーションつきであれば、例えば、 DoCmd.TransferText a …

no image

AccessとBASP21で正規表現を使ってメール文から必要事項を取り出すサンプル

Accessで正規表現を使いたかったのですが、ネット上にはサンプルが少なく、苦労したので、とりあえずツギハギで作った私のコードを披露したいと思います。 Accessで正規表現を使うには、BASP21を …