人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

AccessVBAにてhttps://server/webDavというWebDavフォルダにアクセスしようと思っています。実際のサンプルプログラムを教えてくれた方に最低100ポイント差し上げます。よろしくお願いします。
以下が条件です。
・サーバはWin2000Server。IISでhttps(認証有り。)にてWebフォルダを共有。
・クライアントはWin2000 or XP。Accessも2000以上。
・ファイル・フォルダのコピー(送受信)・削除をしたい。
・実際はInternetで行います。ファイルの送受信の失敗成功を可能な限り拾いたい。(WebDavはhttpと違ってその辺は大丈夫なんでしょうか?)
認証つきのサイトにAccessVBAでアクセスさえ完了できれば通常のローカルファイル操作の感覚で出来るのでは?と思っているのですが・・・。

●質問者: matttsu
●カテゴリ:コンピュータ
✍キーワード:access HTTP HTTPS IIS Internet
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● さぶろー
●100ポイント

http://www.ki.rim.or.jp/~kuro/WebDAV/index.html

WebDAVを使ったスクリプトは、このサイトに実践的な説明があります。


「Microsoft DOMとの戦い」の2コンテンツに、XMLHttpRequestオブジェクトを使用したサンプルがあります。

VBScriptですが、VBAでも同じ感覚でできると思います。


SSLは、昔試した時に出来たのですがやり方を忘れてしまいました。

おそらく、httpをhttpsに変えるだけでいいはずです。

その時はInternetでも問題なくファイルの送受信ができました。




基本的な流れは以下のようになります。


’XMLHttpRequestオブジェクトを作成

Dim objRequest

set objRequest= WScript.CreateObject("Microsoft.XMLHTTP")


’WebDAV要求コマンドをセット(最後の引数は、同期・非同期のフラグ)

objRequest.open "GET", "http://localhost/index.htm", False


’必要なヘッダがあればセット

objRequest.setRequestHeader "hoge", "fuga"


’要求を送信

objRequest.send


’レスポンスを取得して処理

Msgbox objRequest.responseText




ファイルの送信なら、PUT要求を使えばいいはずです。

送受信の結果はobjRequest.Statusあたりで取れるのではないでしょうか。

◎質問者からの返答

ありがとうございます。

教えていただいたページのとおりこのようなスクリプトは出来ました。

ただこの場合サーバ上のフォルダからサーバ上のフォルダですよね?

GETでローカルフォルダにサーバ上のファイルをダウンロードする or PUTでローカルファイルをサーバにアップするやり方はどうすればよいのでしょう?

ローカルフォルダの指定って出来ないのでしょうか?

putで試してみたら403エラーになってしまいます。copyは出来るし、IEのWebフォルダからだとアップロードはうまくいくんですが・・。

objRequest.Open "PUT", "https://server/webDav/", False, "user", "password"

objRequest.Send "C:\Test.txt"


2 ● ohmix1
●100ポイント ベストアンサー

XMLHTTPでUploadするにはエンコード処理とかが必要になってきます。


OLE DBにWebDav用のプロバイダがあるようなので、こっちのほうが簡単かもしれません。

http://q.hatena.ne.jp/1108018134


>通常のローカルファイル操作の感覚で出来るのでは?


XPならWebDAVをドライブに接続したりできるので何でもできそうですが、2000ではわかりません。

◎質問者からの返答

時間が無いのでとりあえず返信だけ。

ありがとうございます。

教えていただいた方法でファイルのアップロードが出来ました。

ちゃんとIISのログにも「Microsoft+Data+Access+Internet+Publishing+Provider+DAV+1.1」と出ています。

ただフォルダの移動がOLE DBだと出来ないっぽいですね。

その場合は上のXMLHttpRequestでやるしかないのかな・・。

ファイルの移動や削除はXMLHttpRequestでも出来るのにフォルダだと403になってしまうんですよね。

ただこれ以上はちょっと質問の内容が違ってきてしまいそうなので明日にでも新しい質問を起こそうと思います。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ