カラオケの動画がHDDに保存されていて、ACCESS2000で題名検索し、メディアプレーヤーで演奏したいのですが、次の様にフォームでコマンドボタンのクリック時に
Call Shell("C:\Program Files\Windows Media Player\Wmplayer.exe /Play /Close D:\音楽\カラオケ動画\ああ上野駅.mpg", 1)
とするとちゃんと演奏が始まるのですが、次の様に変数に代入するとメディアプレーヤーは起動するのですが曲が演奏しません
daimei = Me![テキスト17]
Call Shell("C:\Program Files\Windows Media Player\Wmplayer.exe /Play /Close daimei", 1)
どうしたらうまく演奏するのでしょうか、またこの方法ではダメでしょうか、他に良い方法がありましたらお教えください
 ACCESSはあまりよく知りませんのでよろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (11件中1~10件)

ということは、テキスト17には、D:\音楽\カラオケ動画\ああ上野駅.mpg ではなくて


ああ上野駅.mpg だけしか入っていないのでしょうか?
だとしたら、
これをフルパスに補う必要があります。
他の題名も同じなんでしょうかね?
以下、その仮定の下に

Dim Daimei As String
Dim shellStr As String

If Me!テキスト17 = "" Then
  MsgBox "題名を入れてください"
  Exit Sub
End If

Daimei = "D:\音楽\カラオケ動画\" & Me!テキスト17
If Dir(Me!テキスト17) = "" Then
  MsgBox Me!テキスト17 & " が見つかりません"
'  Debug.Print "見つからないのは " & Me!テキスト17
  Exit Sub
End If


shellStr = "C:\Program Files\Windows Media Player\Wmplayer.exe /Play /Close" _
    & Chr(32) & Chr(34) & Daimei & Chr(34)
'Debug.Print "shellStr= " & shellStr
Call Shell(shellStr, windowStyle:=vbNormalFocus)

これでも駄目ならテキスト17の詳しい説明と
テーブルやフィールドの説明も欲しい処。
    • good
    • 0
この回答へのお礼

長い間すみませんでした、この回答を貰ってからなぜか「ベストアンサー」も「お礼」もボタン(バナー?)が出無くなってしまい、OKWAVに質問しても回答が無く、何ともしようがありませんでした、今日見た所、「ベストアンサー」、「お礼」ボタンが出ましたので遅くなりましたが、「ベストアンサー」に選ばせて頂きました。
 結果は、この方法でちゃんと演奏開始し、念願であった「カラオケマシーン」が出来ました。
 本当にありがとうございました。

お礼日時:2011/05/27 21:30

おや?


ではコマンドボタンのクリック時に

Dim Daimei As String
Dim shellStr As String

If Me!テキスト17 = "" Then
  MsgBox "題名を入れてください"
  Exit Sub
End If

If Dir(Me!テキスト17) = "" Then
  MsgBox Me!テキスト17 & " が見つかりません"
  Debug.Print "見つからないのは " & Me!テキスト17
  Exit Sub
End If

Daimei = Me!テキスト17
shellStr = "C:\Program Files\Windows Media Player\Wmplayer.exe /Play /Close" _
    & Chr(32) & Chr(34) & Daimei & Chr(34)
Debug.Print "shellStr= " & shellStr
Call Shell(shellStr, windowStyle:=vbNormalFocus)

としたらイミディエイトウィンドウ(Ctrl + G で出ます)には
どなっていますか?(メディアプレイヤーが出るまで進むかな?)

この回答への補足

>イミディエイトウィンドウ(Ctrl + G で出ます)には
どなっていますか?(メディアプレイヤーが出るまで進むかな?)

この事が良く分かりませんが、ご指導のように書込み実行しますとMedia Playerは起動せず、「ああ上野駅.mpgが見つかりません」と言うメッセージが表示されます。

補足日時:2011/05/01 08:05
    • good
    • 0

脇から失礼します。



Call Shell("C:\Program Files\Windows Media Player\Wmplayer.exe /Play /Close D:\音楽\カラオケ動画\ああ上野駅.mpg", 1)
とするとちゃんと演奏が始まるのですが、次の様に変数に代入するとメディアプレーヤーは起動するのですが曲が演奏しません
Call~の部分を
Call Shell("C:\Program Files\Windows Media Player\Wmplayer.exe /Play /Close daimei", 1)

Call Shell("C:\Program Files\Windows Media Player\Wmplayer.exe /Play /Close" _
& Chr(32) & Chr(34) & daimei & Chr(34), windowStyle:=vbNormalFocus)

とすれば、別のウィンドウが現れて再生が始まるはずです。
が、 /Close で閉じてくれません。
調べたら /Close で閉じられるのは、昔のバージョンまでの様です。
当方、Media Player のバージョンは 10。
バージョンは Media Player のヘルプから分かりますよ。

再生終了したら自動的に閉じてくれないかな・・と、思いついたことを試したり
Google で検索したりしたのですが、Shell で起動した場合は
どうにも分からず・・・。
どうしてこんな単純なことがと思いつつ、これにて失礼。

くじけてしまった 人生が 今日もひとつ 増えてゆく ♪
    • good
    • 0
この回答へのお礼

ご協力ありがとうございます。

おっしゃるように書込み実行しましたが、やはりMedia Playerが起動した所でストップです、演奏開始されません。

因みにMedia PlayerはVER11となっていました。(OSは、WindowsXP)

知識が無くて良く分かりませんが、私なりに考えますに変数のやり方がまずいんじゃないでしょうか?

お礼日時:2011/04/30 06:23

どうもWindows Media Playerに問題が


あるような感じですね。

リンク先のファイルは使用できましたか。
一応、ZIPファイルになっているので
解凍(展開)しなければいけませんが。
展開すればフォルダの中にAccess2000形式の
mdbファイルが入っています。

使い方はNo6で述べましたが、テキストボックスの
文字フォントがすべてTahomaになっているので、
テキストボックスのフォント名を各テキストボックスの
プロパティからMSゴシックなどにすれば日本語表記になります。

ファイルのテーブルのMediaPthとMediaNameに
フォルダへのパスとファイルの名前を入れておけば
そのまま使用できます。フォームやWindows Media Player
の大きさはデザインビューにして広げれば快適に
使用できます。なお、OSによってはファイルを
起動するときにセキュリティの警告メッセージが出ますが、
新しいAccessのファイルにすべてインポートすれば
警告は出なくなると思います。

このファイルの主要な部分はNo4で示したコード
だけです。その他は使用上の便宜を図るための
ものに過ぎません。

また、一度Windows Media Playerのバージョンアップを
してみてはどうでしょう。
    • good
    • 0
この回答へのお礼

>解凍(展開)しなければいけませんが。
展開すればフォルダの中にAccess2000形式の
mdbファイルが入っています。

展開して、Access2000形式のmdbファイルは立ち上がったのですが、その後砂時計が出て何ともなりません。
Media Playerは、通常に使用する場合は正常に動作します。
誠にご迷惑をおかけしております。

お礼日時:2011/04/28 21:04

海外のサンプルですが、


http://www.access-programmers.co.uk/forums/showt …
この下のほうに
AccessMediaPlay3.zip
というサンプルファイルがあります。このファイルは
Access2000形式です。かなり作りこんであるファイルなので
プログラムの内容はわかりにくいかもしれません。
このファイルを開いて、フォームが表示されるようであれば
Windows Media Playerは設定できるはずですが。もし
フォームを開いてもエラーが生じるようであれば
Windows Media Playerがインストールされていないか、
あるいはWindows Media Playerに何らかの問題が
ある可能性があります。


一応、使い方をいいますと、Media Pathというボタンを
クリックします。するとダイアログが表示されるので、
ファイルがあるフォルダに移動し、ファイルを選択します。
MediaPathとMediaNameの二つのテキストボックス部分に
それぞれ表示が終わったらメディアプレイヤの再生ボタン
をクリックします。

なお、このファイルのテーブルのMediaPthにはファイルが
収められているフォルダのパス、MediaNameはファイルの
名前を入れています。

フォームでファイルを選択すれば自動的にテーブルにファイルが
格納されているフォルダへのパスとファイル名が保存されます。
Nextのボタンを押して新しいレコードのフィールドに移動して
次のファイルを選択すれば次のファイルのデータが保存されます。
    • good
    • 0
この回答へのお礼

御親切に何度もありがとうございます。
>このファイルを開いて、フォームが表示されるようであれば
Windows Media Playerは設定できるはずですが。

やはり同じように砂時計が出ていつまで待っても表示されません(応答なしと表示されています)
ほんとにどうもすみません。

お礼日時:2011/04/28 17:26

>そのようにやりましたが、なぜか砂時計が


>出たままMedia Playerが張り付きません

初めてメディアプレイヤを設定するときは
しばらく砂時計のままになります。
たいていの場合はそのうちにメディアプレイヤ
が張り付くはずなのですが。

保存ボタンを押したらどうなりますか?

この回答への補足

砂時計が出ると、クリックボタンもフォ-ムの閉じるボタンも反応しなくなります。(上のブルーの帯にACCESS(応答なし)と出ます)

補足日時:2011/04/28 06:31
    • good
    • 0

追加です。

Windows Media Playerの設定は、
フォームをデザインビューで開き、ツールボックスを
表示させ、ツールボックスの工事マーク(コントロールの選択)
をクリックし、表示された表をずーっと下に移動させ、
表の一番下あたりにあるWindows Media Playerをクリックし、
フォームの適当な場所に四角を書くように設定します。

この回答への補足

ありがとうございます
 そのようにやりましたが、なぜか砂時計が出たままMedia Playerが張り付きません

補足日時:2011/04/27 22:18
    • good
    • 0

No2です。

少し説明を加えておきます。


(1)
テーブルを新規に作成し、たとえばデータという
名前でフィールドを作成し、フィールドの型を
テキスト型にします。テーブル名をたとえば
Tファイルとします。

テーブル名  フィールド名  型
Tファイル   データ    テキスト型


「データ」にはファイルまでのパス、たとえば質問にあるような
D:\音楽\カラオケ動画\ああ上野駅.mpg
などを入れておきます。

(2)
フォームをデザインビューで開き、フォームの
レコードソースにTファイルを指定します。
テキストボックスを一つ設定し、その名前を
txPathとします。そのコントロールソースを
データとします。


(3)
次に、フォームにWindows Media Playerを
設定し、その名前をmyWindowsMediaPlayer
とします。


(4)
フォームのコード表を表示し、以下を貼り付け
保存します。

Private Sub Form_Current()
Dim strPath As String
If IsNull(Me!txPath) = False Then
strPath = Me!txPath
Me!myWindowsMediaPlayer.URL = strPath
End If
'レコードを移動させてテキストボックスが
'空のデータを示したとき稼動を中断
If Me.NewRecord = True Then Me.WindowsMediaPlayer1.URL = ""
End Aub




以上で、設定が終わります。
表示したいファイルはフォームの下にある
レコードの移動で選択できます。
もっと気のきいた選択方法もありますが、
まずはこれで確認してみてください。
一部、紹介した回答と重なりますが、作り方は
このようにします。あとは、回答の中身も
読んでみてください。
    • good
    • 0
この回答へのお礼

再度のご回答を頂きありがとうございます。
ご丁寧に説明していただいたのに、どうしても私には難しくて理解できません
ほんとうにすみません。

お礼日時:2011/04/27 22:03

>・・・・Close daimei", 1)と””の中にdaimei(daimeiという変数(名)なのだから)を入れのは、初歩的な誤り。


>ACCESSはあまりよく知りませんのでよろしくお
アクセスの問題とはいえませんでしょう。
ーー
Sub test01()
daimei = "http://www.aoitorinouta.com/asobi/kimigayo.mp3"
Call Shell("C:\Program Files\Windows Media Player\Wmplayer.exe /Play /Close " & daimei, 1)
End Sub
でテストすると演奏しました。

この回答への補足

 ありがとうございます
私の説明不足ですが、カラオケファイルは100以上あって、ACCESSではファイル名と同じ題名をデータとして登録したテーブルが作成してあります、この中からフォームを使って題名を検索します、検索によって表示された曲をアクションボタンを使って演奏開始したいので、テキストボックスに表示された題名を変数に代入したいと言う考えなのですが....だめでしょうか
ご迷惑をお掛けし、どうもすみません

補足日時:2011/04/27 22:31
    • good
    • 0

以前、同様の質問に回答しています。



http://oshiete1.watch.impress.co.jp/qa6341088.html

上記の方法はAccess2000でも動作します。
確認してみてください。

わからないことがあれば補足してください。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございました。
この方法は見ましたが、私にはどうも理解でき無かったので研究してみます。

お礼日時:2011/04/27 19:41

このQ&Aに関連する人気のQ&A

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


人気Q&Aランキング