プロが教える店舗&オフィスのセキュリティ対策術

ExelのVBAではある程度のプログラムが組めますが、Accessは2週間前から始めた初心者です。
画像の絶対パスを記録したテーブルを作成し、Accessフォームのイメージウィンドウに画像を表示するところまではできました。

そこで質問なのですが、
1.「C:\sample\test」というフォルダ内に30個ほどの画像があるとして、このフォルダの絶対パスのテーブルからその中にある画像を表示することはできるのでしょうか?というのは、そのフォルダは全部で3万個もあり、つまり画像は全部で90万個もあるのです。
2.クエリで抽出した画像の絶対パスを利用して、その画像をフォームのイメージウィンドウに表示する方法がわかりません。

よろしくお願いします。

A 回答 (3件)

| 2.画像の絶対パスのテーブルからフォーム上に表示して、ボタンで最初から最後まで「全部」を見ることはできます。

しかしクエリで抽出したものだけを見ることができていません。

これは自己解決されたようなので

| イミーディエトウィンドウにリストアップされたパスをフォームのイメージウィンドウに反映させる方法がわからないのです。

これは、配列を使えば出来るでしょう
FolderSearch関数をちょっといじれば出来るはず。

ヒントは
ReDim Preserve
かなー

Public Sub FolderSearch(ByVal strTargetDir As String, ByRef returnArray() As String)

 Dim iSize
 iSize = 0

For Each file In folder.Files
  With file
   Debug.Print .Name, .Path, .Size
   ReDim Preserve returnArray(iSize + 1)
   returnArray(iSize) = .Path
   iSize = iSize + 1
  End With
 Next file

End Sub
    • good
    • 0
この回答へのお礼

phoenix343さん、どうもありがとうございました。
何とかできそうです。

「ExelのVBAではある程度のプログラムが組めます」などと余計なことを書いたために、私にとってはかなりレベルの高いアドバイスを頂きました。しかしそのお陰で非常に勉強になりました。

お礼日時:2010/01/30 16:52

質問が矛盾しているように見えますが、、



| 画像の絶対パスを記録したテーブルを作成し、Accessフォームのイメージウィンドウに画像を表示するところまではできました。

| 2.クエリで抽出した画像の絶対パスを利用して、その画像をフォームのイメージウィンドウに表示する方法がわかりません。

とりあえず1だけ
絶対パスのテーブルから
というのは、
絶対パスにある画像全部を表示ってことでしょうか?

出来ないとは言わないけど、
凄い帳票数になりそうですね…

絶対パスからファイル名検索をかけ、
見つかったファイル名ぶん、
Pictureコントロールを追加すればいいだけですね。

この回答への補足

済みません、2は自己解決しました。
フォームのプロパティでレコードソースをクエリにするだけでよかったんですね。

補足日時:2010/01/30 09:30
    • good
    • 0
この回答へのお礼

回答ありがとうございます。質問がわかりにくかったかもしれません。

1.フォルダ名を与えてそのフォルダ以下に含まれるすべての画像フォルダの絶対パスを求めるプロシージャは、「http://www.tsware.jp/tips/tips_478.htm」を参考にして作ることができました。しかしイミーディエトウィンドウにリストアップされたパスをフォームのイメージウィンドウに反映させる方法がわからないのです。

2.画像の絶対パスのテーブルからフォーム上に表示して、ボタンで最初から最後まで「全部」を見ることはできます。しかしクエリで抽出したものだけを見ることができていません。

最終的なイメージを申し上げますと、あるID番号を入力するとそのID番号の画像を保存したフォルダのリストが表示され(フォルダはあちこちにあります)、それをクリックすると画像が表示されるというような感じです。

よろしくお願いします。

お礼日時:2010/01/30 08:01

おこたえになっているかわかりませんが、FOMのから、テキスト等が出版されていますのでそちらをご購入されて勉強されのもよいかとおもいます。


参考まで。

いじょう
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!