Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1111 / 2272 ツリー ←次へ | 前へ→

【8741】ファイルの表示についての質問 なんたろう 06/10/27(金) 19:29 質問[未読]
【8742】Re:ファイルの表示についての質問 まさ7251 06/10/27(金) 21:22 発言[未読]
【8743】Re:ファイルの表示についての質問 なんたろう 06/10/27(金) 21:51 質問[未読]
【8744】Re:ファイルの表示についての質問 なんたろう 06/10/27(金) 22:19 質問[未読]
【8745】Re:ファイルの表示についての質問 まさ7251 06/10/28(土) 7:31 回答[未読]
【8746】Re:ファイルの表示についての質問 なんたろう 06/10/28(土) 14:31 発言[未読]
【8747】Re:ファイルの表示についての質問 まさ7251 06/10/28(土) 16:48 回答[未読]
【8748】Re:ファイルの表示についての質問 なんたろう 06/10/28(土) 20:05 お礼[未読]

【8741】ファイルの表示についての質問
質問  なんたろう  - 06/10/27(金) 19:29 -

引用なし
パスワード
   こんばんは。
現在医薬品のDBを作成中です。
薬に関する文献(PDF)を一緒に管理できないのかな?と思い試しています。

テーブル1
医薬品の情報テーブル

テーブル2
文献の保存先(フルパス)テーブル

の二つのテーブルを作り、
テーブル2はテーブル1のサブフォーム(帳票フォーム)として表示しています。
テーブル2のサブフォームにコマンドボタンを付け、
クリックするとPDFが開くという形にしたいのですが、うまくいきません。
(出来る内容かもわからないのですが…)
VBAは得意ではないので、マクロでと思いましたが、どうやらできないようで、
VBAの本を買ってみましたが、いまいちどれが該当するコードかがわかりません。

Shell関数というのは試してみましたが(エラーコード5)というのが出てきました。(失敗したと思って書いたコードは消してしまいました。必要であれば再度書いて表示致します)

ちなみに、ウィンドウズXPでアクセス2000を使用しています。
VBAの本は買ったので、使用するコードのヒントなど教えていただけないでしょうか?
よろしくお願いします。

【8742】Re:ファイルの表示についての質問
発言  まさ7251  - 06/10/27(金) 21:22 -

引用なし
パスワード
   >クリックするとPDFが開くという形にしたいのですが、うまくいきません。
>(出来る内容かもわからないのですが…)
>VBAは得意ではないので、マクロでと思いましたが、どうやらできないようで、
>VBAの本を買ってみましたが、いまいちどれが該当するコードかがわかりません。
>
>Shell関数というのは試してみましたが(エラーコード5)というのが出てきました。(失敗したと思って書いたコードは消してしまいました。必要であれば再度書いて表示致します)

Shell関数で良いと思いますよ。
どのように書いたのかがあれば、アドバイスがつきやすいかと思います。

何もない状態では、ヘルプとかWEBで検索するとかで
使用方法を確認してください。としか言いようが無いですが。

【8743】Re:ファイルの表示についての質問
質問  なんたろう  - 06/10/27(金) 21:51 -

引用なし
パスワード
   まささん回答ありがとうございます。

>Shell関数で良いと思いますよ。
>どのように書いたのかがあれば、アドバイスがつきやすいかと思います。

下記のコードを書いてみました。本に載っていたとおりに書いてみたのですが、
デバッグはフルパス名の行ででてきます。

Private Sub 表示_Click()

Dim AppID,ApName As String

ApName="フルパス名"
AppID=Shell(ApName,vbNormalFocus)
AppActive AppID

End Sub

いかがなものでしょうか?

【8744】Re:ファイルの表示についての質問
質問  なんたろう  - 06/10/27(金) 22:19 -

引用なし
パスワード
   まささんスミマセン。
先程のデバッグの位置とコードが間違ってました。

Private Sub 表示_Click()
Dim AppID, ApName As String

ApName = "C:\Documents and Settings\***\デスクトップ\AAA.pdf"
AppID = Shell(ApName, vbNormalFocus) ←ここでデバッグ
AppActivate AppID

End Sub

実行時エラー5
プロシージャの呼び出し又は引数が不正です。

というのがでてきました。

【8745】Re:ファイルの表示についての質問
回答  まさ7251  - 06/10/28(土) 7:31 -

引用なし
パスワード
   >Private Sub 表示_Click()
>Dim AppID, ApName As String
>
> ApName = "C:\Documents and Settings\***\デスクトップ\AAA.pdf"
> AppID = Shell(ApName, vbNormalFocus) ←ここでデバッグ
> AppActivate AppID

Shell関数には、実行ファイルを指定する必要があります。
Adobe Reader 7.0なら、例えば、
"C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"

AppID = Shell("""C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"" " & ApName, vbNormalFocus)

【8746】Re:ファイルの表示についての質問
発言  なんたろう  - 06/10/28(土) 14:31 -

引用なし
パスワード
   まささん
ありがとうございます!動きました。

>Shell関数には、実行ファイルを指定する必要があります。
>Adobe Reader 7.0なら、例えば、
>"C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"

上記の実行ファイルですがAdobe Reader のバージョンを試しに
変えてみたら、エラーが出ました。
Adobe Reader のバージョンは関係なく開けるようにする方法って
あるのでしょうか?

【8747】Re:ファイルの表示についての質問
回答  まさ7251  - 06/10/28(土) 16:48 -

引用なし
パスワード
   >>Shell関数には、実行ファイルを指定する必要があります。
>>Adobe Reader 7.0なら、例えば、
>>"C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"
>
>上記の実行ファイルですがAdobe Reader のバージョンを試しに
>変えてみたら、エラーが出ました。

EXEまでのフルパスが異なるからエラーになりますね。
また、端末によってインストール先が異なる場合もエラーですね。

>Adobe Reader のバージョンは関係なく開けるようにする方法って
>あるのでしょうか?

1.ShellExecute(API関数)を使うか。
2.start コマンドを使うか。(Windows2000より前は使用不可だと思います。)

1.
参考 http://www.dokidoki.ne.jp/home2/masa7251/tips/api/api00002.html
ただし、Me.hwnd は、application.hWndAccessApp に変更。(未確認)

2.
AppID = Shell("cmd /c ""start " & ApName & """", vbNormalFocus)

【8748】Re:ファイルの表示についての質問
お礼  なんたろう  - 06/10/28(土) 20:05 -

引用なし
パスワード
   ▼まさ7251 さん:
返信が遅くなりすみません。
教えていただいた、内容は本を見ながら理解している最中で、
もう少し、時間がかかりそうです。
また、いきずまったら、質問させていただきます。
今回はどうもありがとうございました。

1111 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078210
(SS)C-BOARD v3.8 is Free