こんにちわ。表題の件で質問です。
VB6.0(SP5)
Access2000
Win2000
Accessの列1はデザイナでOLEオブジェクト型に設定し、既存a.xlsファイルを挿入しています。
VBのFormにはOLEコンテナコントロールとCommandボタンを各1つ用意しています。
Commandボタンを押下した時にRecordsetで取得した列1のデータを
VBのOLEにオブジェクトの埋込みを行いたいのですが、
方法がよく分かりません。
ヘルプを見ると、PictureBoxにはLoadPicture()関数で表示できるように思ったのですが、同じようにOLEコンテナにDBから取得したOLEオブジェクト型のデータを
表示させる事は可能でしょうか?(ターゲットはExcelファイルです)
宜しくお願いします。
OLEコンテナにデータバインドさせるのが簡単でしょう。
DataSource/DataFieldプロパティについて調べてみてください。
> PictureBoxにはLoadPicture()関数で表示できるように思ったのですが
LoadPictureは、(メモリ上の)データからではなく、ファイルからの
読み込みになりますよね。それと同じようなイメージでかまわないなら、
OLEコントロールの場合は、SaveToFileメソッドでファイル保存、
ReadFromFileメソッドでファイルからの読み込みが行えます。
なお、OLEオブジェクトデータというのは、元データのバイナリ情報とは
異なるものである事に気を付けてください。例えば、BMP画像やXLSファイルを
OLEオブジェクトとしてOLEオブジェクト型フィールドに保存しておき、
それをRecordset経由でGetChunkしてバイナリファイルとして取得しても、
それは、元の*.bmpや*.xlsとは必ずしも(*)一致しない事になります。
--
(*) OLEオブジェクト型フィールドに、『OLEオブジェクト』としてではなく、
元ファイルのバイナリイメージ自体をそのまま格納してあるのならば、
取得後のバイナリと元データのバイナリは、完全に一致する事になります。
魔界の仮面弁士さん、回答ありがとうございました。
勉強不足のまま質問を投げてしまい申し訳ないです。
DataSource/DataFieldプロパティについて、調べてみます!!
ツイート | ![]() |