• 締切済み
  • 暇なときにでも

ACCESS VBAでサーバー起動しているか確認

ACCESS2000でOracle8iとODBC接続しております。 接続先サーバーが複数あり、それぞれテーブルリンクしてVBAで処理を記述しております。サーバーが起動していないと当然以下のエラーで接続が失敗します。  ■実行時エラー '3151':ODBC 'データベース' への接続に失敗しました。 各接続先サーバーは夕方~22時までの間にランダムで終了します。顧客の状況でそうなってしまいます。起動しているサーバーだけ処理させるために3151のエラー処理を追加したのですが、タイムアウトまでうっとうしく感じます。 そこで、PINGのようなイメージで先にサーバーの起動確認し、起動していたら処理を実行させるといったことを考えましたが、VBAでそのような方法はありますでしょうか。その他、このような場合の良い方法(発想)などありましたらご教授いただけないでしょうか。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数6128
  • ありがとう数4

みんなの回答

  • 回答No.1

Function GetPingStatus(ByVal Address As String) As Boolean 'GetPingStatus("192.168.0.1 等")か、GetPingStatus("コンピュータ名") 'Trueが返ってくれば疎通OK Dim obj As Object   For Each obj In GetObject("winmgmts:\\.\root\cimv2") _       .ExecQuery( _       "SELECT * FROM Win32_PingStatus" & _       " WHERE Address = '" & Address & "'", , &H30)     GetPingStatus = IIf(Nz(obj.StatusCode, 1) = 0, True, False)   Next End Function ネタ元はこちら サービスがダウンしたときに通知を受け取る方法はありますか http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/sept04/hey0914.mspx こちらも参考に サービスがダウンしたときに通知を受け取る方法はありますか http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/sept04/hey0903.mspx でも処理中にブチッとやられたら・・・どうしたもんでしょね。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答いただきましてありがとうございます。お礼が遅くなりまして申し訳ありません。処理中に電源切られたら、ほんとにどうしたもんでしょうか。時間帯限定で使用する等、運用で回避することにいたしました。今回ご回答いただいた内容は今後の参考にさせていただきます。

関連するQ&A

  • ACCESSからのODBC接続について

    Windows2000サーバー上にあるアクセスファイル(別のOracle9サーバーにODBCリンクしている)をWindowsXpパソコンにコピーしましたが、「ODBC-xxxxへの接続が失敗しました」と表示されOracleデータを参照できません。 WindowsXpには、Oracleクライアントはインストール済み、DSNにもMicrosoft ODBC for Oracleを登録済みです。新規にODBCリンクすることは可能です。 エラーなく参照できるようにするにはどうすればいいでしょうか。

  • VBAからOracle上のファンクションの呼び出しについて

    ACCESS2000のVBAを使ってOracleサーバ上の ファンクション(PL/SQL)を呼び出したいのですが そのように記述すればいいのかがわかりません ご存知の方教えて下さい お願い致します

  • ACCESSエラー「制限されたデータ型の属性違反です」について

    ACCESSでODBC driver for Oracleを使って、ORACLEのビューにテーブルリンクをしていますが、 あるビューを開こうとすると、以下のエラーが出力され、開くことができません。 開けないのは1つだけで他のビューは開けます。 原因及び対処方法をご存知の方がいらっしゃいましたら、教えていただけないでしょうか? ■エラーメッセージ  ODBC--呼び出しが失敗しました。  [Microsoft][ODBC driver for Oracle]制限されたデータ型の属性違反です。(#0) ■環境 ACCESS2000 OS:Windows XP 以上、よろしくお願い致します。

  • ACCESS2000で8iのテーブルへアクセスしたら、ODBC--接続失敗となる

    Oracle8iのシステムとOracle9iのシステムがあります。 Oracle8iを使用していたクライアントPCを9iのシステムを 使用するために一度バージョンアップしましたが、また8i のシステムを使うために8iに戻しました。 OracleのNet8 Configuration Assistant でのOracleの データベースへの接続はできましたが、ACCESS2000での Oracleデータベースへの接続は「ODBC--"****"への 接続が失敗しました」というエラーが出てアクセスが開き ません。 どうすればよいでしょうか。

  • Access2000のVBAでエクセルマクロ実行

    お世話になります。 Access2000のVBAでエクセルのマクロとアクセルのマクロを 交互に実行したいと思っております。 (1)エクセルのマクロ1を実行 (2)アクセスのマクロAを実行 (3)エクセルのマクロ2を実行 と交互に実行したいのです。 下記のサイトなどを参考に試みたのですが、 http://www.nurs.or.jp/~ppoy/access/access/acX005.html (1)を実行している途中に (2)が進んでしまいます。 どのようにすれば、(1)が終わってから(2)と、前の処理が 終わってから次の処理に進むことが出来るのでしょうか? Access2000のVBAから指示をかけたいので、 Access2000のVBAのコードで教えて頂ければと 思います。

  • ファイルDSNをサーバーから参照したい

    こんばんわ。 今、ExcelVBAで Oracleからデータを取得し結果をExcelでグラフと表を 作成する というプログラムを作っています。 OracleとODBC接続をしようとしているのですが、 クライアントに個別に設定するのは大変なので サーバーに接続情報を持ちたいと考えています。 ファイルDSNをサーバーに持ち、プログラム上で ファイルDSNのパスを指定して接続情報を得る という事は可能でしょうか? Excelファイルもサーバーに置いて実行する予定です。 よろしくお願いします。

  • リンクテーブル(Oracle)をAccessテーブルにコピーしたい

    質問があります。 ODBC経由でリンクしたOracleテーブルの内容をコピーしてAccessテーブルとして扱いたいのですが、うまくできません。 作ったテーブルは一時的なものとして扱い処理が終了次第削除するという使用方法となります。 VBAを使ってやろうと思うのですが、コードが今ひとつ解りません。 Docmd.ObjectCopyで試してみたのですが、コピーされたテーブルもリンク扱いとなってしまいました。 やり方は問わないので、なにか良い方法がありましたら回答よろしくお願いします。 環境:Access2000 :Oracle8.1.5です。

  • ACCESSからODBC接続でORA-12504

    Access上でオラクルのテーブルのリンクを設定しようと していますが、「ORA-12504」のエラーが表示されてしまい 接続できず、困っています。 【エラー詳細】 ODBC-呼び出しが失敗しました。 [Oracle][ODBC][Ora]ORA-12154 TNS~ (#12154)[Microsoft][ODBC Driver Manager]ドライバのSQLSetConnectAttrは失敗しました。(♯0)[Microsoft][ODBC Driver Manager]ドライバのSQLSetConnectAttrは失敗しました。(#0) なお、SQLPlusで接続ができていますし、ODBCアドミニストレータ の接続テストも成功します。 Accessで問題があるのでしょうか? 【環境】 OS:WinXP x64 Access:003 Oracle:サーバ 10g(10.2.0.1) for 64-bit    :クライアント 10g(10.1.0.2) for 32-bit     ※64-bitのオラクルクライアントはAccessが      ドライバを認識しないため使用できませんでした。 何かわかりましたらご教授ください。 よろしくお願いします。

  • ORACLEのようにトレースがとれるでしょうか?

    ADO+ODBC接続でSQLサーバーからデータを抽出・更新するのですが、 ORACLEのように実行時のSQLのトレースは取れるでしょうか? SQL文の実行計画はクエリアナライザでわかるのですが… なぜトレースを取りたいかというと、以前ACCESS2000 + ORACLE + ODBC + DAO3.6で、 開発していたときに、コーディングで作成したSQLをODBCあるいはJETが SQLを勝手に書き換えて実行していたのでインデックスが効かないということがありました。 今回はADOを使用するのですが、勝手にSQL文を書き換えて、 インデックスが効かないという事象が発生しないか心配しております。 みなさんよろしくおねがいします。(つたない文章ですみません。m(_ _)m) 開発環境 ************************************************ OS:Windows2003 server Standard Edition SQLサーバー: SQLSERVER2000 クライアント VB.NET クライアントとサーバーの接続 Microsoft ActiveX Data Objects 27. Library ODBC接続 ************************************************

  • サーバ接続状態の確認方法

    WIN10 excel2010  下記の様な構成でタブレットにてツールを使用しています。 タブレットを起動したらスタートバッチでサーバと接続し、ファイルをサーバから無線にてタブレットにダウンロードします。 タブレット上で、ツールのシステムにログインしたら、サーバからexcelファイルをタブレットにダウンロードします。 excelファイルにデータを記録したら、サーバへexcelファイルを保存します。 タブレットには、excelファイルを残さない様にしています。 上記構成での問題点が、下記です。 (1)タブレットを起動したら、すぐに上記スタートバッチが走るのですが、無線が接続されていない状態だと、エラーになってしまいます。 (2)excelファイルのダウンロード、アップロードに関して、無線が接続されていないとエラーになってしまいます。 (3)各種情報をoracleから取得してるので、oracleに接続したあとで、無線が切れたりすると、DB系統のエラーが発生します。 以上3点、エラーを出ない様にしたいです。 現状、無線接続状態を確認しないまま実行しているので、無線が接続されているかどうかを確認する方法を教えていただきたく。 接続されている状態の確認は、サーバ名のHOST名、IPアドレス何でもよいです。 (1)バッチファイルでのコマンドと(2)(3)excelのVBAのコマンド 2点教えてください。 (3)に関しては、DB系のエラーが発生した場合に対処可能かどうか不明ですが、まずは、無線が確立している状態での起動を実施したいというおもいです。