- ベストアンサー
簡単な変数値のテーブル値更新
- ログイン時のIDや外他の情報をテーブルに一時保管する方法について教えてください。
- 現在はフォームエラーなどで変数が初期化されるため、一旦テーブルに値を保管する必要がありますが、簡単な方法はありますか?
- 今後修正用やデータ閲覧用のフォームを作成する際にも同じ変数を使用する予定です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>大勢で同時に使う事が前提なので Accessは元々個人向けのアプリなので大勢が一度に更新処理を行うことなど ほとんど考慮されていないので競合やデータの破損が起きやすいです。 それを避けるためには、相当作りこまないと信頼できるものになりません。 大変だよー、止めといた方が・・・。 Access データベースを共有する方法 の前半 (SharePoint は費用が大なので。。。) http://office.microsoft.com/ja-jp/access-help/HA010279159.aspx でフロントエンドとバックエンドに分割してください http://office.microsoft.com/ja-jp/access-help/HA010240096.aspx ロック競合を回避する http://msdn.microsoft.com/ja-jp/library/cc376493.aspx (記事が古いですが役立つと思います) など。 ◎T_Login(ログイン時にレコード追加) ・SID (ログイン日時をシリアル値に変換して書込み) ←ここもスマートではない気が・・・ ・ログインID ・日付選択 ・部門ID ・店舗ID これは必要なのかな?全体の関連性が不明なので何とも言えませんけど。 (テーブルのデザインの具体的なご相談はご勘弁ください。) 社員テーブル 社員ID 主キー ←私は人事から社員番号を貰ってきてました、オートNoでも可 アカウント名 ←PCにログオンする際の名前 LAN内では一意 氏名 部門ID 店舗ID ・・・ というのがあれば DlookUp("部門ID","社員テーブル","アカウント名='" & environ("username") & "'") とかで部門IDなどが求められます。 SID は何に使っているのだろう。 ログインフォームはリンクのようにフロントエンド側(ユーザー側)のファイルに作成して Forms!ログインフォーム!日付選択 などのように参照します。 クエリについては書籍か解説サイトで勉強なさってください。 Microsoft Access 入門 などでGoogleとたくさんあります。
その他の回答 (1)
- NotFound404
- ベストアンサー率70% (288/408)
>その都度レコードセットを定義し、AddNewする事が面倒な為 テーブル自体は用意されているのでしょう? なら、削除クエリと追加クエリ、または更新クエリで出来そうですけど? あるいは ログインフォームがあるなら そのテキストボックスを参照すればよいかも。 ログインフォームはユーザーがちゃんとログインできたのを確認できたら me.visible = false で非表示にしておいて、他からはForms!ログインフォーム!ログインIDで参照できます。 以上ご参考まで。
補足
NotFound404様 毎回、回答して頂きありがとうございます。 一応、大勢で同時に使う事が前提なので、もともとPublic変数を使う事が無理だった事に気づきました。 現状は、下記テーブルを作成し、ログイン時に書き込んでます。 ◎T_Login(ログイン時にレコード追加) ・SID (ログイン日時をシリアル値に変換して書込み) ←ここもスマートではない気が・・・ ・ログインID ・日付選択 ・部門ID ・店舗ID フォームを遷移する際に、SIDだけ次のフォームに渡してます。 そこから、各フォームで必要なフィールドをDlookupで読み込んでます。 >テーブル自体は用意されているのでしょう? >なら、削除クエリと追加クエリ、または更新クエリで出来そうで>すけど? 上記で記載したテーブルは作成てますが、削除クエリ・更新クエリのやり方が分かりません。 >ログインフォームがあるなら >そのテキストボックスを参照すればよいかも。 すいません、初心者なので意味が理解出来てませんが、例えばログインフォームに非表示のテキストボックス(SID)を作成して、その情報を、各フォームから参照すると言う事でしょうか? というか、その方法が分かりません・・・ 大勢が同時に使う場合、フォームの値はどうなりますでしょうか? 質問に質問を重ねて申し訳ありませんが、参考となるURLだけでもお教え頂けましたら助かります。
お礼
NotFound404様 何度も、回答頂きありがとうございます。 >Accessは元々個人向けのアプリなので大勢が一度に更新処理を行うことなど ほとんど考慮されていないので競合やデータの破損が起きやすいです。 それを避けるためには、相当作りこまないと信頼できるものになりません。 大変だよー、止めといた方が・・・。 そうなんです、ここが一番心配な所ではありますが、今の所私にはAccessしか手段が無いので、ある程度運用上の制限をかけて運用したいと考えてます。 ある程度使えると利便性を会社が考えてくれれば、業者さんへ発注したいと考えてます。 >でフロントエンドとバックエンドに分割してください http://office.microsoft.com/ja-jp/access-help/HA010240096.aspx 最終的にはデータは、SQLServerがあるので、そちらに以降しリンクテーブルで運用する予定です。 >ロック競合を回避する http://msdn.microsoft.com/ja-jp/library/cc376493.aspx (記事が古いですが役立つと思います) ある程度目鼻たたったら、次に考えなければいけない事だと思っていましたので、参考にさせて頂きます。 >社員テーブル これは、社内の別システム(SQLSERVER2008)があるので、リンクテーブル必要な項目だけクエリで抜き出してます。 >SID は何に使っているのだろう。 SIDはログイン時のシリアル値を、T_Loginテーブルに、部門ID・店舗ID・売上日・LoginIDと共に保存させ、SIDをフォーム間で引渡しし、他のカラムは、Dlookupで引っ張り、売上サマリテーブルや売上詳細テーブルに保存させてます。 Web系ならば、セッションを使うと思うのですが、AccessでのユニークIDの作り方が分からなかったので、今の仕様にしております。 >ログインフォームはリンクのようにフロントエンド側(ユーザー側)のファイルに作成して Forms!ログインフォーム!日付選択 などのように参照します。 なるほど、勉強になりました。 片っ端から、本を購入して猛勉強中ですが、基本的なスペックが低いせいか基本的な事を理解出来てません。 取りあえず、フォームにSIDを渡して回る方向で、ある程度希望通りに動かせそうですので、何とかなりそうです。 重ね重ねアドバイス頂きありがとうございました。