- ベストアンサー
ACCESS-VBAでフィールド名の取得
はじめまして。みかと申します。 フィールド数、フィールド名の可変長のテーブルを作成し、それにINSERT/UPDATEをかけたいと思っているのですが、可変長なものでフィールド名も変化し、フィールド数も変化します。 INSET/UPDATEする際には、フィールド名が必要ですよね? ですので、フォールド名を取得しないといけないのですが、調べてみたのですが、 よく分かりません。 どのように取得したらよいのでしょうか? どうぞ、よろしくお願いします。 環境はXP-PRo,ACCESS2003です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
質問の意図と多分違うような気がするが、参考になれば。 下記なら判っていることかもしれないが、 ADOでフィールド名は下記で表示できます。 例として、db2.mdbの「生徒」テーブルのフィールド名取得です。 Sub test01() Dim cnn As New ADODB.Connection Dim objRs As Object Dim objCol As Object Set objRs = CreateObject("ADODB.Recordset") '対象のファイル名を設定する dbName = "db2.mdb" 'MDBのPathを設定する dbPath = "C:\Documents and Settings\xxxx\My Documents\" 'MDBと接続 lstrPath = dbPath & dbName cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & lstrPath & ";" lstrSQL = "SELECT * FROM 生徒" objRs.Open lstrSQL, cnn, adOpenForwardOnly, adLockPessimistic ' テーブルフィールド名一覧の取得 Set objCol = objRs.Fields ' A1からA行にフィールド名をセットする For k = 1 To objCol.Count MsgBox objCol(k - 1).Name Next End Sub ーーーーー 内容的に上記のようなことで判るとしても、これらのフィールド名と >INSET/UPDATEする際には、・・ をどのように、つなぐつもりか(SQL文入力操作の時使うのか、プログラムでSQL文を自動的に作ったりするのか)、質問表現では明確でないのでは?