[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『phpMyAdminのデータを自動取得するマクロで困っています。』(むっしー)
サーバー上のphpMyAdminにアクセスし、指定したSQLのデータをcsv形式でダウンロードするマクロを組んでいます。
Set objIE = New InternetExplorer objIE.Visible = True objIE.AddressBar = False
Dim auth As String Dim sId As String, sPass As String, sIdPass As String Dim sURL As String
sId = "hoge" sPass = "hogehoge" sIdPass = Call_EncodeBase64(sId & ":" & sPass)
'■認証情報を作成する auth = "Authorization: Basic " & sIdPass & vbCrLf
'■■ hoges テーブル sURL = "https://phpmyadminXXXX.jp/tbl_export.php?db=hoge_01&table=hoges&printview=1&sql_query=SELECT+id%2C+FROM+hoges+WHERE+1%0A%0A&single_table=true" '■Basic認証画面を自動ログインする objIE.navigate sURL, headers:=auth
'IEを待機 Do While objIE.Busy = True Or objIE.readyState < 3 DoEvents Loop Application.Wait ([Now() + (2 / (60 * 60 * 24))])
'■Basic認証後、画面が自動遷移するのでそのアドレスをもとにgetパラメータ等を取得 ' ※一部のGETパラメーターがPOSTに使用されるため
'定義 Dim postData Dim Stream
Dim query As String query = Mid(objIE.LocationURL, InStrRev(objIE.LocationURL, "?") + 1) & "&export_type=table&export_method=quick...<POSTする要素を羅列>...knjenc=&xkana="
'Stremの生成 Set Stream = CreateObject("ADODB.Stream") Stream.Open Stream.Charset = "Shift_JIS" '文字コード Stream.WriteText (query) 'POST値をGET形式で指定する Stream.Position = 0 Stream.Type = 1 postData = Stream.Read Stream.Close
' ■Cookie情報を取得、セット Dim cookie cookie = objIE.document.cookie auth = "Authorization: Basic " & sIdPass & vbCrLf & _ "Cookie: " & cookie
objIE.navigate "https://phpmyadminXXXX.jp/export.php", , , postData, auth
最初はnavigateではなく、実行ボタンの.Clickで動かそうとしていたのですが、(認証情報が送信されていない関係で?)上手くいかず、実行先のアドレスに直接遷移する方法を試していました。
このようにしたところ、phpMyAdminからは「undefined index」というエラーが返ってきており、どうやらPostDataが上手く設定されていない様子です。
(queryの中にしっかり書いてあるパラメーターも「undefined」となってしまうので…)
phpMyAdminの仕様なのかもしれませんが、調べても全然解決できず、困っています。
質問は、
・このマクロの問題点はどこか(なぜPostDataが送信されないのか)
・ほかの方法で同様の結果(csvダウンロード)を得る方法はないか
の2点です。
よろしくお願いいたします。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
まあ無理に自動化しなくていいか、と思いつつ、chromeでページを開いてユーザーが自分でクリックする形の手動バージョンも作りました。めっちゃすっきりさっくり動きます笑。
たしかにこれで十分かもしれない、とは思うのですが、やはり自動でやりたい気持ちもあり…。ここまで来ると意地ですね笑。
→ 間をとって SendKeys で作ってみました。かなりの力技ですが、それなりにきれいに動きます笑。
(むっしー) 2022/04/16(土) 15:09
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.