Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1970 / 2272 ツリー ←次へ | 前へ→

【4417】ファイル共有に関する質問 た〜に 05/2/14(月) 13:31 質問[未読]
【4418】Re:ファイル共有に関する質問 クロ 05/2/14(月) 14:29 回答[未読]
【4419】Re:ファイル共有に関する質問 た〜に 05/2/14(月) 16:08 お礼[未読]

【4417】ファイル共有に関する質問
質問  た〜に  - 05/2/14(月) 13:31 -

引用なし
パスワード
   ACCESS2000で登録・修正・参照ができるフォームを作成し、共有サーバにmdbファイルを
置いています。
このmdbファイルは複数のユーザが同時にアクセスしますが、mdbファイルを共有モードにし、レコードロックをしない状態にしてあります。
このmdbを利用する人は、Access97・2000・2002と様々なバージョンが混在している為
運用でAccess2000のみを利用するルールを適用しています。

質問は2点で
1.運用ルールだけではなく、システム的に制限する事はできるのでしょうか?
→2000以外のバージョンでは開けないようにする。

2.フォームによるデータの書込みは一般ユーザでも自由にさせたいのですが、システムの基本となるマクロやクエリ等は編集出来ないようにするにはどうすればよいか?
(編集されても上書き保存できない状態にしたい)

【4418】Re:ファイル共有に関する質問
回答  クロ  - 05/2/14(月) 14:29 -

引用なし
パスワード
   どの程度のものがいいのか分かりませんが...
1について
SysCmd(acSysCmdAccessVer)で使用しているAccessのバージョンを
取得できます。
2について
主使用クエリ/マクロは隠しオブジェクトにしておき、起動時にオプションの
「隠しオブジェクト」のチェックを外すことで不可視にする。
#このオプションをmdb終了時に元に戻すなら
Application.SetOption "Show Hidden Objects", True
を終了時のコード内に書いておく

以下のようなモジュールを作成してマクロのAUTOEXECで「プロシージャの実行」で
指定します。
但し、Shift+ダブルクリックでAUTOEXECマクロはキャンセルされます。

Function VerChk()
If SysCmd(acSysCmdAccessVer) <> "9.0" Then
  MsgBox "あなたのアクセスのはバージョンは " & SysCmd(acSysCmdAccessVer) & " です。" & vbCrLf & _
        "このmdbはAccess2000(Ver9.0)でないと開くとは許可されていません。", vbCritical, "警告"
  Application.Quit
End If
'オプションの「隠しオブジェクト」のチェックを外す
Application.SetOption "Show Hidden Objects", False
End Function

【4419】Re:ファイル共有に関する質問
お礼  た〜に  - 05/2/14(月) 16:08 -

引用なし
パスワード
   クロさん
無事に解決できました。有難うございました。

1970 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078283
(SS)C-BOARD v3.8 is Free