• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:簡単な変数値のテーブル値更新)

簡単な変数値のテーブル値更新

このQ&Aのポイント
  • ログイン時のIDや外他の情報をテーブルに一時保管する方法について教えてください。
  • 現在はフォームエラーなどで変数が初期化されるため、一旦テーブルに値を保管する必要がありますが、簡単な方法はありますか?
  • 今後修正用やデータ閲覧用のフォームを作成する際にも同じ変数を使用する予定です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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とたくさんあります。

sujinosuke00
質問者

お礼

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を渡して回る方向で、ある程度希望通りに動かせそうですので、何とかなりそうです。 重ね重ねアドバイス頂きありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

>その都度レコードセットを定義し、AddNewする事が面倒な為 テーブル自体は用意されているのでしょう? なら、削除クエリと追加クエリ、または更新クエリで出来そうですけど? あるいは ログインフォームがあるなら そのテキストボックスを参照すればよいかも。 ログインフォームはユーザーがちゃんとログインできたのを確認できたら me.visible = false で非表示にしておいて、他からはForms!ログインフォーム!ログインIDで参照できます。 以上ご参考まで。

sujinosuke00
質問者

補足

NotFound404様 毎回、回答して頂きありがとうございます。 一応、大勢で同時に使う事が前提なので、もともとPublic変数を使う事が無理だった事に気づきました。 現状は、下記テーブルを作成し、ログイン時に書き込んでます。 ◎T_Login(ログイン時にレコード追加) ・SID (ログイン日時をシリアル値に変換して書込み) ←ここもスマートではない気が・・・ ・ログインID ・日付選択 ・部門ID ・店舗ID フォームを遷移する際に、SIDだけ次のフォームに渡してます。 そこから、各フォームで必要なフィールドをDlookupで読み込んでます。 >テーブル自体は用意されているのでしょう? >なら、削除クエリと追加クエリ、または更新クエリで出来そうで>すけど? 上記で記載したテーブルは作成てますが、削除クエリ・更新クエリのやり方が分かりません。 >ログインフォームがあるなら >そのテキストボックスを参照すればよいかも。 すいません、初心者なので意味が理解出来てませんが、例えばログインフォームに非表示のテキストボックス(SID)を作成して、その情報を、各フォームから参照すると言う事でしょうか? というか、その方法が分かりません・・・ 大勢が同時に使う場合、フォームの値はどうなりますでしょうか? 質問に質問を重ねて申し訳ありませんが、参考となるURLだけでもお教え頂けましたら助かります。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 他のテーブルの抽出条件で更新したい。

    ・売上ヘッダ  伝票NO,売上金額合計 ・売上明細  伝票NO,明細NO,商品番号,売上金額 上記のようなテーブル構成の2つのテーブルがあります。 売上ヘッダの主キーは、伝票NOで売上明細の主キーは、伝票NOと明細NOです。 ここで、商品番号1の、売上金額に500円の差額があるため、、修正をしたいと考え、売上ヘッダと売上明細にある売上額を変更したいのですが、売上ヘッダの売上金額合計を更新する方法がわかりません。 ご教授いただけないでしょうか。

  • 集計表の外部結合

    SQL文について勉強中ですが、集計のやり方が分からないためお教えください。 SQL SERVER2008r2 Management StudioでSQLを書いてます。 ◎TM部門(店舗マスタ) 店舗CD 店舗名 ◎TM店舗部門(店舗部門マスタ) 店舗部門CD 店舗部門名 ◎TT売上伝票(売上伝票) 伝票番号 行 店舗CD 店舗部門CD 売上日 売上時間 商品CD 商品名 数量 税抜単価 税込単価 税抜金額 税込金額 消費税 伝票合計 上記テーブルがあり、日付を限定して集計したいのですが、うまくSQLが書けません。 【希望結果例】 集計期間:2014/04/20 ~ 2014/05/20 日付      | 店舗名 |店舗部門名  |  日別合計 2014/05/21 | 店舗A  | 店舗部門A   | sum(伝票合計) 2014/05/21 | 店舗A  | 店舗部門B   | sum(伝票合計) 2014/05/21 | 店舗A  | 店舗部門C   | sum(伝票合計) 2014/05/21 | 店舗B  | 店舗部門D   | sum(伝票合計) 2014/05/21 | 店舗B  | 店舗部門E   | sum(伝票合計) 2014/05/21 | 店舗B  | 店舗部門F   | sum(伝票合計)                    ~ SELECT 伝票日付, 店舗CD, 店舗部門CD, SUM(伝票合計) AS 日別合計 FROM TT売上伝票 GROUP BY 伝票日付,店舗CD,店舗部門CD HAVING 伝票日付 BETWEEN '2014-04-21' AND '2014-05-20' AND 店舗CD IN(1,2,3,4) ORDER BY 伝票日付,店舗CD,店舗部門CD 上記の結果 日付      | 店舗CD   |店舗部門CD   |  日別合計 2014/05/21 | 店舗A    | 店舗部門A   | sum(伝票合計) 2014/05/21 | 店舗A    | 店舗部門B   | sum(伝票合計) 2014/05/21 | 店舗A    | 店舗部門C   | sum(伝票合計) 2014/05/21 | 店舗B    | 店舗部門D   | sum(伝票合計) 2014/05/21 | 店舗B    | 店舗部門E   | sum(伝票合計) 2014/05/21 | 店舗B    | 店舗部門F   | sum(伝票合計) 集計は全く問題ないのですが、ここからリレーションし、店舗名、店舗部門名を表示したいのですが、書き方が分かりません。 無知ながら、下記方法を試しました結果 SELECT TT売上伝票.店舗CD, TM店舗.店舗名, TT売上伝票.店舗部門CD, TM店舗部門.店舗部門名 FROM TT売上伝票 JOIN TM店舗 ON TM店舗.店舗CD=TT売上伝票.店舗CD JOIN TM店舗部門 ON TM店舗部門.店舗部門CD=TT売上伝票.店舗部門CD UNION ALL SELECT 伝票日付, 店舗CD, 店舗部門CD, SUM(伝票合計) AS 日別合計 FROM TT売上伝票 GROUP BY 伝票日付,店舗CD,店舗部門CD HAVING 伝票日付 BETWEEN '2014-04-21' AND '2014-05-20' AND 店舗CD IN(1,2,3,4) ORDER BY 伝票日付,店舗CD,店舗部門CD エラーメッセージ ステートメントが UNION、INTERSECT、EXCEPT のいずれかの演算子を含んでいるときは、選択リスト内に ORDER BY 項目が必要です。 無知ながら、UNION演算子でやる方法と、サブクリエを使う方法があるのではと思いますが、出来れば利点と欠点を含めてお教え頂けたら幸いです。

  • ACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです

    フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。 売上テーブル  ID   商品コード  日付    金額   1    G1     20080101  532153  2    G1     20080101  564281  3    G1     20080301  538123  4    J4     20080301  124531  5    J4     20080302  125483 ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型 これを使い、 フォームではまず レコードナンバーを入力画面        ↓ レコード番号を入れると、そのレコードのデーターが画面に表示され、 その画面で修正可能        ↓  保存 ボタンで保存 という流れです。 レコードナンバーはIDを使おうと思っています。 データの量が莫大な為、コンポボックスなどは使えません。 できるだけ、VBAなどは使わずに作りたいです。 よろしくお願い致します。

  • SQL SERVER 店舗毎のTOP10

    表題の件のSQLについてアドバイスお願いいたします。 DB:SQL SERVER 2008 R2 テーブル:売上伝票 カラム 店舗|伝票No|伝票日付|商品CD|商品名|数量|単価|金額(数量x単価) SELECT TOP 10 店舗NO, 商品CD, 商品名, SUM(数量) AS 販売数, SUM(金額)AS 販売金額 FROM 売上伝票 WHERE 伝票日付 BETWEEN [開始日] AND [終了日] GROUP BY 店舗NO,商品CD,商品名, ORDER BY 店舗NO,販売金額 DESC 当然ですが、上記のSQLでは、一番若い店舗NOのトップ10しか抽出できません。 店舗別、販売金額のトップ10を抽出するための、SQL文についてお教えください。

  • 至急Accessでフォームで検索できるようにしたい

    Accessのフォームで店舗IDと日付(例:201501-201502まで)を入力して検索ボタンを押したら、A店B店C店の過去1年分の売上履歴を蓄積したテーブルから(仮:テーブル名:全店舗売上履歴)その月の売上履歴がサブフォームにエクセルのような形式(表形式)でレコードが出てきて 別の枠に集計金額を表示させるような「売上履歴検索ツール」を作りたいのですが、どうしてもうまく行きません。 サブフォームを作りましたが どうしてもエクセルのような表形式でみれるように作れません。 また、店舗IDと日付で検索させるには VBAみたいな命令文が必要でしょうか? 作り方をアドバイスいただけると助かります。 (1)サブフォームに履歴をレコードごとに表示させたい (2)店舗ID、日付で検索させたい (3)検索範囲での集計金額を表示させたい (4)月の売上履歴をテーブルに蓄積させたい この4つのやり方を探しています。 【フォーム】 店舗ID→検索入力 日付→年月の検索入力 サブフォームに 日付(年月) 店舗ID 店舗名 販売商品名 数量 金額 をレコードごとに表示 その他(枠:フレーム) 集計した金額を表示 手順的な形で教えていただけると分かり良いです。 よろしくお願いいたします。

  • access でテーブルを作成したい。

    店舗の棚毎の管理とその売上を隔日で集計したい。 店舗住所(1店、2店、・・) 1店の棚(A棚、B棚、・・) A棚の○月○日の売上計 店舗情報=ID・店舗名・住所・電話 棚情報=ID・店舗ID・棚No・棚の種類 棚情報=ID・棚No・日付・売上額 本部-1店舗情報-A棚-○月○日・123円               -○月△日・456円           -B棚-○月○日・789円              -○月△日・1012円      2店舗情報A棚-○月○日・234円               -○月△日・567円           -B棚-○月○日・890円              -○月△日・901円  店舗IDつないで本部と店舗は、サブフォームでうまくできましたが 棚情報のつなぎ方がどうしても出来ません。 いい方法があれば教えて頂けますようお願いします。

  • 複数のテーブルの検索について

    お世話になっております。 題名にありますように、複数のテーブルに登録のあるデータを、テキストフォームやチェックボックス、プルダウンなどのフォームで入力(選択)されたものを(PHPにて)検索したいと考えておりますが、googleなどで調べていても、キーワードが適切でないためか、得たい情報を得られずにおります。 以下のようなテーブル構成で、上記質問のような検索をする場合、(googleなどで検索するには)どのようなキーワードが適切でしょうか?ソースを教えていただくのが簡単ですが、理解を深めたいと考えての質問です。お忙しい中恐縮ですが、アドバイスのほど宜しくお願いいたします。 table_a id name address category table_b no id title subject 上記テーブルA、Bに設定されたフィールドを、各フォームににて入力(選択)されたフォームで一括で検索するソースを学びたいのです。 ※table_a と table_b にある id で紐付けています。

  • SQL2000 ワークテーブルの作成文について

    いつもお世話になっております。 SQLを学んで3ヶ月の初心者です。 下記の内容でご理解いただけ、分かる方がいましたら教えていただけないでしょうか。 一応、自分なりに以下作成したのですが、結果が反映されなく困っています。 よろしくお願い致します。 ※質問内容※ ・条件に従い、Aテーブルから必要な項目を抜き出し、Bワークテーブルを作成する。 ・@・・・頭で宣言しています。 delete from Bワークテーブル insert into Bワークテーブル ( ID, CD, 伝票番号, 部門CD, 引当日, ユーザID, ) select Aテーブル  Cテーブル.ID,  Aテーブル.CD,  Aテーブル.伝票番号,  Aテーブル.部門CD,  Aテーブル.引当日,  Aテーブル.ユーザID, from Aテーブル INNER JOIN Cテーブル ON Cテーブル.ID = @ID where Aテーブル.CD = @CD and ((Aテーブル.伝票番号 >= @伝票番号FROM) OR (@伝票番番号FROM IS NULL)) and ((Aテーブル.伝票番号 <= @伝票番号TO) OR (@伝票番号TO IS NULL)) 以上。

  • Accessで2つのテーブルを紐づけできるフォーム

    Access初心者です。 仕事で使う経理業務用のデータベースを作ることになったのですが、要求された作業をするためのフォーム画面づくりについて困っています。 【実現したいこと】 ・日々の「売上テーブル」と「口座入金テーブル」を紐づけさせる作業をできるようにしたい。 【要件】 ・日々、売上を銀行口座に入金しています。基本は毎日入金していますが、2日分以上の売上をまとめて入金することもあり得ます。 ・Access上で両者を紐づけさせておき、口座入金に対して、入金の明細として売上テーブルを呼び出せるようにしたいのです。 ・以上のことから、「口座入金テーブル」と「売上テーブル」は一対多の関係です。 【理想形のイメージ】 フォーム画面に「口座入金テーブル」と「売上テーブル」を両方表示させて、 ・「売上テーブル」のレコードを選択する(複数選択可) ↓ ・対応する「口座入金テーブル」のレコードを選択する ↓ ・結果、「売上テーブル」に「口座入金ID(口座入金テーブルの主キー)」の値が入力されて、両者が紐づく …というイメージでおります。 今のところ、フォーム上で『「売上テーブル」のレコードひとつひとつに「口座入金ID」の数字を手入力する』ということしかできておらず、 できれば手入力をしなくて済むようにしたいと考えています。 これを実現するためにはどうしたらよいでしょうか? VBAを活用しないと実現できないのかな?と考えて勉強をはじめましたが、 まだまだ道のりは長いようで、具体的にどのようにすればよいのかは全然見当がついていません。 アドバイス頂けると大変助かります。 すみませんが、どうぞよろしくお願いします。

  • access2003 抽出条件が持ち越されてしまう

    http://okwave.jp/qa3580875.html ↑にて質問させていただいた者です。  一部繰り返しになりますが、2000種ほどの商品を扱っています。伝票を見ながらフォームから直接売上入力を行いたく思います。 ◆親)売上入力フォーム:売上管理番号/日付/取引先/取引先伝票番号/売上合計金額 ◆子)売上明細フォーム:商品コード/商品名/単価/数量/明細金額 ◆売上入力テーブル:売上管理番号/取引先/日付/取引先伝票番号 ◆売上明細テーブル:明細番号/売上管理番号/商品コード/数量/明細単価 子フォームで商品コードのフィルターとして、 1)親フォームで選択した取引先の商品のみ→[Forms]![売上入力フォーム]![取引先]を導入 2)ワイルドカード「Like "*" & [商品コードの一部を入力] & "*"」 のふたつを使っていますが、うまく動作してくれません。 いったん商品コードを選択すると、明細の次の行に移動しても取引先選択のポップアップが出ず、コンボボックスには同じ選択肢が提示されます。さらに、新しいレコードに移動してもポップアップなし&同じ選択肢が続きます。 この状態を回避する方法を教えてください。 長くなりましたが、どうぞよろしくお願いします。

専門家に質問してみよう