いつもお世話になっております。
Windows2000
Access2002、またはAccess2000にて、

複数のPCで、サーバにおいてあるmdbファイルを使用するシステムを開発する場合、
(例えば、スタンドアロンで使用していたシステムを複数のPCで使用することになったと仮定します。
また予算の都合上、Oracle、SQL Serverなどは使えないものとし、各PCにAccessがインストールされます。 )

排他制御を行うために、Accessで排他モードで開いて使用するという対応というのは、問題ないのでしょうか。
データが破損する可能性があるということをよく耳にするのですが、
過去に上記の対応を行われた方がいらっしゃいましたら、その後の運用で問題は発生しなかったか(ファイルが壊れる事はないのか)、
過去に壊れた事象をお持ちの方がいらっしゃいましたら、どのように対応されたのか、
別の対応方法をとられていらっしゃる方は、その対応方法を
ご教授いただけないでしょうか。


プログラムでデータの破損を退避できるのであれば、上の対応と併せて開発できそうな気はするのですが、、

ご回答、よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

お疲れ様です。



>当方開発用マシンが Win2000 Pro版なのですが、
>MSDEをWin2000 Pro版にインストールし、サーバとして使用することは可能でしょうか。

上記につきましては、問題なく使用することが可能です。

>また、開発用マシンにはOfficeXP Oracle8が入っているのですが、
>以下の問題が発生しうる環境であるため、インストールを控えております。

>[Oracle8とMSDE2000をインストールするとOSが起動しない]
http://support.microsoft.com/default.aspx?scid=k …

知りませんでした(^ ^;

逃げ道としては、Access2002付属のMSDE2.0ではなく、Access2000付属のMSDE1.0?を使うことぐらいしか思いつきませんねぇ、、、

お役に立てずにすいませんm(_ _)m
    • good
    • 0

こんにちは。



Accessを複数の端末から同時に使うのは私は怖いのでやったことがありませんので、排他~についてはほかの方に譲ります。

さて、
>また予算の都合上、Oracle、SQL Serverなどは使えないものとし、各PCにAccessがインストールされます。 )
とのことですが、
予算の都合のみということであればMSDEの使用は如何でしょうか?
MDBよりもいいと思います。
    • good
    • 0
この回答へのお礼

ご回答いただき、ありがとうございます。

MSDEの導入についてですが、
当方開発用マシンが Win2000 Pro版なのですが、
MSDEをWin2000 Pro版にインストールし、サーバとして使用することは可能でしょうか。

また、開発用マシンにはOfficeXP Oracle8が入っているのですが、
以下の問題が発生しうる環境であるため、インストールを控えております。

[Oracle8とMSDE2000をインストールするとOSが起動しない]
http://support.microsoft.com/default.aspx?scid=k …

SQLServer2000は入っているのですが、MSDEと扱いが別なのか、
現象は発生しておりません。

客先によっては上記環境も発生しえますので、
導入すべきか迷っております。

お礼日時:2003/09/22 11:06

こんにちわ



ACCESSで排他で開くというのは
1人だけしか使用できません
二人目以降の人はそのmdbを使用できません

排他が必須なら、同一レコードの更新時に
メッセージ表示する、レコード単位の排他指定
をするのが簡易な方法です
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessフォームにクロス集計クエリを表示させるとき

Accessフォームにクロス集計クエリを表示させようとしています。

クロス集計の横軸の項目数が増減するようなデータを扱っているのですが、
クエリをフォームに貼り付けてフォームを保存した後、クロス集計の横軸の項目数が増減しても、フォーム上の横軸の数は増減してくれません。

もう少し具体的に書くと、
クロス集計クエリは、縦軸に日付、横軸に社員を設定し、日付別の社員のアクセス回数カウントを表示するもので、社員は新しく入ってきたり、辞めていったりするため増減します。
フォーム上に集計クエリを貼り付けて、次のような表ができました。
-----
日付 アクセス計 社員A 社員B
○日 3     1   2
△日 4     1   3
-----
□日に、StaffCが増えたので、次の様にしたいのですが、StaffCの列が表示されません。
-----
日付 アクセス計 社員A 社員B 社員C
○日 3     1   2
△日 4     1   3
□日 5     1   2   2
-----

どのような解決方法がありますか?
質問が分かりづらいと思いますが、宜しくお願いします。表は等幅フォントで見ていただければと思います。

Accessフォームにクロス集計クエリを表示させようとしています。

クロス集計の横軸の項目数が増減するようなデータを扱っているのですが、
クエリをフォームに貼り付けてフォームを保存した後、クロス集計の横軸の項目数が増減しても、フォーム上の横軸の数は増減してくれません。

もう少し具体的に書くと、
クロス集計クエリは、縦軸に日付、横軸に社員を設定し、日付別の社員のアクセス回数カウントを表示するもので、社員は新しく入ってきたり、辞めていったりするため増減します。
フォーム上に集計...続きを読む

Aベストアンサー

> Accessフォームにクロス集計クエリを表示させようとしています。

サブフォームのソースオブジェクトプロパティを使ってはどうでしょうか?
データシート形式が前提ですが、ソースオブジェクトプロパティに、
直接、クロス集計クエリを指定してみてください。

QAccess2000で排他ロックをかけるには?

こんにちは。

Access2000を複数のユーザーで使用したいのですが、
上手く排他ロックがかからなくて困っています。

使用状況を説明しますと、テーブルのみの入ったデータベース(DT)を
サーバーに置き、使用するユーザーのコンピュータにはフォームや
レポートの入ったデータベース(PG)を置いて、それぞれサーバーから
テーブルをリンクしています。

PGには複数のフォームがあり、例えばフォーム(1)を誰かが使用しているときは
他の人はフォーム(1)は使用できないけど、他のフォーム(2)、フォーム(3)の
使用はできるようにしたいのです。

どなたかご存知の方いらっしゃいましたら回答お願いします。

Aベストアンサー

基本的には不可能です。
Access2000は、複数のユーザが同時使用する事を考慮していません。

 従って、プログラムの方で小細工をする必要があります。
 例えば、フォームを開く時に、ある特定のエリアにフラグを立てて、そのフラグがたっている時には、別の誰かが使っているって事で、フォームの使用を禁止する様にするしか手がないです。

QAccessのクロス集計について

お願いします
アクセスで次のようなアンケートCSVをインポートして集計しています。質問1・2に入力されるのは選択肢番号です
<アンケート結果テーブル>
名前   回答者 質問1 
==========================
20080710 Aさん   1  
20080710 Bさん   2   
20080710 Cさん   5   

上記をクロス集計を行い日別の集計を行っております。
<クロス集計>
日付   1 2 5
===========================
20080710 1 1 1 

上記の結果を回答がなかった選択番号は下記のように0を表示させたいのですがどうすればよろしいでしょうか?
日付   1 2 3 4 5
===========================
20080710 1 1 0 0 1 

Aベストアンサー

選択肢をすべて表示するには
列見出しプロパティーに全ての選択肢番号を書きます

Nullを0にするにはNZ関数を使用します

QAccessを開くと「排他モードじゃないので変更しても保存できない」との旨の表示が出てしまう。

「Access 2000」を使用して顧客管理用のデータベースを作成し、複数のパソコンで使用できるように原本を共有ドキュメントに入れて、ネットワーク上の他のパソコンではショートカットを作成し、それぞれがそのデータベースを開いたり編集したり出来るようにしています。

しかし、特定のパソコンだけそのデータベースを開く際に「現在、このデータベースは排他モードでアクセスしていません。変更しても、後で保存できない可能性があります。」と表示され、中身を編集したり保存出来ないようになっています。

たしかに、「規定の開くモード」は「共有モード」になっており、排他モードにはしていないです。

この設定で会社の大多数のパソコンでは上記メッセージが出ることなくちゃんと編集ができるのに、どうして特定のパソコンだけこのようなメッセージが表示されて編集を保存できないのでしょうか?
現在の設定のまま使えるようにするための方法はありますでしょうか?

まだAccessを使い始めたばかりで、記載した情報も少ないかもしれませんが、何か分かりましたら教えてください。

「Access 2000」を使用して顧客管理用のデータベースを作成し、複数のパソコンで使用できるように原本を共有ドキュメントに入れて、ネットワーク上の他のパソコンではショートカットを作成し、それぞれがそのデータベースを開いたり編集したり出来るようにしています。

しかし、特定のパソコンだけそのデータベースを開く際に「現在、このデータベースは排他モードでアクセスしていません。変更しても、後で保存できない可能性があります。」と表示され、中身を編集したり保存出来ないようになっています。

...続きを読む

Aベストアンサー

> 特定のパソコンだけそのデータベースを開く際に「現在、このデータベースは排他モードで
> アクセスしていません。変更しても、後で保存できない可能性があります。」と表示

<可能性・1>
ご質問の「特定のパソコン」の『既定の開くモード』が「共有モード」で、「大多数のパソコン」では
「排他モード」になっているのだとすると、「現在の設定のまま」というのは難しいと思います。
(逆にいうと、ご質問の現象が『既定の開くモード』に起因したものなら、その設定の変更で対応
 できるはず、ということ)

なお、Accessの「排他モード」には、私が知る限り少なくとも2種類あります。
で、『既定の開くモード』で指定する「排他モード」であれば、Access2000では、実際には他の
人が使用中であっても、同じファイルを開くことができたと思いますので、まずはその設定を
変更することで問題が解決できないか、確認されてみてはいかがでしょうか。

2種類の排他モードについての参考として、以前の回答へのリンクを載せておきます:
http://oshiete1.goo.ne.jp/qa3688575.html
※念のため今回再試したところ、『既定の開くモード』の「排他モード」でも、重複起動させると
  「使用できませんでした」とのメッセージが返されました。(Access2003にて確認)
  もしかしたら、Office2003 SP2でこの辺りは修正が掛かったかもしれません。
  ただ、今回のご質問のAccess2000では、従来の動作のままのはずですので、試してみる
  価値はあるかと思います。


<可能性・2>
他の大多数のパソコンでも『既定の開くモード』が「共有モード」だとすると、上記の話は
成り立ちません。
・・・というより、同時に使用している場合、他のパソコンでも「後で保存できない可能性が」
とのメッセージが出るはずの状況です。(Accessの仕様として、そうなっているはず、と)

この場合は、念のため、他のパソコンのショートカットのリンク先が、本当にネットワーク上の
原本を開く形になっているか、確認してみてください。
というのは、Accessによるの運用方法として、「データを保存するテーブルのみのファイル」と
「フォームなど、テーブル以外のものからなるファイル」の二つを作成して、後者から前者に
テーブルのリンクを張る(リンクテーブル)、というものがあり、他のパソコンのショートカットが、
実は各パソコンにコピーされたファイル(フォームなど+リンクテーブル)にリンクしたもの、
という可能性が考えられるためです。
※これは、shocola_ttさん以外の方がそのデータベースを作成されたと想像しての回答です。

この構成の場合は、「特定のパソコン」にその原本のコピーを作成して、作業はこのファイル
で行う、という形にすれば、問題が解決すると思います。
(上記の通りなら、原本内にあるのはテーブルではなくリンクテーブルなので、入力/編集の
 対象となるデータ自体は共有されていることになります)

> 特定のパソコンだけそのデータベースを開く際に「現在、このデータベースは排他モードで
> アクセスしていません。変更しても、後で保存できない可能性があります。」と表示

<可能性・1>
ご質問の「特定のパソコン」の『既定の開くモード』が「共有モード」で、「大多数のパソコン」では
「排他モード」になっているのだとすると、「現在の設定のまま」というのは難しいと思います。
(逆にいうと、ご質問の現象が『既定の開くモード』に起因したものなら、その設定の変更で対応
 できるはず、というこ...続きを読む

Qaccessでクロス集計した結果を摘出する方法

access2007を使っています。
ロータスアプローチからの乗り換えなのでかなり使い方が違い戸惑っています。

クエリよりクロス集計をし、その結果を他のクエリに反映させたいのですが、方法が判りません。
また、クロス集計以外で似たようなデータ摘出方法があれば教えてください。

Aベストアンサー

ACCESS2007に触れる機会が無いので外してたらすみません。

クロス集計もクエリですから、他のテーブル・クエリとの結合は可能な筈。

クロス集計をテーブルとして固定したいなら、
1)クロス集計クエリを作成する
2)テープルのインポートで、自分自身のMDBを指定する
3)クエリで、1)のクロス集計クエリを選択し、右下の「オプション」で「テーブルとしてインポート」を選択してOK.

これで1)と同じ名前の末尾に1が付いたテーブルが作成できます。
3)で「テーブルとしてインポート」を選択するのがミソ。

QACCESS2000、データベース破損?修復可能?

ACCESS2000を使用しています。セキュリティ設定したデータベースファイルを社内で共有し、使用していたのですが、突然開けなくなりました。開こうとした時に起こった現象は次のとおりです。
(1)警告メッセージ「、Micrsoft ACCESS データベースが開いている時に、いずれかのユーザーがMicrsoft ACCESSを終了しました。修復しますか?」が表示され、はいと答える。
(2)警告メッセージ「オブジェクト’Databases’が見つかりませんでした。オブジェクトが存在していること、名前やパス名が正しいことを確認してください。」と表示され、OKと答える。
(3)エラーメッセージ「データベース’(パス名.ファイル名)’は修復できないか、Micrsoft ACCESS データベースファイルではありません。」と表示され結局開けない。
エクスプローラーからデータベースファイルを見たところ、ファイルサイズが1/10くらいになっていました(!)この状況から修復は可能でしょうか?バックアップはここのところとっておらず、四苦八苦している状況です。どなたかご存知の方、宜しくお願い致します。

ACCESS2000を使用しています。セキュリティ設定したデータベースファイルを社内で共有し、使用していたのですが、突然開けなくなりました。開こうとした時に起こった現象は次のとおりです。
(1)警告メッセージ「、Micrsoft ACCESS データベースが開いている時に、いずれかのユーザーがMicrsoft ACCESSを終了しました。修復しますか?」が表示され、はいと答える。
(2)警告メッセージ「オブジェクト’Databases’が見つかりませんでした。オブジェクトが存在していること、名前やパス名が正しいことを確認し...続きを読む

Aベストアンサー

状況から考えて誰かがミスをしたか何かでファイルが削除されたようですね。もしくは破損したかのどちらかでしょうが。この場合データを復旧するソフトがあります。ソフトもいろいろありますが値段は安いもので1万ぐらいから24万ぐらいのものまで様々あります。雑誌のSOHOとゆうコーンピュータ雑誌の4月号p108に特集が組まれています。なかなか詳しくかかれているので参考になると思いますよ!!

Qaccess2010 クロス集計後の計算 直近3ヶ月のテーブルを持っています。 くらい集計にて 行側

access2010

クロス集計後の計算


直近3ヶ月のテーブルを持っています。

くらい集計にて

行側 品名

列側 年月(2016/10、2016/11、2016/12)

IDのカウントでクロス集計しています。


前月比(2016/12−2016/11)を取りたいのですが、フィールド名が来月には1ヶ月成長してしまいます。

前月比の計算式を書き換えないように行うにはどのようにすればよろしいか、教えて下さい。

Aベストアンサー

では、クロス集計の元データを、テーブルではなく列を増やしたクエリにすれば解決では?

QASP+ACCESS開発

ASP(IIS)+ACCESSで開発したいと考えていますが、
参考書籍が見つかりません。

よい参考書籍や参考URLがあったら教えてください。
1冊WEBで見つけて頼みましたが、絶版でした。

また、ほとんどがMysqlとかの書籍ですし、レンタル
スペースもASPになると高額になりますよね?

ASP+ACCESSで開発するなんてよくないのでしょうか?
ACCESSだとACCESSライクで作り易そうですし、いま
作りおきのACCESS DBをそのまま使いたいからなのですが。

Aベストアンサー

http://www.cbook24.com/bm_detail.asp?sku=4774117579

QACCESS2013 クロス集計以外で、変動するテーブルの値を別のテーブルのフィールドに

お世話になります。
Access2013 Win8.1 初心者です。

クロス集計以外で、変動するテーブルの値を、別のテーブルのフィールドにする方法を教えて下さい。
例)
テーブルA
フィールド(野菜)
値(トマト){←変動します。}
値(ナス){←変動します。}

テーブルB
フィールド1(テーブルAの値(トマト))
フィールド2(テーブルAの値(ナス))

集計が複雑で、テーブルAとテーブルBを初めにクエリで結合して、クロス集計を
行ったのですが、その後の集計などに支障が出て、上記方法を考えています。

宜しくお願い致します。

Aベストアンサー

何がしたいのか、少し見えてきましたが、まだよくわかりません。
差し支えない範囲で以下を教えていただけますでしょうか?

>集計が複雑で、テーブルAとテーブルBを初めにクエリで結合して、クロス集計を行ったのですが、その後の集計などに支障が出て、上記方法を考えています。

テーブルAはテーブルBの集計ではない(計算が合いませんが)とすると、このデータはどこから来るものなのですか? (クエリ1のデータを出すためには、テーブルB一つのクロス集計クエリで用が足りると思います。)

その後の集計とは何をしたいのですか?

QAccess開発時のセキュリティ対策

企業向けにAccessにて小規模なユーザ管理システムの構築を考えています。ユーザ情報の管理ということもあり、セキュリティ対策をどうするか悩んでいます。より安全にセキュアにデータ管理する方法があれば教えてください。
Access以外のDB(MSDE、MySQL)も視野に入れていますが、基本はサーバを立てずスタンドアロンで考えております。

Aベストアンサー

ソフト的な話であれば、一番てっとり早いのはデータベースパスワードを
設定してしまう事ですね。MDBファイルを開こうとしてもパスワードが
わからないと開けません。(「ツール」メニューのセキュリティから設定
できます。)

他にももっと細かいアクセス制御をするのであれば、同じく「ツール」メニューの
セキュリティで設定する事ができます。MDBファイルの中で独自のユーザー
アカウントを作成し、アカウントごとにテーブルや他のオブジェクトに
対してのアクセス制御ができます。

詳しくはオンラインヘルプ等を参照してください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング