エクセルファイルを読み込み、SQLサーバーに登録するには?

[戻る]
田中さん 2007/03/30(金) 15:03:05
こんにちわ。
エクセルファイルの情報を読み込み、それをSQLサーバに登録したいのですが
#importライブラリの所でつまづいてしまいました。。

環境はVisalC.NET、Excel2003,SQLServer2000,SDK開発です。

●SQL用のADOインポートライブラリは以下のようにします
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace 
rename("EOF", "EndOfFile")

●Excel用のインポートライブラリは以下のようにしてます。
#import "C:\Program Files\Common Files\Microsoft Shared\Office11\MSO.DLL" 
no_namespace rename("DocumentProperties", "DocumentPropertiesXL") rename
("RGB", "MSO_RBGXL") 
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\Vbe6ext.olb" 
no_namespace 
#import "C:\Program Files\Microsoft Office\Office11\EXCEL.EXE" rename
("ReplaceText", "ReplaceTextXL") rename("CopyFile", "CopyFileXL") rename
("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename
("DocumentProperties", "DocumentPropertiesXL") exclude("IFont") exclude
("IPicture") no_dual_interfaces 


それぞれを使う場合は問題が無いようですが、両方をインポートすると
Property' の宣言を確認してください。とういようなエラーが沢山出るようになって
しまいます。

同時に2種類のインポートは無理なのでしょうか?

田中さん 2007/03/31(土) 05:37:46
エラーの内容を良く見てると

\vbe6ext.tlh(97) : error C3121: クラス 'Property' に対する GUID は変更できませ
ん。
\debug\msado15.tlh(929) : 'Property' の宣言を確認してください。

というものがあります。
それと同時に

\debug\vbe6ext.tli(1100) : error C3861: 'putref_Object': 識別子は、引数依存の照
合を使用しても見つかりません。

というエラーが出ていました。
msado15.tlhの宣言とvbe6ext.tliの宣言が同じような宣言になり重複してるといいう事な
のかと思い、ADOのno_namespaceの文を削除してみてコンパイルしてみるとエラーは出な
くなりました。

COMの#immportの事について記述してある文献を探してる所なので、
動作確認はまだしていませんが、この処理ってどうなんでしょうか?

田中さん 2007/03/31(土) 06:53:10
自己レスが続きます。すみません。

ADOの#import内のno namespaceの記述を外すとエラーが出てしまいます。
そこで、namespaceが違うからだと思い、ADOの#import文の下の行に
using namsespace ADODB
と記述するとADODBだけならそれで動作するのですが、
エクセルの#import文が入るをまたエラーが出ます。
#import の記述の方法が悪いのは分かっているのですが、対応が分かりません。
何かヒントはありませんでしょうか?

田中さん 2007/04/05(木) 20:42:44
[[解決]]
COMについて文献を勉強中です。

解決はしていませんが、色々と分かってきました。

ひとまず質問は終わりとさせて頂きます。
ありがとうございました。

古いスレッドには追加発言できません。