• ベストアンサー

MS-Accessで音声データの出力について

まず、Accessのテーブル上にOLEオブジェクト型のフィールドを取り、そこにMIDI形式のデータを挿入をしています。 そのテーブルからウィザードでフォームを作成すると、音声データが張り付いたフォームが作成されます。 これを実行して、そのフォーム上の音声データのコントロールをダブルクリックすると確かに 音声が出力されるのですが、別のボタンをクリック時に音声を出力する方法はないでしょうか。マクロでもVBAコードでも構いません。 あまり上手く説明できなく申し訳ありませんが、どなたか分かりましたら宜しくお願い致します。

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

>読み込みに時間が少しかかるのですが、これを短縮する方法ってありますでしょうか。 私が作った物は、wavファイル自体が小さく、 数も少なかったので、特に気になりませんでした。 時間がかかる原因については、ハッキリした事は分かりませんが、 OLEで埋め込むとファイルサイズが大きくなるので、 それが原因かも知れませんね。 ちょっと、視点を変えて、別の方法を提案してみます。 VBAで直接ファイルを再生する方法です。 音楽再生の方法はこちらを参考に。 http://okwave.jp/qa2576176.html MIDIファイルは何処かのフォルダに保存しておきます。 データベースにはそのファイル名を登録します。 ボタンを押した時に、VBAからMIDIファイルを再生します。 この方法だと、データベースは軽くなるので、改善するかもしれませんね。 実際試してみないと、どうなるかは分かりませんが・・・(^^;

NashB
質問者

お礼

ありがとうございました。 大変参考になりました。 確かにファイルを直接再生したほうが開始は早いようです。 助かりました。

その他の回答 (1)

  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

wavファイルで同様のフォームを作ったことがあります。 ----以下手順---- 音声データのコントロールの名前が「連結OLE1」とします。 コマンドボタンを追加し、プロパティ→イベント→クリック時 イベントプロシージャを選択し、編集画面へ Private Sub コマンド1_Click()  Me.連結OLE1.Action = acOLEActivate End Sub ----以上手順---- MIDIの場合は試していませんので、 うまく行かなかったらごめんなさい。

NashB
質問者

補足

ご回答ありがとうございます。 早速試してみたところ、MIDIでも出来ました。 ありがとうございました。 ちなみに、読み込みに時間が少しかかるのですが、これを短縮する方法ってありますでしょうか。 もし、なければこのままでいきますので。 すいませんが宜しくお願い致します。

関連するQ&A