こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ACCESS VBA 写真のパスを取得

ACCESS2010で写真のパスをテキストに取得して、データとして保存します。
それと、写真を表示のボタンをつけて、その写真をフォームのテキストに
表示したいと思っています。
ACCESS VBAのサンプル等ありませんか?

宜しくお願いします

投稿日時 - 2020-01-15 15:17:22

QNo.9701909

すぐに回答ほしいです

質問者が選んだベストアンサー

回答したけどリンク先が表示禁止先なのか回答が出てこないのでそのサイトのコードを多少変えて記載します。
Me.テキスト.Valueを表示したいテキストボックス名に変更してください。

Private Sub コマンド_Click()
'参照設定 [ツール] メニューの [参照設定] をクリックします。
'[Microsoft Office 14.0 Object Library] チェック ボックスをオンにします。

On Error Resume Next
'変数定義
Dim intRet As Integer 'ダイアログ用変数
Dim GetFileName As String 'フルパスの値

With Application.FileDialog(msoFileDialogOpen)
'ダイアログのタイトルを設定
.Title = "ファイルを開くダイアログ"
'ファイルの種類を設定
.Filters.Clear
.Filters.Add "JPGファイル", "*.jpg"'すべてのファイルの場合ここはいらない
.FilterIndex = 1
'複数ファイル選択を許可しない
.AllowMultiSelect = False
'初期パスを設定
.InitialFileName = CurrentProject.Path
'ダイアログを表示
intRet = .Show

If intRet <> 0 Then
'ファイルが選択されたとき
'そのフルパスを返り値に設定
GetFileName = Trim(.SelectedItems.Item(1))
Else
'ファイルが選択されなければブランク
GetFileName = ""
End If
End With
'選択されたフルパスをテキストボックスへ表示
Me.テキスト.Value = GetFileName
End Sub

投稿日時 - 2020-01-15 18:20:48

お礼

大変ありがとうございます。
教えて頂いた内容を組み込んでテストしてみます

投稿日時 - 2020-01-15 20:09:26

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

質問の意図がよくわからないが、補足しては?
小生は全く誤解しているかもしれないが、その際は後免。
>写真のパスをテキストに取得して
挿入者やVBAでやっている場合は挿入操作者か、VBAのコード作成者しか画像ファイルのパス名やファイル名は判らないと思います。
>テキストに取得して、データとして保存します。
は判っている人がコードを組むのですか?
>写真を表示のボタンをつけて、その写真をフォームのテキストに
表示したいと思っています。
テキストに保存とはどういうこと?
パスとファイル名のテキスト(文字列)をテキストボックスに表示するということ?
写真は画像ファイルで、テキストではなかろう。
==
エクセルのシートやワードの文書、アクセスのフォームなどには、実行中に画像は見えて居ても、WEBのHTML文のように画像ファイル名は(テキストでは)埋め込まれていないのでは、と思った次第。
===
フォームに写真を表示したいということなら、こういう機能のある、「イメージ」などのコントロールをつかえばよいので、AccessVBAをやるほどの人が質問するのが、不思議。
===
エクセルでやってみた。
ユーザーフォームにテキストボックス2つ
コマンドボタン2つ
イメージ2つ
設けて、(それぞれが対応していて、簡単のために、2ペア分に抑えているものです。)
Private Sub CommandButton1_Click()
f1 = UserForm1.TextBox1.Text
MsgBox f1
UserForm1.Image1.Picture = LoadPicture(f1)
End Sub
Private Sub CommandButton2_Click()
f2 = UserForm1.TextBox2.Text
MsgBox f2
UserForm1.Image2.Picture = LoadPicture(f2)
End Sub
ーーー
Private Sub UserForm_Initialize()
UserForm1.TextBox1.Text = "C:\Users\XX\Pictures\PC040YYY.JPG"
UserForm1.TextBox2.Text = "C:\Users\XX\Pictures\PC040ZZZ.JPG"
End Sub
(”C:\Users\XX\Pictures\PC040YYY.JPG"のところは、質問者が使える写真の
ファイル名をフルパスで置き換えてください。)
こんなイメージ=パターン=型 でよいのかな。
==
でも
CommandButton1_Click()
CommandButton2_Click()
と写真の表示窓の個数だけ似たコードを連ねるのは、カッコ悪い。
これの打開策こそ質問したいことではないのか?
ーー
それは難しい課題なので、説明はWEB照会(VBA ユーザーフォーム コントロール配列などで)して出てくる記事を勉強することになるだろう。

投稿日時 - 2020-01-15 18:04:04

ANo.1

参考にしてください。
イメージコントロールによるイメージビュアーの作り方
https://tsware.jp/tips/tips_487.htm

投稿日時 - 2020-01-15 15:42:49

補足

kkkkkmさん
ありがとうございます。
写真をテキストに表示はわかりました。
可能であれば、Access2010からエクスプローラ―を開いて、写真の場所を特定して
パスをテキストにセットするやり方をご教授をお願いします、
宜しくお願い致します

投稿日時 - 2020-01-15 17:15:18

あなたにオススメの質問