プロが教えるわが家の防犯対策術!

お世話になっております。

現在CSVファイルをリンクし(自動)、リンクテーブルのField.Countを取得しようとしています。


CSVには同じ項目名が存在しており、リンク時同名のフィールドは、CSVのフィールド名にならず、
自動でフィールド0~と付きます。

ここで、問題なのは、
リンクテーブルのFields.Countを取得する際、自動で付いたフィールド0~の項目が無視されてカウントされるのです。


--例--
CSVファイルの
項目名:名前、年齢、フィールド0(自動で付けられた名称)
Fields.Count=2


この現象をどなたがご存知方、他の方法をご存知方、ご教授宜しくお願い致します。


-------------下記ソース例-------
Dim daoDB As DAO.Database 'リンクファイル用
Dim daoRst As DAO.Recordset 'リンクファイル用

Set daoRst = daoDB.OpenRecordset("SELECT * FROM リンクテーブル")
daoRst.Fields.Count ←ここで自動で付いたフィールド0を無視する

A 回答 (2件)

Access2003で DAOの設定を


『Microsoft DAO 2.5/3.51 Compatibility Library』
『Microsoft DAO 3.51 Object Library』
『Microsoft DAO 3.6 Object Library』
どの設定に変更しても 期待したとおりのカウントが返ってくるようです

DB形式を 2000形式、2002-2003形式にしてもともに期待通りでした
    • good
    • 0
この回答へのお礼

なるほど。検証ありがとうございます。
しかしDAOからADOにしただけで、他のソースは弄ってないのに、
何で成功したのでしょうね・・・。
疑問が残りますが、どうもありがとうございました^^

お礼日時:2008/06/04 00:50

リンクテーブル作成はどのようにして行ったのでしょう?


Access2003の場合ウィザードを使うと2番目の画面で『先頭行をフィールド名として使う』のチェックボックスがありここをチェックするとCSVファイル内のフィールド名になります

ご質問のようなコードを実行してみましたテーブル定義で表示される数が Fields.Countに返されるようです

# Access2003の場合 『フィールド1』からになるようです
    • good
    • 0
この回答へのお礼

ご返信が大変遅くなり申し訳ないです。
リンクは自動で、実行中VBAで
DoCmd.TransferText acLinkDelim でリンクを貼っています。

しかしDAOではなんかおかしいのです。

しかし解決しました。
ADOを使うと、Fields.Countで、DAOでは無視されていた自動で付いたフィールドを無視せず、思い通りのFields.Countを取得する事に成功しました。

疑問は残りますが、結果がADOで成功したので、
DAOからADOに変更しました。

どうもありがとうございました。

お礼日時:2008/06/01 14:05

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