アプリ版:「スタンプのみでお礼する」機能のリリースについて

開発環境はVC++.Net Office2000 SDK開発 
お世話になります。
ExcelをADOを使い中身を見ようとしているのですが、
フィールド名が無いので序数でフィールドにアクセスしようとしていますが
「要求された名前、または序数に対応する項目がコレクションで見つかりません」
とエラーが出てしまいます。

GetItemに序数を入れているつもりなのですがうまく行きません。
ただ、列名を入れればアクセスできるので、序数の指定以外は問題ないと思っています。
プログラムは以下のようにしていますが、何か解決の糸口はありませんか?

TESTHRxls(lpRecordset.CreateInstance(__uuidof(Recordset)));
TESTHRxls(lpRecordset->Open(bsCommand,bsConn,adOpenDynamic,adLockPessimistic,adCmdText));

lpRecordset->MoveFirst();//先頭へ移動

while(!(lpRecordset->EndOfFile)){
vIndex=1;
_bstr_t testValue = lpRecordset->Fields->Count;
int testValue2 = lpRecordset->Fields->GetItem(vIndex)->Value;

lpRecordset->MoveNext();
}//--while(!(lpRecordset->EndOfFile)){

lpRecordset->Close();

A 回答 (1件)

ご指定の環境での経験が無いので、自信ありませんが、


まず、testValueは2以上ですよね?

int testValue2 = lpRecordset->Fields->GetItem(vIndex)->GetValue();
または
int testValue2 = lpRecordset->Fields->Item[vIndex]->Value;

を試してみてください
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
いろいろ探した所、Microsoftのサポートの中にVC++でエクセルにアクセスする場合の文章があり、
そこでVC++の場合にはGetValue()でアクセスするとの記述があり
それで成功しました。

ご指摘の
int testValue2 = lpRecordset->Fields->GetItem(vIndex)->GetValue();
で値の取得ができました。
ありがとうございました。

お礼日時:2007/04/09 22:48

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