- ベストアンサー
Accessでテーブルが更新されたとき、TXTを吐くようには出来ないか??
こんにちは、 AccessのDBにISDNで外から見に行こうとしています。 しかし、すごく重くて上手く動作しません。 データベースのAccessが更新されるたびにTXTで更新したところを 自動的に投げるってのは、できないものなのでしょうか? データベースのパソコンに負担をかけたくないので「マクロ」は 使えません。 どうか、よろしくお願いします。 また、別の方法でもないか良いアイディアがありましたら お教え下さい。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
SQL-Serverで言うところのトリガーですね。残念ながらAccessのJetではできませんね。SQL-Server or MSDEならレコード更新時、挿入時、削除時などに処理を実行することができますが。 別ソフトでレコードの更新をしている際にテキストに吐き出すしかなさそうです。
その他の回答 (4)
MSDEはデータベースの管理を行います。Accessで言うところのテーブルとクエリーがMSDEに含まれます。 「Accessから更新するたび」にということは、レコードの追加はなくても修正は行うのでしょうか? ログ管理機能はAccess単体のJetデータベースエンジンでは持っていませんので、最初に書いたように、VBA等で別のテキストファイルに書き出す必要があります。
補足です。MSDEに関してはこちらでご参照下さい。 http://www.okweb.ne.jp/kotaeru.php3?q=88931
補足
MSDEを使うのは、データベースをMSDEに置かなきゃいけないんですね? 現在の状態としては、ホスト側のDBそして入力環境は出来上がっていて 外からISDNを介してデータを見に行こうとしています(書き込むことはありません) 単純にAccessから更新するたびにデータをテキスト形式にしてどっかに保存してもらうってのは、可能なんでしょうか? どうぞよろしくお願いします。
MSDEはSQL Serverの簡易版ですね。Access2000以降なら標準でついています。 確かにログは取れますが、テキスト形式で吐き出すようには、人が見てぱっとわかるような形式では見れないと思います。ただ、障害発生時には、ログを元に復旧できるようです。 ISDN経由で接続する場合も、サーバー側のMSDE or SQL Serverにデータをおき、さらにAccessのMDBではなくADPでフォームやレポートなどを作成すれば、ネットワークを流れるデータ量が最小限で済みますので、パフォーマンスも改善されるかと思います。もちろんそのADPはクライアント側に配置する必要があります。 もうひとつの方法として、サーバー側とクライアント側両方にMSDEのデータベースを配置する方法です。普段はオフラインで、クライアント側のデータベースを使用します。ここでレプリケーション機能を使ってISDN経由でサーバーとクライアント双方のデータベースの同期を取ることができます。クライアント側で追加修正したレコードは同期を取った際にサーバーに反映されます。双方で同じレコードを修正した場合に起こる競合については注意が必要ですが、この場合サーバーに接続するのは同期処理の時のみですので、負荷もかかりません。 Access単体でもレプリケーションの機能はありますが、試した事がないので(^^;;
テキストでログをとるってことですよね? この環境ですとかなり厳しいのではないでしょうか。 テキストでログをとる場合はVBAでテキストファイルに書き出しています。障害が起こった場合には手動で復旧するしかないですけどね。 それ以前に、サーバーをWindows2000Serverにして、ターミナルサービスを組み込んでISDN経由で接続するようにしてはどうでしょうか? データベースの構築の仕方にもよりますし、ローカルほどのパフォーマンスは得られませんが、体感的に10Base-Tよりやや劣るくらいのパフォーマンスで操作できますよ。
補足
早速のお返事ありがとうございます。 ログを言う形は厳しいですか・・・。 更新があるたびに全てをテキストで投げるってのも無理なんですよね? >それ以前に、サーバーをWindows2000Serverにして、ターミナルサービスを組み>込んでISDN経由で接続するようにしてはどうでしょうか サーバーが完成されたもののため、変えてしまうことが出来ません。 MSDE?ってのは ご存知ですか? なんかこれでうまくいきそう・・・という話を聞いたのですが MSDE自体よくわかりません・・・。
お礼
どうもありがとうございます。 とりあえず Accessのマクロでどうにかならないか 検討しています。
補足
Access(テーブル クエリーのみ フォーム、レポートは持ってません) のデータベース(入力は別ソフトから行っています)で、 テーブルの内容が更新時にテキストファイルを書き出すようにしたく、 マクロを使ってどうにかならないか考えているのですが、 「条件」がうまくつけられません。別にマクロでなくAccessVBAでも いいのですが・・・・。 ご存知でしたら是非お教えください。