• ベストアンサー

Accessでテーブルが更新されたとき、TXTを吐くようには出来ないか??

こんにちは、 AccessのDBにISDNで外から見に行こうとしています。 しかし、すごく重くて上手く動作しません。 データベースのAccessが更新されるたびにTXTで更新したところを 自動的に投げるってのは、できないものなのでしょうか? データベースのパソコンに負担をかけたくないので「マクロ」は 使えません。 どうか、よろしくお願いします。 また、別の方法でもないか良いアイディアがありましたら お教え下さい。

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

  • ベストアンサー
noname#1296
noname#1296
回答No.5

SQL-Serverで言うところのトリガーですね。残念ながらAccessのJetではできませんね。SQL-Server or MSDEならレコード更新時、挿入時、削除時などに処理を実行することができますが。 別ソフトでレコードの更新をしている際にテキストに吐き出すしかなさそうです。

その他の回答 (4)

noname#1296
noname#1296
回答No.4

 MSDEはデータベースの管理を行います。Accessで言うところのテーブルとクエリーがMSDEに含まれます。  「Accessから更新するたび」にということは、レコードの追加はなくても修正は行うのでしょうか?  ログ管理機能はAccess単体のJetデータベースエンジンでは持っていませんので、最初に書いたように、VBA等で別のテキストファイルに書き出す必要があります。

kzkzkzkz
質問者

お礼

どうもありがとうございます。 とりあえず Accessのマクロでどうにかならないか 検討しています。

kzkzkzkz
質問者

補足

Access(テーブル クエリーのみ フォーム、レポートは持ってません) のデータベース(入力は別ソフトから行っています)で、 テーブルの内容が更新時にテキストファイルを書き出すようにしたく、 マクロを使ってどうにかならないか考えているのですが、 「条件」がうまくつけられません。別にマクロでなくAccessVBAでも いいのですが・・・・。 ご存知でしたら是非お教えください。

noname#1296
noname#1296
回答No.3

補足です。MSDEに関してはこちらでご参照下さい。 http://www.okweb.ne.jp/kotaeru.php3?q=88931

参考URL:
http://www.okweb.ne.jp/kotaeru.php3?q=88931
kzkzkzkz
質問者

補足

MSDEを使うのは、データベースをMSDEに置かなきゃいけないんですね? 現在の状態としては、ホスト側のDBそして入力環境は出来上がっていて 外からISDNを介してデータを見に行こうとしています(書き込むことはありません) 単純にAccessから更新するたびにデータをテキスト形式にしてどっかに保存してもらうってのは、可能なんでしょうか? どうぞよろしくお願いします。

noname#1296
noname#1296
回答No.2

 MSDEはSQL Serverの簡易版ですね。Access2000以降なら標準でついています。  確かにログは取れますが、テキスト形式で吐き出すようには、人が見てぱっとわかるような形式では見れないと思います。ただ、障害発生時には、ログを元に復旧できるようです。  ISDN経由で接続する場合も、サーバー側のMSDE or SQL Serverにデータをおき、さらにAccessのMDBではなくADPでフォームやレポートなどを作成すれば、ネットワークを流れるデータ量が最小限で済みますので、パフォーマンスも改善されるかと思います。もちろんそのADPはクライアント側に配置する必要があります。  もうひとつの方法として、サーバー側とクライアント側両方にMSDEのデータベースを配置する方法です。普段はオフラインで、クライアント側のデータベースを使用します。ここでレプリケーション機能を使ってISDN経由でサーバーとクライアント双方のデータベースの同期を取ることができます。クライアント側で追加修正したレコードは同期を取った際にサーバーに反映されます。双方で同じレコードを修正した場合に起こる競合については注意が必要ですが、この場合サーバーに接続するのは同期処理の時のみですので、負荷もかかりません。  Access単体でもレプリケーションの機能はありますが、試した事がないので(^^;;

noname#1296
noname#1296
回答No.1

 テキストでログをとるってことですよね?  この環境ですとかなり厳しいのではないでしょうか。  テキストでログをとる場合はVBAでテキストファイルに書き出しています。障害が起こった場合には手動で復旧するしかないですけどね。  それ以前に、サーバーをWindows2000Serverにして、ターミナルサービスを組み込んでISDN経由で接続するようにしてはどうでしょうか?  データベースの構築の仕方にもよりますし、ローカルほどのパフォーマンスは得られませんが、体感的に10Base-Tよりやや劣るくらいのパフォーマンスで操作できますよ。

kzkzkzkz
質問者

補足

早速のお返事ありがとうございます。 ログを言う形は厳しいですか・・・。 更新があるたびに全てをテキストで投げるってのも無理なんですよね? >それ以前に、サーバーをWindows2000Serverにして、ターミナルサービスを組み>込んでISDN経由で接続するようにしてはどうでしょうか サーバーが完成されたもののため、変えてしまうことが出来ません。  MSDE?ってのは ご存知ですか? なんかこれでうまくいきそう・・・という話を聞いたのですが MSDE自体よくわかりません・・・。

関連するQ&A

  • ACCESS2003で、テーブルの更新日時を入れたいです。

    ACCESS で作成したDBのテーブル更新日時を、自動で入力されるようにしたいと思いますがどのようにしたらよいのでしょうか? テーブルの該当フィールドにある規定値に何かの式を入れれば良い気がするのですが、わかりません。 規定値を date()では、テーブルを新規作成したときだけの入力のようなので困っています。 よろしくお願いします。

  • ACCESSのマクロを自動で実行させたい

    ACCESSで、 TXTファイルをテーブルにインポートするマクロを作成したのですが、 TXTファイルが毎日更新されるため、毎日自動でマクロを実行させたいと思っています。 ACCESSの機能かWINDOWSの機能ですることは可能なのでしょうか。 ご教授ください

  • アクセス2003 更新クエリでダイアログを表示させない方法

    アクセスで、十数個の更新クエリをマクロで自動的に実行したいのですが、100万行くらいあるDBで、メモリ不足のせいか、「ディスクの空き領域またはメモリが不足しているため、このアクションクエリによるデータの変更を元に戻すことはできません」というダイアログがクエリの度に表示されてしまいます。これを表示させずに十数個の更新クエリを自動的に終了させたいのですが、方法をご存知の方がいらっしゃったら、教えていただけますでしょうか。

  • AccessとSqlServerのテーブルリンク

    Access2007とSqlServer2008を使用しています。 Accessで作成したテーブルを「データベースツール」-「データの移動」でSqlServerに移行してリンクする際、 (1)SqlServerに新規にデータベースを作成すると、リンクテーブルマネージャから見てもリンク先DBが正しく表示されますが、 (2)その後、その既存DBに同じAccess内の別のテーブルを、「データベースツール」-「データの移動」してリンクしたものは、リンクテーブルマネージャから見てもリンク先DBが ()となっており表示されていません。 ツールとしてSqlServer Management Studioを使っていますが、そこからでも(1)のテーブルは表示されていますが、(2)のテーブルは表示されません。 でもリンクはできているようなのです。 また、SqlServer Management Studioを使って、SqlServer内に新規テーブルを作成し、 それをAccessからリンクしようとしても、テーブルリンク一覧内に表示されない状態です。 (「外部データ」-「ODBCデータベース」…)にて SqlServerのファイルデータソースを表示しています) (2)のテーブルはSqlServer Management Studioから見ることができないため、更新・削除もできず困っています。 DB、テーブル、リンク方法等、何か問題があるのでしょうか? よろしくお願いします。

  • ACCESSからODBC接続での書き込みや更新

    ACCESSからODBC接続での書き込みや更新 環境 OS:WindowsXP home SQL Server Express 2008 SQL server manegement studio 2008 パソコンネーム:pc01に SQL Server Express 2008をインストールしてあり そのパソコンからマイクロソフトACCESSからODBC経由で SQLにアクセス(全て同一パソコン) SQL server manegement studioで 以下のようにデータベースを作成しました データベース名:DB01 テーブル名:tbl_01 所有者:pc01\user1 ODBC接続の設定 以下3点以外は規定値 接続するSQLサーバーの名前:pc01\SQLEXPRESS ネットワークへのログインIDでWindows NTの認証メカニズムを使う 規定のデータベースを以下のものに変更する:DB01 この状態でACCESSからODBC経由でDB01のtbl_01に接続しても 新規書き込みや更新が出来ません、 書き込みや更新をしたい場合何を設定すれば良いのでしょうか? SQL server manegement studioで ユーザー、ロール、マップなどを 色々触って見たのですがテーブルの閲覧は出来ますが 更新や新規書き込みが出来ません。 確認すべき項目など御座いましたら具体的にお教え願えれば 幸いです、よろしくお願い致します。

  • Accessのマクロ。

    Access(テーブル クエリーのみ フォーム、レポートは持ってません) のデータベース(入力は別ソフトから行っています)で、 テーブルの内容が更新時にテキストファイルを書き出すようにしたく、 マクロを使ってどうにかならないか考えているのですが、 「条件」がうまくつけられません。別にマクロでなくAccessVBAでも いいのですが・・・・。 ご存知でしたら是非お教えください。

  • SQLサーバーのテーブルの値が更新できません

    お尋ねします。 SQLサーバー2005にDB1というデータベースにdbo_TB1というテーブルがあります。そのテーブルの特定の列の値を更新したいので、AC.mdbというアクセスのファイルにテーブルのリンクをし、更新したいファイルを用意して、アクセスのクエリでデータを更新しようとしましたところ、更新ができませんでした。  dbo_TB1を更新可能にするためには、どのようにして権限を与えればいいでしょうか。  SQLサーバー2005の知識を習得しようと学習を始めたばかりで、よく理解できていません。よろしくお願いします。

  • ASPによる アクセス2000のデータベース更新について

    アクセス2000で作成したデータベースに ASPでデータベースを更新しようとしたのですが、エラーとなって更新できずにいます。 (アクセスデータベース内容) ID F1 F2 1 TEST1 TEST2 2 1 2 3 4 5 4 23 ※ID の 5  に 23 を登録したい。 (ASP内容) <% ' データベースへの接続を開始 Set cn = Server.CreateObject("ADODB.Connection") cn.Open "Driver={Microsoft Access Driver (*.mdb)}; " & _ "DBQ=" & Server.Mappath("TESTdb1.mdb") cn.Execute"INSERT INTO TTT(ID,F1) VALUES(5,23);" %> (エラー内容) エラー タイプ Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Driver] 更新可能なクエリであることが必要です。 /SQL-TEST/ncsch1.asp, line 7 アクセスの追加クエリで、INSERT INTO TTT(ID,F1) VALUES(5,23); を 実行したら、問題無く 5 23 が登録できましたので、データベース自体に他からの実行の場合、更新出来ないような 設定になっていると思うのですが、対処方法がわかりません。 どうすればよいか教えて頂けないでしょうか?

  • アクセス2002:データベース内のテーブルが開かない

    既存のデータベースを別のノートパソコンにコピーして入力・編集した後、元のデスクトップにUSBメモリ経由で戻してさらに入力を続けようとしたところ、データベースを開くことはできるのですが、データベース内のテーブルを開くことができません。 新規データベースにインポートしようとしても、作動しません。 データベースを開きたいのですが、なにか解決方法はないでしょうか。 ノート、デスクトップともOSはXPHomeSP1、アクセスは2002です。 よろしくお願いします。

  • 【Access97】txtファイルの一括インポート

    txtファイルをAccessへ自動でインポートする方法としてはマクロの”テキスト変換”しか知識がありません。 今回そのtxtファイルが1000個以上あり、一回一回txtファイル名を変えての”テキスト変換”では膨大な時間がかかってしまいます。 ファイル名はすべて「数字4桁.txt」で統一、1つのフォルダ内に保存してありますので、この条件でAccessへ一度に取り込む方法があればご教授ください。 <txtファイル:ヘッダーなし、1ファイルにつき1~100行程度のデータ> 001,"トウキヨウ","東京" 002,"オオサカ","大阪" 003,"ナゴヤ","名古屋" 004,"フクオカ","福岡"   ・   ・   ・ <Accessテーブル:フィールド名はtxtデータの並び順に合わせて作成> ─── ──── ─── 番号   支店カナ 支店名 ─── ──── ───