Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Access 2013)
ACCESSファイルの共有化について
投稿日時: 19/05/13 21:12:48
投稿者: さー

お世話になります。
カテ違いかもしれないのですが、わかる方いましたら教えてください。
 
ACCESSファイル(クエリを実行するとテーブルから該当するデータを検索
できるもの)を共有されたネットワークに保存してあり、複数のPCから
アクセスできる状態で運用したいと思っています。
 
<質問>
自分のPCからは常に変更保存可能、ほかのPCからは常に読み取り専用で
上書き保存できない状態に設定して運用することは可能でしょうか?
 
現時点では私しか使用していない状態で、これからほかの人にも開示
しようと思っている段階です。インターネットで調べてみると、複数
PCで同時に開いたらファイルが壊れたという情報が多数あり、心配し
ています。実際にはこれから試してみようと思っていますが、類似の
ことをやったことがある方、情報をお持ちの方がいましたら、教えて
いただければ幸いです。
 
よろしくお願いいたします。
 

回答
投稿日時: 19/05/15 15:27:34
投稿者: totoo

私の経験なので参考になればどうぞ、ほかのpcから閲覧するためにファイルをコピーします。コピーしたファイルからテーブルを全部削除し、もとのファイルのテーブルのリンクテーブルを作成します。
まずこの辺りから始めたらいかがですか。

回答
投稿日時: 19/05/16 17:37:20
投稿者: とんぼ

単純にテーブルの内容を一覧で見せたいなら、
フォームウィザードでデータシートのフォームを作成して、
編集不可にすると見せるだけができますよ。
テーブルは隠しオブジェクトに設定して見せないようにします。
自分は隠しオブジェクトを表示するようにして編集します。
 
複数人が同時編集すると壊れる事がありますが、
見るだけなら滅多なことでは壊れないです。
でも、
共通するなら日々バックアップをとった方が良いですよ。

投稿日時: 19/05/21 20:26:43
投稿者: さー

totoo様、とんぼ様
  
お世話になります。ご回答をいただきありがとうございました。
また、ご連絡が遅くなりまして、誠に申し訳ございません。
  
以下、いろいろやってみました。
  
1.リンクテーブルを作成
→元のファイルのデータ変更をするとコピーしたファイルデータも
 更新され便利なのですが、逆にコピーしたファイルのデータを
 変更した場合にも元のファイルが変更してしまいました。
 コピーしたファイルを変更できない(読み取り専用)にする方法
 がありましたら、教えていただけますでしょうか?
   元のファイル → コピーしたファイル(データ変更を反映したい)
   コピーしたファイル → 元のファイル(データ変更を反映したくない。
                      コピーしたファイルは読み取り専用にしたい。)
  
2.データシートのフォームを作成して、編集不可にする
 →調べてみたのですが、フォームを編集不可にする方法がわかりませんでした。
  どのように設定すればよいのでしょうか?
  
3.隠しオブジェクト
→設定しました。リンクテーブルを作成したコピーファイルを隠しオブジェクトに
 しました。データ変更(元のファイル)、閲覧(コピーファイルで隠しオブジェクト)
 にできるので、運用しやすそうです。
  
4.バックアップ
→やはり必要ですよね。都度やるようにします。
  
  
1.リンクテーブルを読み取り専用にする、2.データのフォームを編集不可にする方法が
わかる方がいましたら、教えていただけますでしょうか?
  
よろしくお願いいたします。

回答
投稿日時: 19/05/22 11:27:35
投稿者: Suzu

まず、Accessファイルを共有した場合、
それはファイル共有であって、
そのファイル自体のセキュリティー(Windowsの書き込み/読み取り)を設定し
 
                        レコードに対しての状態 フォーム/クエリ 等のオブジェクト
読み取りを設定した場合 読み取り 読み取り
書き込み権限ありを設定 書き込み可 書き込み可
 
であり、少なくともファイルに対しての書き込み/読み取り権限では実現不可
クエリのデザイン変更もできませんが良いのでしょうか?
 
 
お手軽なのは
ユーザーレベル セキュリティについて
https://support.office.com/ja-jp/article/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%83%AC%E3%83%99%E3%83%AB-%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6-69b362cd-503f-4e8a-a735-fb923ffb9fa3
 
の様に、ファイル形式を昔のファイル形式として、ユーザーレベルセキュリティーを適用する事でしょうか。
 
ただし、それは、各ユーザー毎に ユーザーレベルセキュリティーファイルを配布する必要があり
他のAccessのファイルを使用している場合、影響が出る事があります。
 
 
スキルがあるのであれば
VBAでログインフォームを用意し、VBA内でユーザー認証をさせ
このユーザーには、このフォームの操作ではこんな権限を与える と言う設定をします。
  (当然データベースウィンドからテーブルやクエリを開かれたらVBAを経由できませんので、
    セキュリティーは設定できません。よって、全操作のフォームを作成する必要があります)
 
確実なのは、
SQLServer等へデーターベースを移行し、そのサーバー側でセキュリティーを設定します。

回答
投稿日時: 19/05/22 11:34:13
投稿者: totoo

ほかのpcからはリンクテーブルを持ったファイル使用するとすれば、必要なフォームだけを開くように設定して、ナビゲーションウィンドウを非表示にすればいかがですか。

回答
投稿日時: 19/05/22 11:49:59
投稿者: totoo

付け足します。フォームをスナップショットにしてください。

投稿日時: 19/05/23 19:59:02
投稿者: さー

Suzu様、totoo様
 
お世話になります。ご回答ありがとうございました。
 
・ユーザーレベル セキュリティ
→私のやりたいイメージに近いのですが、ACCESS2000では対応していないのですよね。
 会社のPC環境で実現したいので、他のACCESSファイルを使った場合にも影響が出るのは、
 あまり好ましくないです。
 
・VBAでログインフォームを用意し、VBA内でユーザー認証をさせ
 このユーザーには、このフォームの操作ではこんな権限を与える と言う設定をします。
→運用するにはこの方法がよさそうですね。VBAを勉強し、作りこもうと思います。
 
・SQLServer等へデーターベースを移行し、そのサーバー側でセキュリティーを設定します。
→これができればよいのですが、会社のPC環境のため使えません。使えるものの制限があり
つつ、セキュリティー(読み取り専用)にしないといけなく難しい状態です。
 
・ナビゲーションウィンドウを非表示にすればいかがですか。
→設定しました。非常に使い勝手がよいです。
 
皆様からいくつもの方法をアドバイスいただきましたので、参考にしていろいろ試して
みようと思います。ありがとうございました。
また何かわからないことがあった際は、ご相談させてください。
よろしくお願いいたします。