プロが教えるわが家の防犯対策術!

こちらの過去のQ/Aを参考にして作成してみましたが、表題の方法が
よくわかりません。

わたしが行ったのは・・・、
・表示したいファイル名のフルパスを持つフィールドをテーブルに持つ。
 (テキスト属性)
・フォームにそのフィールドを可視で配置する。
・フォームにイメージコントロールを配置する。
・Form_Loadイベントで、そのフィールドがnullでなければ、イメージ
 コントロールのPictureプロパティに、そのフィールドのValueを
 セットする。

この方法だと、あらかじめテーブルのフィールドに画像ファイルの
フルパスをセットする必要がありますが、それを「ファイルを開く」
ダイアログボックスで選択し、自動で入力できるようにしたいのです。

何かいい方法はあるでしょうか。

A 回答 (2件)

ACCESSでは「ファイルを開く」ダイアログを利用できません。


そこで、EXCELオブジェクトを宣言して「ファイルを開く」ダイアログを利用します。

注意点1
ダイアログが表示されない?という場合はAlt+Tabで切り替えが必要
注意点2
ファイル名はフルパス+ファイル名なので適宜分解してください。



Dim objXLS As Object
Dim varFileName As Variant

Set objXLS = CreateObject("Excel.Application")

' Excelの [名前を付けて保存] ダイアログを開き、保存ファイル名を取得
varFileName = objXLS.GetOpenFilename("EXCELファイル (*.xls),*.xls")

If varFileName = False Then
  MsgBox "取り消しが押された"
Else
  'varFileNameにはフルパスとファイル名が格納されている
  MsgBox varFileName
End If

'無効化しないとえらいことになる
Set objXLS = Nothing
    • good
    • 0

#1です。

一部追加・訂正します。

-追加------------------------------
注意点3
当然ながらACCESS VBAの参照設定でEXCELの指定が必要


-訂正(誤)------------------------------
' Excelの [名前を付けて保存] ダイアログを開き、保存ファイル名を取得
-訂正(以下に訂正)-----------------------
' Excelの [ファイルを開く] ダイアログを開き、対象ファイル名を取得
    • good
    • 0
この回答へのお礼

迅速・丁寧な対応、ありがとうございました。
さっそくやってみたところ、うまくいきました。
やはりACCESSでは無理だったのですね。
わたしになど、EXCELオブジェクトを利用するなど、
考えも及ばなかったです。(^^;)
本当に、ありがとうございました。

お礼日時:2005/09/18 22:59

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