dポイントプレゼントキャンペーン実施中!

Accessで簡単なVBAを書いています。
以下のコードでレコードを追加しようとしています。

rs.AddNew
rs!ほげ = "ほげほげ"
rs!ふう = "ふうふう"
rs!hoge(ほげ) = "げほげほ"
rs!foo(ふう) = "うふうふ"
rs.Update

結果:
実行時エラー'3265':
要求された名前、または序数に対応する項目がコレクションで見つかりません。

rs!hoge(ほげ)の行で起こります。フィールド名に ( や ) を使わないようにするとうまくいきます。

CSVからのインポートの問題もあってフィールド名は変更できません。
このフィールド名のままうまくいく方法はありませんか?

宜しくお願いします。

A 回答 (2件)

rs.Fields("hoge(ほげ)").Value = "げほげほ"


という書き方はできませんか?

私ならAddNewメソッドを使用せずExecuteSQLでINSERTしますが…
    • good
    • 0
この回答へのお礼

ありがとうございます。できました。

>私ならAddNewメソッドを使用せずExecuteSQLでINSERTしますが…
SQLの分からない人にメンテしてもらいたいごくごく小規模なものを作っているのでAddNewメソッドはよいメソッドだと思います。
言語・環境ごとのやり方ってものがあるとも思いますし。VBAの常識がどっちなのかは知りませんが(^^;;

大変助かりました。ありがとうございます。

お礼日時:2007/03/27 16:46

下記のような書き方があります。


なお、フィールド名に敢えてAccessの予約語を入れてみました (^^ゞ
http://support.microsoft.com/default.aspx?scid=k …

Sub test()
  Dim rs As DAO.Recordset
  Set rs = CurrentDb.OpenRecordset("tb1")
  rs.AddNew
  rs![(now)] = Now '[] で囲む
  rs("(now)") = Now 'フィールド名で
  rs(0) = Now 'インデックスで
  rs.Update
  rs.Close
End Sub

[] で囲む方法は SQL文でも同様ですので宜しいかと思います。

私なら・・生理的に許せないので、CSVファイルを何とかしたいと考えます。
    • good
    • 1
この回答へのお礼

ありがとうございます。できました。
ANo.1に回答いただいた方法もこちらの方法もADO、DAOどちらでもOKでした。

>私なら・・生理的に許せないので、CSVファイルを何とかしたいと考えます。
まったくです。
今回は費用対効果を考えて"気にしない"ことにします。(笑)

大変助かりました。ありがとうございます。

お礼日時:2007/03/27 16:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A