次の方法で共有

AccessのOLEオブジェクト型フィールドに「Bitmap image」でデータを保存する方法

Anonymous
2013-11-03T05:55:57+00:00

AccessVBA(ADO)を使用し、非連結のフォーム上で以下の事をしたいです。

(1) テーブルに保存された任意のレコードの画像を、フォームに表示する。

(2) HDD上に保存されているBMPファイルを、テーブルの任意のレコードに保存する。

テーブルにはOLEオブジェクト型のフィールドが存在し「Bitmap image」でデータが格納されています。

また、「非連結のフォーム」を前提としております。

上記(1)については以下の方法で実現できました。

・非連結のフォーム上に「連結オブジェクトフレームコントロール」を用意しコントロールソースを空にしておく。

・ADOでテーブルからレコードを取得し、画像を上記コントロールに移送する。

 コーディング例:

  Me.Controls(strCtlName) = adoRecordSet.Fields(strFldName)

上記(2)については以下の方法で試してみましたが、実現できませんでした。

・HDD上のBMPファイルをバイナリ形式で読み込み、それをレコードの画像フィールドに移送し更新

 コーディング例:

  Dim bytImage() As Byte

  FNO = FreeFile

  Open Me.ファイル名 For Binary As FNO

  ReDim bytImage(LOF(1) - 1)

  Get FNO, , bytImage()

  adoRecordSet.Fields(strFldName) = bytImage()

  adoRecordSet.Update

  結果:Updateは成功したもののテーブルに「ロングバイナリデータ」として保存されてしまった。

    GetChunk/AppendChunkも試してみましたが、やはり「ロングバイナリデータ」として

    保存されてしまいます。

OLEオブジェクト型のフィールドには実データだけでなくヘッダ情報も格納されていると聞きました。

やはり、「フォームとテーブルを連結する」&「連結オブジェクトフレームコントロールを使う」 

しか方法はないのでしょうか・・・?

(文書番号: 205635 も参照しましたが、VBAではなくVBだったため試すことができませんでした。)

長くなりましたが、ご教授いただければ幸いです。よろしくお願いいたします。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

3 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2013-11-12T02:50:46+00:00

    こんにちは。

    MukkuMuku さん、いつもコメントありがとうございます。

    koos_lucas さん、マイクロソフト コミュニティ への投稿ありがとうございます。

    MSDN に質問者の方々が情報交換を行っている VBA フォーラムがありますので、引き続き情報を集めたいという場合にはそちらを利用してみてはどうでしょうか。

    MSDN の VBA フォーラム

    せっかく質問を書き込んでもらっているのに、別なフォーラムの紹介となってしまい、すみません。。。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2013-11-05T00:51:40+00:00

    MukkuMuku 様

    ご返信ありがとうございます。

    教えていただいたサイト4つのうち、2つ目と3つ目は日本語でないため試しておりませんが、

    1つ目のサイトにある方法は既に私の方でも試しておりまして、

    内容的にはフォームおよびコントロールをテーブルと連結させているケースですので

    今回の質問とは異なるものでした。

    4つ目のYU-TANGさんのサイトは私もよく参考にさせていただいているサイトです。

    ですが今回の質問に当てはまるような記事は見つかりませんでした。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2013-11-04T16:20:29+00:00

    MukkuMukuです。

    以前にあれこれしたことがあるという記憶のみなので詳細はありません。

    参考情報のみです。

    ACC: How to Load OLE Objects from a Folder into a Table

    http://arkham46.developpez.com/articles/office/clgdiplus/

    Bildobjekte in VBA mit GDIPlus verwalten unter Office 2007 und 2010

    YU-TANG's MS-Access Discovery

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません