
いつも楽しく勉強させていただいております。
環境はWin7、Office2007、MySQL5.5.28です。
データはMySQL上にあり、それを集計した結果をExcelまたはcsv形式で取り出すプログラムを開発中です。
集計の表側(ブレークダウン)や絞込みの条件は可変なので、AccessでMySQLに渡すコマンドを編集し、テキストファイルとして出力します。
このテキストファイルを実行するのに目下のところ次の二通りで行っています。
1.MySQLのクライアント画面から下記のように実行
source C:\Users\meglin\Documents\サマリー.sql
2.コマンドプロンプト画面から下記のように実行
"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql" -u root -D meglindb -proot < C:\Users\meglin\Documents\サマリー.sql
どちらの方法でも快適に動きます。
近々そのプログラムを運用ベースに乗せたいのですが、オペレーションをする上司が「あの黒い画面(MySQLのクライアント画面/コマンドプロンプト画面)を触るのがコワイ。すべてAccessから対応できないか」と言います。
要するに上記コマンドのサマリー.sqlをAccessの中から起動したいのです。
できますでしょうか。
おそらくShell関数を使うのだと思って下記のように書いてみたのですが、うまく動いてくれません。
Shell("""C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql"" -u root -D meglindb -proot < C:\Users\meglin\Documents\サマリー.sql")
どうしたらいいでしょうか。
最初はAccessからMySQLにODBC接続とADOで1行ずつ実行してみたのですが、集計の列と行が多いので処理時間がかかり実用的ではありません。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>黒い画面
vbsなどで以下のような処理をしてみては?
'test.vbs
Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("コマンド・・・", 0)
yambejpさん、回答ありがとうございます。
結果からいうとNGでした。
Ret = WshShell.Run("""C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql"" -u root -D meglindb -proot < C:\Users\meglin\Documents\サマリー.sql",0)
としてみたのですが、結果は変わらず(正常に動けば集計後のイメージのテーブルができます)。
第二パラメータの0を取って
Ret = WshShell.Run("""C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql"" -u root -D meglindb -proot < C:\Users\meglin\Documents\サマリー.sql")
とやってみたのですが、黒い画面が一瞬開いて文字列がどーっと流れるのが見えるのでMySQLの起動はできているのだと思います。
yambejpさんのヒントは参考になりましたが、きっと私のサマリー.sqlファイルを渡す書き方がマズいのでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLServer(MSDE) JOBの状態取得...
-
xp_cmdshellについて
-
DTexec でSSISパッケージを実行...
-
AccessのDAO.ExecuteとDoCmd.Ru...
-
WHERE句の?
-
SQLサーバーのジョブでのexeフ...
-
ユーザー定義関数内でのsp_exec...
-
SQLの実行時間を測定するには?
-
Excelフィルタ抽出で「検索して...
-
.SQLファイルをvbaで実行
-
99bb.com のライセンスバック...
-
SQLServerへのOpen命令でのエラー
-
JavaサーブレットからSQL Serve...
-
GROUP BYでエラーが発生
-
20人程度が一度に使うデータベ...
-
現在、svchost.exeが常時CPU使...
-
Buffalo "Terastation"にMySQL...
-
VBのソース上からAccessのmdbフ...
-
エクセルマクロで指定範囲内の...
-
ストアドプロシージャの実行に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel-VBAの「しばらくお待ちく...
-
SQLCMDにて教えていただきたい...
-
AccessのDAO.ExecuteとDoCmd.Ru...
-
SQLサーバーのジョブでのexeフ...
-
Excelフィルタ抽出で「検索して...
-
SQL-Loaderが動かないです。
-
バッチでのSQL実行結果の分岐処...
-
インデックスの断片化が解消さ...
-
オラクルインストールユーザ以...
-
SQLServerのジョブからバッチを...
-
バッチからSQLCMDを実行する方法
-
アクションクエリが実行できない
-
バッチからメンテナンスプラン...
-
IDENTITY列を持つテーブルへBCP...
-
【Oracle】ADOでSELECT * FROM ...
-
xp_cmdshellについて
-
サーバーと実行端末が違う場合...
-
ユーザー定義関数内でのsp_exec...
-
静的SQL、動的SQL?
-
ストアドの速度がクエリの30...
おすすめ情報