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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あるあるbotに投稿したけど採用されなかったあるある募集
あるあるbotに投稿したけど採用されなかったあるあるをこちらに投稿してください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
-
4
VBAで変数内に保持された二次配列データをテーブルに格納
Access(アクセス)
-
5
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
6
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
7
accessのVBAで変数名でフィールド指定は?
その他(データベース)
-
8
[性能改善]AccessのDBに大量のデータをUpdateする場合の性能対策について
その他(データベース)
-
9
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
-
10
ACCESSのBookmarkプロパティの使い方
その他(データベース)
-
11
access vbaにてテンポラリーテーブルが作りたいです。
Access(アクセス)
-
12
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
13
Access テキスト型に対する指定桁での0埋め方法
その他(データベース)
-
14
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
15
Accessのクエリでデータの入力ができません
Access(アクセス)
-
16
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
17
Access サブフォームでの選択行の取得
その他(データベース)
-
18
SQLの速度をあげるには・・・
Visual Basic(VBA)
-
19
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
20
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのフィールド名に半角括...
-
2つ目のレコードの値を取得す...
-
INT64対応のprintf系関数はあり...
-
Access 2010で実行時エラー3061
-
FlexGridでのおかしな不具合・・。
-
ADOでNullフィールドの抽出
-
日付と文字列を条件としてDLook...
-
ASP.NET 2.0(C#) GridViewのソ...
-
VB6,Access2000のMDBでのデータ...
-
Access クエリで変数を参照する...
-
DataTableに特定のフィールドが...
-
ACCESSで視覚的タイムテーブル...
-
accessでフィールド追加のあと...
-
AS/400の論理ファイルで年度だ...
-
Notesのフォームを動的に・・・
-
クリスタルレポートで0件時の表示
-
NULLを含む文字列の結合で...
-
クリスタルレポート(8.5)の書式...
-
DataTableのselectメソッド
-
アクセスでADO 並べ替えが適用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2つ目のレコードの値を取得す...
-
Access 2010で実行時エラー3061
-
Accessのフィールド名に半角括...
-
accessでフィールド追加のあと...
-
INT64対応のprintf系関数はあり...
-
DataTableに特定のフィールドが...
-
AccessのDAOでフィールド名を配...
-
クリスタルレポートで文字列の...
-
アクセスでADO 並べ替えが適用...
-
テーブルのデータ型の変更がで...
-
日付と文字列を条件としてDLook...
-
Access クエリで変数を参照する...
-
ACCESSデータベースにV...
-
クリスタルレポート(8.5)の書式...
-
NULLを含む文字列の結合で...
-
2次元のdictionary
-
フィールド名をループの添え字...
-
Access Dcount関数で引数が指定...
-
ACCESSで視覚的タイムテーブル...
-
オートナンバー型を抽出条件に...
おすすめ情報