• ベストアンサー

Access2000でFTPの使い方について。

Access2000のフォームから、実行のボタンをクリックするとFTPサーバに接続→ファイル取得→Accessテーブルに取込→FTPサーバのファイル削除→FTPサーバの接続切断という処理をしたいのですがどのようにしたらよいかわかりません。説明不足だとは思いますが、アドバイスを宜しくお願い致します。

  • edp-k
  • お礼率50% (11/22)

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

  • ベストアンサー
  • gadd3
  • ベストアンサー率46% (211/451)
回答No.2

ちなみに先ほどのFTPサンプルは、BASP21をインストール後、サンプルのコードを新規モジュールに貼り付けて(たとえば以下をまるごと)実行すればAccessでもそのまま動きます。 sub file_download() Dim ftp As Object, rc As Long, v As Variant, v2 As Variant Dim ctr As Long Set ftp = CreateObject("basp21.FTP") ftp.OpenLog "c:\temp\log.txt" rc = ftp.Connect("ftp.microsoft.com", "anonymous", "") If rc = 0 Then v = ftp.GetDir("bussys/winnt/winnt-public", 2) ' ディレクトリ一覧(詳細) If IsArray(v) Then For Each v2 In v Debug.Print v2 Next End If v = ftp.GetDir("bussys/winnt/winnt-public") ' ディレクトリ一覧(ファイル名のみ) If IsArray(v) Then For Each v2 In v Debug.Print v2 Next End If rc = ftp.GetFile("bussys/winnt/winnt-public/*", "c:\temp") 'ファイル受信 end sub 実行には20秒ほどかかります。 実行前にはCドライブにtempというフォルダを作っておいてください。

edp-k
質問者

お礼

ありがとうございました。 参考にさせて頂きます。

その他の回答 (1)

  • gadd3
  • ベストアンサー率46% (211/451)
回答No.1

Access単体ではできないので、APIなどを使うのだと思います。 僕はAPIは面倒くさいので、BASP21というコンポーネント(Dllファイル)を使っています。 これはメールも送れるDLLなので重宝してます。 http://www.hi-ho.ne.jp/babaq/basp21.html インストールはダウンロードしてWクリックするだけです。 FTPの方法 http://www.hi-ho.ne.jp/babaq/basp21f.html 下方の「●Visual Basic」サンプルをご参照ください。 参照設定はしなくてもコード中に「Set ftp = CreateObject("basp21.FTP") 」と1行書けば使えます。 >ファイル取得→Accessテーブルに取込 の部分は、BASP21ではなくAccessのテキストファイル操作か、カンマ区切りなら、テキストファイルのインポートで行います。いったん目的のファイルをダウンロード後、FTP接続を切ったあと、一番最後にやればいいでしょう。

参考URL:
http://www.hi-ho.ne.jp/babaq/basp21.html

関連するQ&A

  • FTPでの連続アクセスについて

    UNIX C言語で作成したプログラムで、 以下のようにFTPコマンドを実行し(※)Linuxのサーバに置かれているファイルを取り込んでいます。 (※)system("ftp ~~ get XXX ~ bye"); プログラム内で上記FTPコマンドを1回実行すると、 Linuxサーバより指定したファイルをちゃんと取得できます。 しかし、間隔を空けずに連続して実行させると、 約3時間ほどで固まってしまう現象が発生します。(再現性100%) 上記現象が起こると、他のパソコンなどからそのサーバにTelnetやFtpで アクセスしても、ユーザ名・パスワードの入力までは進行するのですが、ログイン認証がいつまでも帰ってきません。 Linuxサーバから他サーバへのアクセス(Telnet,Ftp)は問題なくできました。 何が問題なのかよくわかりません。 上記のようにフリーズするまでは、何の問題もなく動いているのです。 ひとたびアクセスできなくなると、再起動しないと復旧しません。 どなたかご教授願いたく。

  • ftp_getできない?

    レンタルサーバの自前のファイルサーバからFTP接続にてファイルを取得しようとしているのですが、エラーとなってしまいます。 FTP接続はできているのですが、ファイルの取得に失敗(FALSE)してしまいます。 レンタルサーバの環境は OS:Linux PHP:4.4.1 試しにftp_nlist関数にてファイル一覧を取得しようとしましたが、やはり失敗(FALSE)してしまいます。 知り合いのレンタルサーバを借用して全く同じプログラムを実行すると正常に一覧の取得ができました。 FTP接続時・ログイン時にはエラーが発生していないのでFTPでの転送は可能だと思うのですが、全くわかりません。 どなたか分かる方ご教授お願いします。 以下、スクリプトです。 if($ftp=ftp_connect($ftp_host)){  if(ftp_login($ftp,$ftp_user,$ftp_pass)){   //ファイルリスト一覧取得    $file_list=ftp_nlist($ftp,".");   var_dump($file_list);   //ファイルダウンロード    if(!(ftp_get($ftp,$local_file,$remote_file,FTP_BINARY))){     エラー処理1;    }   }   else{     エラー処理2;   } } else{  エラー処理3; }

    • ベストアンサー
    • PHP
  • FTP関数について

    FTP関数についての質問です。 自分のHPからFTPを用いてファイルをダウンロードできるように したいため、FTPサーバに接続してファイルをダウンロードさせる ロジックを作ったのですが、うまくいきません。 というのは、私の作ったFTP処理では、サーバ上で実行されるので、 呼び出し元がサーバになり、ファイルはサーバ上にダウンロード されてしまうのです。 そこで質問なのですが、 PHPのFTP関数は、クライアントからプログラムを実行しないと クライアント側にファイルはダウンロードされないのでしょうか?

    • ベストアンサー
    • PHP
  • ACCESSフォーム上のボタン押下時のエラー

    もう一つのACCESSデータベース(DB)から、別なDBに、フォーム、クエリー、テーブル等をコピーして貼り付けた後、貼り付けた先のフォームのボタンをクリックすると、「ファイルへのアクセスでエラーが発生しました。ネットワークへの接続が切断されている可能性があります。」のメッセージが表示されて、実行できません。解決方法をご存知の方は、アドバイスをお願いいたします。

  • ftpアクセスが終了した時、サーバが読込むファイルがわかりません

    今LinuxのproftpをつかってFTPサーバを立てています。 クライアントからFTPアクセスが終了した時に、サーバ側で シェルを実行させようと思っています。 FTPアクセスが終了した時、サーバはどのファイルを読みに 行くのでしょうか?

  • ACCESS2000でトラブル発生です。助けてください。

    今現在ACCESS2000を使ってます。 ある日突然以下のようなエラーが発生して一部 のフォームの機能が使えなくなりました。(使えるものも あります。) 「ファイルへのアクセスでエラーが発生しました。ネット ワークへの接続が切断されている可能性があります。」 OKボタンを押すとコードが出てくるのですが別におかしな ところはありません。 それにエラーメッセージのネットワークへの接続って 言ってもネットワーク関係(リンクも含めて)は使用しておらず、ACCESS単体で 使ってます。修復も実行しましたし、アプリの自動修復機 能も使ってみましたがやはり変わらずです。 これはいったいどういうことなのでしょうか? どなたか助けていただけませんか?

  • ssh経由のftpでファイル一覧が取得できない

    sshのポート転送を利用してftpサーバにアクセスしようとしているのですが,ログインしてから,ファイル一覧を取得するときに,PASVモードで送られてくるアドレスがローカルになってしまうみたいでつながりません.おそらく,サーバの設定が悪いと思うのですが,どのようにしたらよいでしょうか? 一応,ログをのせておきます. >PASV 227 Entering Passive Mode (127,0,0,1,190,89) ダウンロードのためにホスト 127.0.0.1 (48729) に接続しています. 接続できません. ファイル一覧の取得を中止しました. ファイル一覧の取得に失敗しました. 切断しました

  • ACCESSからSQLServerのデータを取得したい

    SQLServerが利用できない環境にデータを持っていくため、以下のようなシステムを考えております。(テーブルのリンクは不可・手動でのデータのエクスポートは不可) 1.ACCESSのフォームに「データベース名」「テーブル名」を入力し、実行ボタン押下 2.ADOでSQLServerに接続 3.指定のテーブルと同じ構造のテーブルをACCESSに作成 4.SQLServerのデータをACCESSにINSERT ここで質問なのですが、ACCESSは自分のデータベースとSQLServerのデータベースに同時に接続できますか? 同時接続した場合のACCESS/SQLServerの書き分けはどのようになるのでしょうか。

  • ftp自動スクリプト

    FTP自動スクリプトに関する質問です。 取得したいファイルのディレクトリが異なっているので、下記のようにシェルスクリプトを作成し、 実行しています。 実行すると、file1は取得できるのですが、file2が取得できません。(シェルが返ってこない。処理が止まる) 手動で行うと、file1,file2両方取得できる場合もあれば、file1のみしか取得できない場合もあります。 (取得できない場合:227 Entering Passive Mode (サーバ名,197,154))が表示されたまま。) そもそも理解(FTPの使い方が間違っている?)が足りない気もしますが、教えていただけると幸いです。 宜しくお願いいたします。 ・ftp_start.txt ----------------------------------------------- open サーバ名 user test **** cd directory1 bin get file1 cd directory2 bin get file2 bye ----------------------------------------------- ・ftp_cmd.sh ----------------------- #!/bin/sh ftp -n < ftp_start.txt ------------------------

  • Accessのデータ共有について

    現在社内の顧客管理システムをAccessにて構築しており、データテーブルファイル(mdb)をファイルサーバに置き、クライアントPCはフォームやクエリだけのmdbを使用してテーブルのリンクでデータ共有しています(Accessのデータ分割ツールにてテーブルとフォーム、クエリを分離しただけの状態で運用しています)。これまでは、この状態でも運用出来ていましたが、データ量が多くなるにつれ、段々動作が重くなってきた為、処理速度改善の為に、以下の二案を検討していますが、どちらの案が効果的なのでしょうか? 【案1】 クライアント用mdbファイルに同じテーブル構成の一時テーブルを作成し、mdbファイル起動時と、「更新」ボタンを別途作成し、「更新」ボタンが押下されたタイミングで、ファイルサーバのデータベースからADOにて一時テーブルに全データを読み込む。更新系の処理は、各クライアントの一時テーブルとファイルサーバのデータベースに対して行う。 【案2】 現状フォームの遷移については、 「DoCmd.OpenForm」関数の引数に検索条件を指定する方法で行っている為、この部分を ・ADOにてデータを取得  ↓ ・遷移後のフォームに値をセット と言った処理に変更する。 また、上記以外の方法で何か良い方法がありましたらご指摘頂ければと思いますので、よろしくお願いします。

専門家に質問してみよう