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

解決済みの質問

Accessから複数拡張子ファイルへのリンク

お世話になります。Access初心者です。
同じような状況を検索してみたものの
うまく自分用に変換できない為質問させて頂きます。

環境:Access2000

やりたいこと:Accessのフォーム上にコマンドボタンを作成し、ボタンをクリックするとハイパーリンクによりサーバー上にあるエクセルやPDF等のファイルが開くようにしたい。
ハイパーリンクの設定はAccess内にある「番号」と同一名称のファイルを自動で開くようにしたいが、ファイルの拡張子は.xls,xlsx,.docやpdf等複数存在する。


できていること:拡張子を1つ指定してファイルを開くことはできる。
以下、.xlsファイルを開くコード。



Private Sub 番号_Click()

Application.FollowHyperlink "サーバー名¥" & Me![番号] & ".xls"

End Sub



このままですと他の拡張子ファイルが開けません。
できれば拡張子を指定しないでファイル名が同一なら開くという設定にしたいのですが
複雑になるようでしたらIF文などで拡張子の数だけ分岐させるのでも結構です。
IF文・・と書いてはいますがそれもどうすればよいのかわからず・・。

説明不足ございましたらご指摘下さい。
どうぞ宜しくお願い致します。

投稿日時 - 2018-07-19 16:13:07

QNo.9519761

困ってます

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

期待のファイルが1つしか見つからなかった場合それを開く。
他方、
"サーバー名¥" & Me![番号] & ".xls"

"サーバー名¥" & Me![番号] & ".txt"
など、期待のファイルが複数あったときには、
それぞれを開くという動作でよければ

Dim buf As String
Const MyPath As String = "サーバー名¥"

buf = Dir(Path & Me![番号] & ".*")
Do While buf <> ""
 MsgBox MyPath & buf
 Application.FollowHyperlink MyPath & buf
 buf = Dir()
Loop

でイケルだろうと思います。

投稿日時 - 2018-07-20 22:49:57

お礼

ご回答いただきましてありがとうございました!
教えていただいた記述で、無事解決することができました!
補足させていただきますと
>buf = Dir(Path & Me![番号] & ".*") の部分は
 buf = Dir(MyPath & Me![番号] & ".*") でうまくいきました。
コメントボックスの部分も大変参考になりました。
素早いご回答をいただきまして本当に感謝しております。
お礼が遅くなり申し訳ございませんでした。
本当にありがとうございました!

投稿日時 - 2018-07-26 10:35:05

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

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

回答(1)

あなたにオススメの質問