• 締切済み

PHPからAccess起動。

PHPからAccess起動。 PHPのバッチプログラムから Accessのmdbを起動する方法が、わからず悩んでいます。 やりたい事は  (1) web画面のボタンをクリックしたら、PHPのバッチを起動し    データの取得・更新を行い、オラクルDBに保存する。  (2) Accessを起動し、オラクルDBに保持したデータを参照し    レポートの出力を行う。  (3) 終了メッセージを出力し、コントロールを画面に戻す。 以上です。 この内(1)と(3)に関しては自力で実装が完了しています。 わからないのが(2)の部分で PHPのバッチからAccessを起動しAccessのマクロをキックする方法です。 ご存知の方、ご教授お願い致します。

  • PHP
  • 回答数2
  • ありがとう数1

みんなの回答

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

http://www.accessclub.jp/bbs3/0123/superbeg43133.html AccessにAutoExeという名前で、プロシージャの実行という マクロを登録しておき、プロシージャは標準モジュールに オラクルに接続し、データを取り出す関数なり、Subを 設定しておく。このような感じです。

回答No.1

GUIアプリをPHPからシステムコールするのは無理があるので、 Access側に、ファイル待ちループを作って常時起動しておき PHPがファイルをつくったら、そのファイルの内容に従った処理を行い 最後にそのファイルを削除させる。 という方法が、簡単ではないでしょうか。

関連するQ&A

  • DBが起動しない。

    DB作成後にアクセスをしようとしたら、DBが起動しておらずアクセスができませんでした。 DBが起動しなくなる、というバグがあるらしいので、スタートアップサービスに登録してバッチで起動しようとしたのですが、複数のDBを起動しようとすると全て起動せずに1つしか起動しません。 複数のDBをスタートアップから起動させる際のバッチの記述に問題があるのでしょうか? DBが自動起動しないという事象がありましたら、お教えいただきたく存じます。 Oracleのバージョンは8.1.6で、OSはWindows2000です。 どなたかよろしくお答え頂きたく存じますm(_ _)m

  • phpとoracleを用いたシステムでの文字化け

    phpとoracleを用いたシステムでwebサイトを構築しているのですが、 ブラウザからアクセスしページ表示した際に、全角文字が文字化けしてしまいます。 ◆環境 webサーバ:apache, php, oracleClient, PDO_OCI DBサーバ:oracle DBデータアクセス方法:PDO ◆事象の詳細 文字化けといっても必ず ???? とクエスチョン続きで表示されます。 上記webサーバのコマンドラインでphpのバッチを実行したところ、 コマンドライン上では正常に全角文字が表示されます。 まったく同じバッチをwebブラウザからhttpでアクセスを行ったところ、 文字化けしてしまいます。 ブラウザでの表示が悪いのではと思い、 phpのバッチ実行時に結果をテキスト出力させる処理を追加したのですが、 コマンドラインで実行した際は正常に出力され、ブラウザでアクセスした際は内容が文字化けして出力されました。 上記事象からアパッチが影響してるのではと考えられるので、 webサイトごと個別のhttpd.confの設定ファイルに NLS_LANG を設定したのですが、 結果は変わりませんでした。 文字コードの指定がない(正しくない)から文字化けするというよりは DBサーバから取得する文字列をどう受け取って(扱って)いいのかわからないという感じがします。 何か解決策等、わかる方がいましたらご教授いただけますでしょうか。

    • 締切済み
    • PHP
  • PHPで値を保持する方法

    PHPで、リクエストをまたいで値を保持する方法を教えてください。というかサーバー起動時に1回処理をし、その情報を使い続ける方法といった方が適切かもしれません。「リクエストをまたいで」といってしまうと、反射的に「セッションに保存」といいたくなると思いますが、そういう話ではありません。 画面上に検索条件でSELECTリストを表示します。この情報を今は、画面表示のたびに毎回DBにアクセスしデータを取得しています。 しかしサーバーが起動している間程度の期間ではめったに変更することはない値なので、リクエストのたびにDBにとりに行くのがあまりにも無駄なので、これをやめたいと思っています。かといって年に何回かは変更があってもおかしくない値なので、そのたびにプログラムを変更するのではなく、あくまでもDBのデータの変更だけで済ませたいと思っています。 つまり、リクエストのたびにDBにとりに行くのではなく、PHPのプログラムファイルにハードコーディングするのでもなく、Webサーバーが起動したときに1回だけDBから読み込み、変数に保持しておき何度も使いまわしたいと思っています。 で、ためしにclassのstatic変数に値を設定してみたのですが、リクエストのたびに値が初期化されてしまいました。$GLOBALSに値を設定してもリクエストのたびに値が初期化されてしまいました。 Javaなどの言語では、当たり前に行う処理ですがPHPで実現する方法が分かりません。 PHPで、リクエストをまたいで値を保持する方法を教えてください。 もしかするとPHPでは、値を保持することはできないのでしょうか? もしそうだとすると、PHPでは同じ値をDBから何度も取得するケースではどのように対処しているのでしょうか?(DBのキャッシュ機能頼み?そもそもPHPは小規模しか扱わないから気にしない?) この点について教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • AccessでOracleDBを扱う場合の操作性

    初めまして。Accessを使ってAccessのmdbを作成、使用している者です。  会社で「ORACLEのDBもAccessから更新できるそうだから、そのデータの更新用画面等を作って」と言われ、準備をしているところです。  「裏技」本等を見て、ODBCドライバをAccessを使用するコンピュータへ導入し、リンクテーブル機能を使用すればORACLEのDBへアクセス可能なのは文章上で確認しました。が、その後の操作性が気になっています。  Accessで通常行っているクエリやフォーム、マクロの作成・実行方法は、ORACLEのDBが対象になっても全然変わらないのでしょうか?SQL文を一から作成しなければいけない、ということにはならないでしょうか?  単純に「対象テーブルがORACLEになるだけで、Access上の操作性は変わらないらしいよ」と会社の人には言われたのですが、その情報元が不明なのと、実際その方が担当する訳ではないので本当にそうなのか不安です。  ちなみに、ORACLEのDBはデータ準備中で、まだAccessでどうなるかと確認出来ていません。 質問の仕方が下手で申し訳ありませんが、どなたかお返事を頂けたら助かります。宜しくお願いします。

  • MDB2によるデータベースアクセス

    ができません。 次のものは動きました。 <?php require_once("DB.php"); $db=DB::connect("pgsql://gomiuser@localhost/gomidatabase"); $db->disconnect(); ?> が以下が動きません。 <?php require_once 'MDB2.php'; $mdb2=&MDB2::connect(pgsql://gomiuser@localhost/gomidatabase); if(PEAR::isError($mdb2)) { die($mdb2->getMessage()); } $mdb2->disconnect(); ?> Don't Find(出力) 何が悪いのでしょうか?

    • ベストアンサー
    • PHP
  • AccessとOracleのデータ連携について

    お世話になります。 AccessのデータとOracleのデータ連携について悩んでいます。 Javaのアプリケーションを通して、AccessのデータをOracleに 取り込むシステムを作成しようとしています。 自分で考えた方法としては、 【実装方法1】 出力時 : Accessに【csv出力メニュー】を作成する。データ出力担当者      は、【csv出力メニュー】からFTPにデータの出力を行う。   データ出力時に、企業型DBから通知メールが入力担当者に自 動で送信される。 入力時 : データ入力担当者はメールを受け取り次第、Javaシステ ムのデータ取り込み機能を利用して、FTPから入力対象       データの取り込みJavaシステムを利用して行う。 …です。 ただ、この場合Accessにcsvデータ出力機能を新たに作成しなければなりません。仮にAccessからcsvデータを出力できないといった場合に、 AccessのテーブルをJavaプログラムから直接参照してOracleにデータ登録することは可能なのでしょうか? 若輩者の為、仕様を考えることは初めての経験なのでどなたかご教授いただけませんか?よろしく御願いいたします。

  • PHPでアクセスログ管理システム

    掲題の通り、PHPでアクセスログを管理(管理画面より閲覧)できるシステムを作ろうと思っています。システムの実現方法に悩んでいます。「こういうのが最も動作が軽い」から「実務でこういうのを作った」「自分が作るならこう作る」までなんでも良いので(ちょっとしたヒント程度のものでもかまいませんので)アイデアをいただけたらありがたいです。 要望は以下のとおりです。 ・管理画面から閲覧ができる(ログファイルを見る必要がない) ・サーバーへの負荷が少ない ・リアルタイムがベスト ※具体的なソースのご提示はなくてもかまいません ※対象サイトの月間PVは3万~5万程度です。 ※「Google Analyticsを使えば良い」はお控えください 当方で考えたシステムは以下の3通りです。 == 1. アクセスログテーブルを作成し、ユーザーからのアクセスするたびにDBにINSERTする 2. テキストファイルに出力をしておいて、アクセスの少ない時間帯にバッチを動かして、テキストからDBにINSERTする 3. テキストファイルに出力して、管理画面でアクセスするたびにテキストを加工し、閲覧できるようにする == どれも、どこかに大きな負荷がかかりそうな気がして、いまいちこれで良いのか、という感じがしています(3万~5万というPVがどの程度のものかがいまいち掴めていない、というのもありますが…) 以上です。よろしくお願いします。

    • 締切済み
    • PHP
  • WebからAccess2002へのデータ登録

    Webブラウザを使いインターネット経由でAccess2002のmdbへのデータ登録をしたいのですが、一番安く簡単に済む方法を教えてください。 やっぱりアプリケーションサーバなどが必要なのでしょうか? また、DBもOracleとかSQLServerなどを使わないと出来ないのでしょうか? 同時に、回線を流れるデータを盗聴、改ざんされないようにもしたいのですが、どんな方法があるのでしょうか。 登録側(クライアント)のOS、サーバ(Access2002のmdbがおかれるPC)側のOSともにWindows2000を想定しています。 IISとかASPとかSSL・PKIなど断片的な情報は検索できましたが、どう組み合わせればいいのかがよく分かりません。 よろしくお願いします。

  • PHPでAccessのファイルを扱うには

    MS系はまったくわからないので、基本から教えていただきたいのですが、いくつかテーブルのあるmdbファイルがあって、検索システムを作るのでデータを抽出してPHPで処理ということをしたいのですが、mdbをそのままの形式でPHPで読み込むにはどうすればいいのでしょうか。 それともASPじゃないとダメでしょうか? 何か方法がありましたらご教授お願いいたします。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ACCESS2002・autoexecの終了時エラーについて。

    OS:WIN2000 アクセス:2002 MDBファイルをバッチファイルで起動 BATの中身→<c:\temp\db01.mdb> 「db01.mdb」の内容 マクロ名 : AutoExec アクション : 終了 アクションの引数 ---------------- オプション : 終了 でAutoExecの終了のアクションが実行されアクセスが閉じたあとに 「ファイル 'c:\temp\db01.mdb' (またはその構成ファイル) が見つかりません。パス およびファイル名が正しいか、必要なライブラリがすべて利用可能かどうか確認してください。」 と・・・エラーが出てしまいます。 http://www.microsoft.com/japan/support/kb/articles/J068/3/84.asp のページで回避策が掲載されていたので試みましたが駄目でした・・・・・ (掲載されていた内容はファイルを開くときに上記エラーが出るということですので若干違うかもしれません・・・) 上記ではバッチファイルでMDBファイルを1回起動させているだけですが、 実際はバッチファイルで繰り返し実行させて使用しているの途中で停止されて困っています。 なにか回避策ありましたらよろしくお願いします。

専門家に質問してみよう