- ベストアンサー
AccessでログインIDを抽出条件に指定する方法
- AccessでログインIDを抽出条件に指定する方法について調査しています。個人情報保護のためにログインユーザのみが自分の情報を閲覧できるようにしたいと考えています。現在はユーザ毎にログインしたIDが抽出条件になっており、それをサブフォームに表示したいと思っています。VBAでログインIDを取得することはできますが、それを抽出条件にする方法が分かりません。
- AccessでログインIDを抽出条件に指定する方法を探しています。個人情報保護のために、ログインユーザのみが自分の情報を閲覧できるようにしたいと考えています。現在はユーザ毎にログインしたIDが抽出条件になっており、それをサブフォームに表示したいと思っています。VBAでログインIDを取得することまではできましたが、それを抽出条件にする方法が分かりません。
- AccessでログインIDを抽出条件に指定する方法について調査しています。個人情報保護のためにログインユーザのみが自分の情報を閲覧できるようにしたいと思っています。現在はユーザ毎にログインしたIDが抽出条件になっており、それをサブフォームに表示したいと考えています。VBAでログインIDを取得することはできますが、それを抽出条件にする方法がわかりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
折角のやる気に水をさすようで残念ですが VBA でどんなに足掻いても、所詮はAccessですから それなりのモノにしかなりませんよ。 キッパリ セキュリティの観点から考えると 1・OSレベルのアクセス権で制御(ユーザー分ファイルを分割しなくてはならない) 2・Accessのワークグループ情報に基づく制御 MDBファイルであれば有効ですがACCDBではなくなってしまいました。 Access 2003 のユーザーレベル セキュリティを Access 2010 で設定または変更する http://office.microsoft.com/ja-jp/access-help/HA010341994.aspx またユーザーごとにテーブルを分けなくてはなりませんので 後々管理が煩雑になると思います。 3・VBAで頑張って、最終的に、MDE か ACCDEにしても 分かる人には分かっちゃうので、余り期待しないほうが良いかと。 それを踏まえたうえで、クエリの抽出条件に environ("username") としてみてください。Windowsのログオン名で選択されます。 ただし、大文字・小文字・全角・半角は同一視されます。
その他の回答 (1)
- layy
- ベストアンサー率23% (292/1222)
クエリの条件とするには、 テーブルの値で結合か抽出条件に記載するかと思います。 案1) ログイン者テーブルを作って、値(八百屋さんのID)を格納して、 八百屋さん、魚屋さん、おもちゃ屋さんらの元にするテーブルと、 項目結合すればできるのではないでしょうか。 案2) global変数に格納したら抽出条件に記載できないか。 フォームなどでも画面のどこかに現在のログイン者を表示させるかと思うので、 mdbのどこでも使えるものとして確保したらいいのではと思います。
お礼
早速のお返事ありがとうございます。 頂いた回答(案1)をすぐに試してみたのですが、私の技術がまだまだ初心者レベルのために四苦八苦しております。ツール作成の要件として、私以外の(ほぼ)素人がメンテナンスが可能なものをという指示があったのでそのラインぎりぎりかなと今は上司に方針を含めて確認をとっているところです。 (案2)については何度も失敗しながらようやく理解が進んできたところです(未だ成功には至っていませんが、、)。 少なくとも要求されている要件が入門者レベルの私には合っていないとよくわかったので合わせて上司に再度相談してみます。 個人情報の徹底管理・誰にでもメンテナンスできる簡易性、両方を満たすのは難しいのだと思いました。 お手間とらせて申し訳ありませんでした。 お返事ほんとうにありがとうございました。
お礼
丁寧なお返事ありがとうございます。 そもそもアクセスがなんたるかを知らずにおそるおそるテーブルをつくって、、と作業を進めていて躓いて困っていたところでした。 頂いた回答をもとに上司(私同様にほとんど素人です)と相談したところ、 1・OSレベルのアクセス権で制御(ユーザー分ファイルを分割しなくてはならない) →不可:端末管理は他部署担当のために依頼しても断られるとのこと 2・Accessのワークグループ情報に基づく制御 →不可:上記理由に加え、私が現場から離れても素人レベルでメンテナンスできるものをつくってくれとのこと 3・VBAで頑張って・・・ →苦慮中:いろいろ調べたのですが結局のところ、仰るとおりやはりわかってしまうようですね。。 教えていただいたように、environ("username")は試してもう一度上司にセキュリティ上の保証ができない確認をとって作業をつづけるか考えなおしてみようと思います。 ご丁寧にありがとうございました。