• 締切済み

Access2000で画像管理がしたい

OSはWinXPでACCESS2000という環境です。 画像管理をしたいと考えています。 具体的には、フォームに作成したコマンドボタンをクリックすると、 ファイルを選択する画面が表示されて、そこで指定した画像が イメージコントロール内に挿入されるというイメージで画像管理 できたらと考えています。 その時、指定した画像はテーブルにも画像名のみがレコードとして 保存されるようにしたいです。また挿入した画像は指定フォルダに 自動で保存(コピー?)されてフォームに表示される画像はこの指定 フォルダからリンクで表示される形をイメージしています。 更にフォームに表示される画像をクリックすると拡大して閲覧できる ようにもしたいと思っています。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=402425 のページも参考にさせて頂いたのですが、イベントでフルパスを設定する 為の式がうまく設定できないので結局、イメージしていることが行えず 悩んでいます。 画像をOELオブジェクトにすると容量が重くなりますし、画像名でレコード 管理ができないので避けたいのですが、上記イメージを実現する為に よい方法があれば教えて下さい。よろしくお願いします。

  • m_f
  • お礼率66% (28/42)

みんなの回答

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 ファイルを選択→イメージコントロールに表示→テーブルに保存 という流れでしょうか。 ファイル選択は、おそらくコモンダイアログコントロールを使用していると思います。 そこで選択ファイルのフルパスを指定出来るので、イメージコントロールのPictureプロパティに、 Me!Image1.Picture = ファイルのフルパス のようにすれば表示します。(実際はフルパスは変数に格納するでしょうが) テーブルへの保存ですが、コモンダイアログの選択でファイル名のみも取得出来るので、それを保存すればいいでしょう。 また、フルパスからファイル名のみを取り出す(一番後ろの"\"の位置を探して、それより後ろを取り出す)のもいいでしょう。 指定フォルダへのコピーは、FileCopyメソッドを使用して、 FileCopy 元のファイルのフルパス, コピー先のファイルのフルパス のようにします。 あと、拡大閲覧は、閲覧用のフォームに大きなイメージコントロールを貼り付けて、そのフォームを開くなどの方法があります。

m_f
質問者

補足

ご回答ありがとうございます。返答が遅くなって申し訳ありません。ご回答をヒントに色々と試してみたのですが、データベース設計は素人なのでなかなか思うように作成できませんでした。 >ファイルを選択→イメージコントロールに表示→テーブルに保存 という流れでしょうか。 流れは↑このとおりです。テーブルに保存するのは画像のファイル名のみに したいと思います。そのほうが指定フォルダ内にコピーされた画像をフォーム上に表示させることができるような気がしたので・・・ コモンダイアログコントロールの設定は色々調べてActiveXコントロールから行うということを知ったのですが、この設定はVBがインストールされていなければ使用できませんでした。できればVBを使用しない方法をとりたいと思いモジュールで画像挿入できるようにしてみました。これだとデータベースにはフルパスで保存されてしまうので、指定したフォルダ内のファイルから画像を表示させることができず、いきづまっています。 設定したモジュールはこんな感じです。 ファイル名を抜きだすにはどうしたらよいでしょうか? あと、イメージに近いデータベースがこちらのサイトにあります。 http://www.ark-9.com/~bluemiffy/read/trb.html 素人の私でもDB完成ができるよう、アドバイス宜しくお願いします。 Option Compare Database Option Explicit Declare Function GetOpenFileName Lib "COMDLG32.DLL" Alias _ "GetOpenFileNameA" (pOpenfilename As OpenFileName) As Boolean Type OpenFileName lStructSize As Long hwndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As String nMaxCustFilter As Long nFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String Flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type Public Function API_OpenFileName() As String Dim OF As OpenFileName Dim tmp As String Dim stu As Long Dim filter As String tmp = String$(5120, Chr$(0)) filter = "全てのファイル(*.*)" + Chr$(0) + "*.*" + Chr$(0) + Chr$(0) With OF .lStructSize = Len(OF) .hwndOwner = Application.hWndAccessApp .lpstrFile = tmp .nMaxFile = 5120 .lpstrFilter = filter .nFilterIndex = 1 .Flags = &H4 .lpstrTitle = "ファイルを指定してください" End With stu = GetOpenFileName(OF) If stu Then API_OpenFileName = Left$(OF.lpstrFile, InStr(OF.lpstrFile, Chr$(0)) - 1) End If End Function

関連するQ&A

  • ACCESS2000の画像表示  リンクを使う??

    アクセス2000にてフォーム上に商品の画像を表示させているのですが、これをコマンドボタンをクリックした時に拡大表示させるようにしたいのです。 Me.イメージ168.Picture = "C:\Documents and Settings\saiki\デスクトップ\作成中\" & [商品画像] 現在、コマンドボタンクリックにて他のフォームを開き画像を拡大して表示しています。 これで良いのですが、商品クエリーにフィルターを掛けていますのでレコード指定を掛けて拡大フォームを開いても目的の画像以外のレコードも表示してしまいます。 例えば、アンパンだけ表示したいのにフランスパンも拡大フォームに読み込んでしまう。故にレコードを送って目的の拡大画像を探すことになります。 ひとつのレコードの画像のみを簡単に拡大して表示する方法を教えて頂けないでしょうか?リンクを使って出来ないでしょうか? ハイパーリンクでこれでは表示できないのですが?? C:\Documents and Settings\saiki\デスクトップ\作成中\" & [商品画像] 初心者の為、ヒントだけでもご教授下さい。

  • Access フォームに画像を表示させたい

     Win XP Office 2003 Accessを勉強中です。  フォームに画像を添付して、フォームに画像そのものを表示させたいのですが、デザインビュー>コントロール>イメージ>に イメージを挿入しようとしても、ファイル名だけが表示されるだけで、画像そのものを表示させることが出来ません。 これは何故でしょうか。 一体何が原因でこのようになるのでしょうか。

  • アクセスフォームで画像を表示させたい。

    よろしくお願いします。 テーブルで「画像」フィールドをoleに設定しました。 そこにjpeg画像を指定しましたが、帳票フォームでは、 ファイル名が表示されるだけで、画像が表示されません。 ダブルクリックをすると別アプリケーションが立ち上がり、 画像が開けます。 ですが、私は別アプリケーションが立ち上がることなく、 アクセスだけで、ダブルクリックなしに画像を表示させたいと 考えています。 知恵をお貸しいただけると幸甚です。

  • FileMaker11でレシピ作成 画像挿入

    かなり初心者です。以前の質問などもみたり調べたりしたのですがよくわかりませんでした。 また持っている本にも書いてなくて困っています。 どうぞ宜しくお願い致します。 自分で使う料理のレシピをFileMakerで管理したいなと思い作っているのですが、画像の挿入がうまくいきません。 1レコードが1レシピなので、レコードごとに違う料理の写真をのせたいのですが、レイアウト編集で画像挿入すると他のレコードにも同じ画像が表示されてしまいます。 レシピを入力していく際(ブラウズのフォーム形式でやっているのですが)、画像をフォルダから選んでレシピごとに違う写真を登録できるようにしたいのですがどうやったらいいのでしょうか・・・。 画像は別フォルダにおいてあります。 参考になる記事などもありましたら教えていただけるとありがたいと思います。

  • 大量のデジカメ画像の管理について

    大量のデジカメ画像の管理について 複数の社員が、共有フォルダに各々フォルダを作りデジカメで撮影した画像を保存しています。 フォルダ名は個人名にしている場合が多く、異動が行われる毎に個人名フォルダが増えていきます。被写体が同じ画像が複数のフォルダにいくつも保存されています。 フォルダ名、ファイル名は各々が設定しているのでバラバラです。 「windows live フォトビューワー」でタグを設定すると、保存されているフォルダが違っていても、同一タグが設定されているものを一覧で表示できるのですが、このタグを他のPCと共有することはできるのでしょうか? その他、共有フォルダに保存された大量の画像を、複数のPC間で管理するよい方法がありましたら教えていただけませんか? (例)  共有フォルダ    ⇒「田中」   →「写真」    →「A店」A店の写真    →「B店」B店の写真  ⇒「鈴木」   →「B」     →「写真」B店の写真   →「C」     →「写真」C店の写真   使用パソコン Windows XP

  • アクセス 画像の挿入について教えてください。

    OS: XP Access Version: 2003 アクセスを使って、商品管理に画像を取り入れようと思い苦戦しています。 (1)商品データのフィールドにOLEを設定しました。 (2)BMPの24ビット保存画像でないと上手に表示されないことが分かりました。 さて、ここから質問なのですが、 ◆ネット上から画像をWIN-SHOTというソフトで取り出し、  bmpで保存をしても、その画像を挿入するとそのフィールドのデータとして  「パッケージ」と表示されて上手に表示できません。 ◆一度保存した画像を、再度ペイントで呼び出し、「名前をつけて保存」で  同じタイトルで上書きをした画像は、「ビットマップファイル」と表示され、  フォームでもちゃんと表示されます。 ◆しかしながら、一度ちゃんと表示されても、しばらくして再度読み込みなおすと  「パッケージ」になってしまい、表示されません。 マイクロソフトのサイトで、パッケージの場合の対処方法として、 BMPファイルにする・・・とかかれています。 まったく手を加えていない同じBMPファイルでも、 パッケージになって表示されないときと、ビットマップになって 表示される場合があるのはなぜでしょうか。 ※一度パッケージと表示された画像はその後はずっとパッケージです。 また、画像1、画像2をまったく同じ手順で保存しても、 画像1は表示(ビットマップ)され、画像2は表示されない(パッケージ)ということもあります。 データとして管理するだけであれば、パッケージでも クリックで開くので問題ありませんが、表示させたいと思っています。 どなたか、解決策をご存知の方、または違う方法でも上手に表示 する方法をご存知の方がいらっしゃいましたら、 是非教えてください。 よろしくお願いします。

  • Access2000ですが・・・・

    Access2000で人事カードを作成しています。顔写真(jpg画像)は別フォルダに保存し、フォーム上のテキストボックスに画像のパスを自動作成し、レコード移動時にイメージフレームにパスに対応する画像を呼び込むVBA(Me!フレーム.picture=パス)で処理しています。ところが画像がないレコードが何件かあり、そのレコードに移動した時は、前の画像が残ったまま「ファイル名.jpgを開けません」との表示が出ます。そこでパスに対応する画像がない場合はIF条件により別処理をしたいのですが、構文が分かりません。どなたか教えていただけないでしょうか。

  • アクセスで画像を挿入させる方法

    こんにちは。いつもお世話になっています。 パソコンはXP、アクセスは97、 画像ソフトはPicture Managerを使っています。 アクセスのテーブルにオブジェクトの挿入を選択し、画像を挿入すると そのレコードのセルには「パッケージ」と表示されます。 パッケージと書かれた部分をクリックするとPicture Managerからその画像が出るのですが、 そのテーブルを元にしたフォームやレポートには、画像が出ずに困っています。 これを解決する方法を教えてください。 よろしくお願いします。

  • ACCESS フォームに画像一覧表表示

    Microsoft Access2007 or 2003で質問させていただきます。 フォームに画像一覧を表示する事は可能でしょうか。 テーブルにはファイルのフルパスファイル名が格納されており、フォームの詳細部分にそのレコードの画像ファイルを表示したいと思います。 画面には、画像ファイルが縦に並ぶようなイメージです。 私の知識で作成したところ、全レコード、1レコード目の画像表示になってしまいます。 データ数が多いので、OLEオブジェクトは使用しない方法で、良い方法はないでしょうか。

  • DBへの画像の挿入について

    現在filemakerPro6 windowsにて画像管理のデータベースを作成しているのですが、画像の挿入で不明に思った点があったので質問しました。 やろうとしていることは、 スクリプトでローカルのフォルダ内の画像(「レコードID」_a~f.jpgの名前で統一)を、ファイル名の_a~fで判別させて、各フィールド(画像a~f)に挿入 としたいのですが、 計算結果に "image:/D:/フォルダ名/" & レコードID & "_a.jpg" を試してみましたが上手く行かず(パスに変数が使えるのはver8から?) リレーションを使用すれば同じようなことが出来るのかと思いましたが、そこでも行き詰っている段階です。 (画像の一覧のデータベースからファイル名(1234_a.jpg)を参照してサムネイル画像をリレーションで表示できないものか…と) 上記と同等の処理を実現出来そうな方法が無いか、ご存知の方がいらっしゃればご教授お願いします。