
Access2000のDAOで下記のようなコードで複写元テーブルから複写先テーブルにデータを追加するとします。
Set Rs1 = Db.OpenRecordset("複写元", dbOpenTable)
Set Rs2 = Db.OpenRecordset("複写先", dbOpenTable)
Do Until Rs1.EOF
Rs2.AddNew
Rs2!FL1 = Rs1!名前
Rs2!FL2= Rs1!性別
Rs2!FL3= Rs1!郵便番号
Rs2!FL4= Rs1!住所
・
・
Rs2! FL50= Rs1! 50番目
Rs2.Update
Rs1.MoveNext
Loop
複写元のフィールドが50フィールドもあると、いちいちRs1!名前とかRs1!性別とか記述するのが大変ですし、ものすごく長いコードになります。そこで、配列にしてやったらどうだろうかとこんなことをしてみましたがだめでした。
Dim I
Dim FieldsName
FieldsName=Array("名前","性別",・・・"50番目")
・
・
Do Until Rs1.EOF
Rs2.AddNew
For I=0 To 49
Rs2!フィールド(I) = Rs1!FieldsName(I)
Next
Rs2.Update
Rs1.MoveNext
Loop
じゃあTebleDifのTd.Fields().Nameを使って・・・・やっぱり失敗しました。
For I=0 To 49
Rs2!フィールド(I) = Rs1!Td.Fields(I).Name
Next
やりたいこと分かっていただけますでしょうか?要するにフィールド名を配列の様なもので格納しておいて、レコードの追加時に50回ループさせてRS2のフィールドにいれたいのです。何か良い方法は無いでしょうか。
No.3ベストアンサー
- 回答日時:
#2です。
一応自分なりにコードを作ってみました。
Dim I As Integer, Db As Database, Rs1 As Recordset, Rs2 As Recordset
Set Db = CurrentDb
Set Rs1 = Db.OpenRecordset("複写元")
Set Rs2 = Db.OpenRecordset("複写先")
Do Until Rs1.EOF
Rs2.AddNew
For I = 0 To 49
Rs2.Fields(I).Value = Rs1.Fields(I).Value
Next
Rs2.Update
Rs1.MoveNext
Loop
Rs2.Close
Rs1.Close
Set Rs2 = Nothing
Set Rs1 = Nothing
Set Db = Nothing
でいいと思います。ただし、前提条件として、テーブル「複写先」を作っていないとできませんが。
ご参考までに。
No.2
- 回答日時:
こんにちわ。
Dim I As Integr
Set Rs1 = Db.OpenRecordset("複写元")
Set Rs2 = Db.OpenRecordset("複写先")
For I=0 To 49
Rs2.Fields(I).Value= Rs1.Fields(I).Value
Next
でいいはずです。ちなみに、Dbは、
Set Db = CurrentDb
ってしてます(・・?
No.1
- 回答日時:
こんにちは。
maruru01です。Rs2.Fields(FieldsName(I)) = Rs1.Fields(FieldsName(I))
でどうですか。
maruru01さん、いつもお世話になります。
やってみましたが、エラーになりFieldsNameが青色に、プロシージャ名の行が黄色になり、SubまたはFunctionが無いとのたまいよります。多分私のコーディングのどこかがおかしいのでしょう。#2の答えでうまく動きましたので、とりあえずそちらでやります。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- 工学 エミッタ接地増幅回路 電流利得Ai=30倍、低生遮断周波数fL=300Hz、負荷抵抗RL=600Ωに 2 2023/04/19 09:25
- 国産車 ホンダフィット2代GE6に乗っていますが RSというのはスポーティーですか 1 2023/06/01 15:09
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
このQ&Aを見た人はこんなQ&Aも見ています
-
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
accessのVBAで変数名でフィールド指定は?
その他(データベース)
-
-
4
アクセス フィールド名に変数を付け加えて参照する
その他(データベース)
-
5
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
6
【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには
Access(アクセス)
-
7
VBAで変数内に保持された二次配列データをテーブルに格納
Access(アクセス)
-
8
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
9
Accessでテーブル名やクエリ名一覧の抜き出し
Access(アクセス)
-
10
アクセスVBAのMe!と[ ]
Access(アクセス)
-
11
Access サブフォームでの選択行の取得
その他(データベース)
-
12
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
13
Access2010 「演算子がありません」エラー
その他(データベース)
-
14
どこにもフォーカスを当てたくない
Access(アクセス)
-
15
実行時エラー 3265「要求された名前、または序数
Visual Basic(VBA)
-
16
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
-
17
DAOのrs.Filter =の使い方
PowerPoint(パワーポイント)
-
18
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
19
Access]2つのテーブルを比較してフィールドの一部が一致したデータを抽出
Access(アクセス)
-
20
ACCESS VBAでテーブル内の特定のフィールドを削除 .Fields.Delete (*")"
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Notesのフォームを動的に・・・
-
AccessのDAOでフィールド名を配...
-
Access 2010で実行時エラー3061
-
C# return文の代入につてい
-
BASICでFIELDやPUTやGETの練習...
-
ACCESSデータベースにV...
-
2つ目のレコードの値を取得す...
-
クリスタルレポート(8.5)の書式...
-
アクセス ADO Null以外のレコ...
-
accessでフィールド追加のあと...
-
AS/400の論理ファイルで年度だ...
-
スプレッドシートのnull表示
-
日付と文字列を条件としてDLook...
-
ADOX フィールドのRequiredプ...
-
rs.filterで、likeの検索ができ...
-
2次元のdictionary
-
VB.NETのOleDbCommandにて文字...
-
ACCESSのフィールドデータの照...
-
ADOでNullフィールドの抽出
-
ExcelVBAからAccessMDB内のテー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
accessでフィールド追加のあと...
-
INT64対応のprintf系関数はあり...
-
Accessのフィールド名に半角括...
-
DataTableに特定のフィールドが...
-
2つ目のレコードの値を取得す...
-
テーブルのデータ型の変更がで...
-
Access 2010で実行時エラー3061
-
クリスタルレポート(8.5)の書式...
-
AccessのDAOでフィールド名を配...
-
ADOでNullフィールドの抽出
-
ACCESSデータベースにV...
-
クリスタルレポートで困ってい...
-
クリスタルレポートで文字列の...
-
Access クエリで変数を参照する...
-
2次元のdictionary
-
SQLでフィールド番号を指定する...
-
AccessVBAで他テーブルのデータ...
-
Access VBA 添付型フィールド
-
ACCESSで日別集計をする場合
-
アクセス ADO Null以外のレコ...
おすすめ情報