質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

17980閲覧

AccessVBAでテーブルへデータを書き込みする時に指定するフィールド名を、変数で指定する方法

urakawa

総合スコア12

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2016/04/20 05:26

編集2016/04/20 08:55

度々お世話になります。
Access2010(VBA)でプログラムを書いています。

ニュアンスとしては、以下のような処理がしたいのですが、
どのように記述すればよいのでしょうか?

Dim RsData As Recordset Dim mydb As Database Set mydb = CurrentDb Set RsData = mydb.OpenRecordset("WorkTable") RsData.AddNew Dim i As Long For i = 0 To maxR Step 1 RsData!DataBaseFieldName(i) = RecordArray(i) 'この部分 Next i

前提条件として、
DataBaseFieldName()にフィールド名が記録されています。
RecordArray()にテーブルに保存したいデータが格納されています。
※直前でReDimしてあります。

それか、以下のように、列(フィールドの相対位置)を指定して代入する方法はありますか?

Dim i As Long For i = 0 To maxR Step 1 RsData!(i) = RecordArray(i) 'この部分 Next i

教えていただけると大変有りがたいです。
よろしくお願いします。

補足:

現在、Access2010(VBA)で、
フィールド数が可変するCSVデータをシステムに取り込み、
テーブルを作成して、データをを保存するプログラムを作っています。

フィールド名はCSVデータの1行目とするので、
事前にフィールド名が分かりません。

そのため、作成したテーブルに
変数名でフィールド名を指定、もしくは列指定する必要があるのですが、
この部分の記述が分かりません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下でどうでしょうか? ※手元に確認できる環境がないのでダメだったらすみません。

RsData.Fields(DataBaseFieldName(i)) = RecordArray(i)

列順が同じなら以下でもできるかもしれません。

RsData.Fields(i) = RecordArray(i)

お試しください。

投稿2016/04/20 09:18

jawa

総合スコア3013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

urakawa

2016/04/20 10:08 編集

jawa様 ご回答ありがとうございます! RsData.Fields(DataBaseFieldName(i)) = RecordArray(i) で、できました! 列順は同じですが、 RsData.Fields(i) ですと、 RsData(テーブル)のレコードを参照するみたいですので、 相対位置指定(列番号での指定)は難しいようです。 とても助かりました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問