現在、Win2000Pro+VC++6.0で開発をしています。
AccessのOLEを利用して、ExcelのデータをAccessへエクスポートしたいと思っています。
その際、AccessのTransferSpreadsheetを使うとできることがわかりましたが、Accessから直
接TransferSpreadsheetを発行するのと、VCから発行するのとでは、引数の数が違うようで
す。
Accessから発行する場合、引数は6個で、VCから発行する場合は7個です。
VCから発行する場合のTransferSpreadsheetの使い方、もしくは、引数の意味をご存知の方が
いらっしゃれば、教えていただきたく思います。
それか、VCからTransferSpreadsheetを使って、ExcelとAccessを連携しているサンプルは無
いものでしょうか。
>Accessから直接TransferSpreadsheetを発行するのと、VCから発行するのとでは、引数
の数が違うようです。
引数の数が違うわけではありません。
VC++ では、引数の省略がまるで許されていないだけです。
ACCESS 2003 のヘルプを見る限り、TransferSpredsheet の引数は7個です。
もちろん、個々の引数の説明もヘルプに記載されています。(日本語で)
渋木宏明(ひどり)殿
以前にも同じような質問にお答えしていただき大変恐縮です。
私はAccess2000を使っているのですが、ヘルプには以下の引数しか記載されていません。
transfertype
spreadsheettype
tablename
filename
hasfieldnames
range
個々の引数の説明は記載されていますが、7個目が見当たりません。
2000と2003では違うのでしょうか。
ちなみに、VCからAccess2000のタイプライブラリを読み込んでAccess2000のヘッダーファイル
を作ると、上記の6個の引数に加え、7個目として以下の引数が存在します。
const VARIANT& UseOA
この引数の説明がAccess2000のヘルプには無かったです。
もし、お分かりでしたら教えていただけないでしょうか。
>2000と2003では違うのでしょうか。
ごめんなさい、私が参照していたのは ACCESS 2002 のヘルプでした。
もちろん、違う場合はあります。
てか、過去においては違う場合のほうが多かったです。
> const VARIANT& UseOA
>
>この引数の説明がAccess2000のヘルプには無かったです。
ACCESS 2002 のヘルプでも、「アクション」配下に収録されているトピックでは引数が
6個しか解説されていませんでした。
ヘルプの、「Visual Basic プログラミング」の配下を探すと、引数7個の説明が記載さ
れています。
が、「省略可能です」以外の情報が載ってないですね (^^; > UseOA
「省略可能」なそうですから、VariantClear() しただけの、空っぽの値を指定しておけ
ばいいんじゃないでしょうか。
ご回答ありがとうございます。
現在、苦し紛れで、VBでTransferSpreadsheetを使ってExcelからAccessへデータを写すだけ
のdllを作成し、それをVCからコールして対処しています(^^;
このままでは納得がいかないので、VCから直接TransferSpreadsheetをコールする形に変えた
いと思います。
7個目の引数が省略可能ということがわかって、たいへん助かりました。