VB6で開発しています。
Excelファイルの一部分をPictureBoxに取り込み。。。
xlsheet.Range("A1:Z49").CopyPicture _
Appearance:=xlPrinter, Format:=xlPicture
If Clipboard.GetFormat(vbCFMetafile) = True Then
ActiveDoc.picobj1.Picture = Clipboard.GetData()
End If
その他諸々の情報を入力した後。。。
PictureBox+その他諸々をWordファイルに出力しています。
Clipboard.SetData ActiveDoc.picobj1.Picture
If Clipboard.GetFormat(vbCFMetafile) = True Then
wdApp.Selection.PasteSpecial Link:=False, _
DataType:=wdPasteMetafilePicture, _
Placement:=wdFloatOverText, _
DisplayAsIcon:=False
End If
その他諸々の情報が多くなってきたので、途中でファイル保存できるようにしようと思い、ADOを使ってPictureBoxの内容をMDBファイル(Access2000)に保存しようとしているのですが、
Dim cnn As New ADODB.Connection
cnn.Open Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & fname & ";" & _
"Jet OLEDB:Engine Type=5;"
Dim rs As New ADODB.Recordset
rs.Open "TableOLE", cnn, adOpenKeyset, adLockOptimistic
rs.AddNew
' "Key" は Type = adWChar
rs.Fields("key").Value = "picobj1"
' "data" は Type = adLongVarWChar(OLEオブジェクト?)
rs.Fields("data").Value = ActiveDoc.picobj1.Picture
とすると、『種類が一致しません。』
rs.Fields("data").AppendChunk ActiveDoc.picobj1.Picture
とすると、『引数が間違った型、または許容範囲外であるか、競合しています。』
このような場合、どのようにコーディングすれば宜しいのでしょうか?
よろしくお願いします。
直接的な解決にはならないかも知れませんが、参考程度に読んでください。
私はJPEGの画像ファイルを読み込んでMDBファイルに保存しています。
1: MDBファイルのDATAタイプは、dbLongBinaryです。
2: 変数を定義して画像ファイルを読み込みます。
Dim picData() As Byte
ReDim picData(画像ファイルサイズ)
Get #Open番号, , picData()
3: MDBファイルに保存します。
レコードセット.AddNew
レコードセット.Fields(フイールド名).AppendChunk picData()
レコードセット.Update
以上、概略だけですがMDBへの画像ファイルの保存、読み出しが出来ています。
ishiさん、レスありがとうございます。
まずは、ishiさんを始め一緒に悩んでいただいた方々へのお詫びから。。。
' "data" は Type = adLongVarWChar(OLEオブジェクト?)
↓
' "data" は Type = adLongVarBinary
質問をUPする際に転記ミスしてました。
すみませんでしたm(__)m
質問UP後は、気分転換に他の部分を開発したり、風邪でDOWNしたり・・・
まだ解決していませんので、ishiさんの書き込みを参考に再度試行錯誤してみます。
ツイート | ![]() |