2016-06-23 3 views
-1

クライアントはMS Access、バージョン2007および2016で自己完結型のツールを作成するように依頼しています。さまざまなラップトップとの間でコピーされるため、様々な時代に。このツールは、accdbデータベース以外のファイルを作成、削除、または変更することはできません。ツールが使用されているとき、ユーザーはネットワークまたはインターネットにアクセスする可能性は低いです。VBAを使用してフォームを作成し、添付された画像を読み込みます

条件の1つは、実行するたびに新しいフォームを作成することです。 Accessは、すべてのフォームとそのコントロールが展開前に既にビルドされていることを意味しますが、クライアントはそれを望んでいません。私はその問題を解決し、特定の条件に応じてx個のフォームを作成し、特定の条件、それぞれ独自のイベントなどに基づいて各フォームに30〜40個のコントロールを作成しました。

ここで、各フォームのコントロール?覚えておいてください、accdbは自己完結型でなければならないので、ロゴが特定のディレクトリや使用中のマシン上にあることは期待できません。ファイルシステムには書き込むことができません。

私はロゴ(jpeg)を添付ファイルのテーブルのいずれかのテーブルに読み込むことができます。その欄には唯一の添付ファイルになります。それが役立つならば、それがそれ自身のテーブルであることも同様に簡単です。

VBAを使用して添付ファイルコントロールを作成できますが、VBAを使用して添付ファイル内のControlSourceをFileDataに設定する方法がわかりません。

画像コントロールに画像を隠しフォームで埋め込み、画像プロパティーに.pictureプロパティーを設定しようとしても、うまくいっていませんでした。それは私のマシンで動作しているようだ。

したがって、新しく作成したフォームに添付されたjpegを表示するにはどうすればよいですか?

+1

アタッチメントフィールドにデータベース内の画像を保存している場合は、その画像を「%TEMP%」に「本当の」ファイルとして保存しておく必要があります。ファイルシステム。そこから、イメージファイルが既知の場所にあったときにフォームに埋め込むために以前に行った作業を行うことができます。 –

+0

@GordThompsonありがとうございます。おそらくこれが最良の選択肢ですが、残念ながらそれはクライアントが要求したものに対して明示的です。申し訳ありませんが私は不明ですが、クライアントが「自己完結型」と言うとき、彼は私がファイルシステムに書いたり読み込んだりするべきではないということを意味します。クライアントは、以前はファイルシステムに書き込むさまざまなツールで不運を抱えていました。私が尋ねたこととクライアントが指定したことが不可能な場合、私はこれを回避策として提供しますが、クライアントは満足できません。 – CWilson

+0

私は「自己完結型」という言葉をもう少し明確にするために質問を編集中です。私は、ファイルの作成、ファイルの削除、またはaccdb以外のファイルの変更をクライアントが厳重に禁じていることを理解しようとする人を欲しがっています。技術的な理由からではなく、私が関与していなかった以前のプロジェクトが失敗し、決してアクセスされてはならない情報が壊れたからです。 – CWilson

答えて

-1

SOアクセス-vbaでちょっと尋ねられ、答えられました。ここに一つの解決策があります。 Saving Image as OLE Object, in Access Googleで

多くの人をしてSO

EDIT検索:あなたは著者の答えを見て全体の質問を読まなければならない

回答:だから

、私が終わった何をこれに続いていたのは https://support.microsoft.com/en-us/kb/210486

readBLOB関数を使用してファイルを読み取り、 データベースに保存します。次に、レポートを実行するか、または の画像、onloadを持つフォームを開くと、WriteBlob関数を使用してファイルを 一時フォルダに書き込み、そのパスを使用してImageオブジェクトを設定します。

+0

hmmm ...間違った質問を間違ってリンクしたと思います。その質問にはただ1つの答えがあり、その答えは実際にその質問に対処していません。質問は、ファイルをデータベースにインポートすることです。答えは、2つのリンクで単純に「しないでください」です。私はすでに「やった」ので、その答えは本当に意味がありません。リンクは興味深いものですが、画像も言及していますが、どちらも、既にデータベースにある画像をどのように表示するのかという質問には言及していません。 – CWilson

+0

質問全体を読んで、著者の答えを見なければなりません。彼は自分の質問に彼が何をしたのかを記述して回答し、関連するリンクも含んでいます。もう一度やり直したくない場合のために私の答えを編集しました – dbmitch

+1

あなたが考えていたことを説明していただきありがとうございます。私はその質問のOPが質問の中で容認できる答えだと思ったことを与えるために彼の質問を編集したことを知りました。残念ながら、それは「答え」ですが、私は心からそれが個人を助け、自己完結型ではないことを願っています。それはAccess 97と少なくとも互換性がありますが、2007年と2016年の私のケースでは、ファイルを削除したり変更したりすることができれば、実際にはもっと効率的な方法です。 – CWilson

関連する問題