
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
ozoxqさんへ
受注データのロックについては、下記のように対応するのがお勧めです。
受注データをサブフォーム内で、n個書き込んで行くのであれば、サブフォームを編集ロックにして、メインフォームにサブフォームのロックをFalseに代入するボタンをつけます。勿論、ページ移動時には、サブフォームをロックしてしまえば、開いたときやページを移動したときは、ロックされた状態で出現し、ボタンを押したときだけ、編集可能になります。
受注データをメインフォーム内で行っているときは、ロックしたいフィールドをコントロールするボタンをつけること。フィールドひとつずつのプロパティを設定するのが面倒であれば、ロック解除ボタンをヘッダーかフッターに移動して、ページをロックしてしまえばOKです。
私の場合は、ロックしているかどうかが見た目で分かるように、ロックするときと解除するときに、フィールドの背景色も代入するようにしています。
No.3
- 回答日時:
ozoxqさんへ
商品コードと商品名などのn個積み上げのデータは、サブフォームに収めているのではと思います。
私なら、レコード移動時のアクションで、メインフォームの顧客コードのフィールドをロックすることと、フィールドの移動で、ロックされた顧客コードに移動するようにします。顧客名称は最初から編集ロックしてしまいます。
そうすると、移送した再に誤ってタッチしてしまって、Key情報を消してしまうリスクが減ります。
新規登録時には、新規登録ボタンを付けて、そのマクロの中で、顧客コードのロックをはずします。また、顧客コードをコンボボックスにして、顧客コードと顧客名を表示させ、顧客コードの更新後処理で、カラム関数で顧客名を代入します。
こんな感じです。
この回答への補足
ご回答をありがとうございます。
参考にさせていただき色々やってみたいと思います。
受注データのロックだと如何でしょうか。
ご回答頂きました設定は受注テーブルに対しても同様に考えればいいのでしょうか。
宜しくお願いします。
No.2
- 回答日時:
>「受注テーブル」に登録した「顧客テーブル」或は「商品テーブル」が後作業で、別顧客や別商品にデータ変更が容易に容易に変更出来てしまう事です。
あ~、そういう事ね。
普通は、顧客や商品には「顧客コード」や「商品コード」など「重複しない固有のコード」を割り当てて、それで管理します。
受注テーブルには、「顧客コード」と「商品コード」と「受注日」や「出荷予定日」や「受注数」を入力します。
この時、顧客の情報や、商品の情報は、受注テーブルには入れません。
受注データから、顧客の情報や、商品の情報を引っ張る場合には、受注テーブル内の「顧客コード」や「商品コード」から、それぞれのテーブル内の該当レコードを呼び出して、常に最新の情報を表示するようにします。
商品や顧客を管理する場合、一度使った「固有のコード」は、使い回ししないようにします。
逆に「顧客が住所変更した」とか「顧客が結婚などで姓が変わった」とかって場合は、新規に顧客を作らないで、既存の顧客の情報を変更します。
顧客マスターを書き換えても、受注テーブルには「顧客コードしか入ってない」ので、問題は起きません。
受注テーブルを元に、受注した顧客を表示する際には、コードから最新の顧客の情報を引っ張るので、顧客テーブルを更新すれば、常に最新の顧客の情報が出ます。
商品の場合は、ちょっと工夫が必要。
仕入先が変わったなどの場合は、既存の商品のデータを更新すれば良いですが、価格改定があった場合は、新しい商品コードを割り当て直して「同じ名前の別の商品」として扱います。
例えば「りんご」が「105円」から「108円」に変わったら、以下の2レコードが商品テーブルに存在する事になります。
コード 商品名 単価 備考
0001 りんご 105 新規受注禁止
0002 りんご 108
価格改定前に105円で受注した「りんご」は、コード「0001」で受注データを打ち込みます。すると、自動的に受注データは「105円で受注」したことになります。
価格改定後に108円で受注した「りんご」は、コード「0002」で受注データを打ち込みます。すると、自動的に受注データは「108円で受注」したことになります。
うっかり、価格改定後に「コード0001」で受注データを打ち込んだ場合は、備考に「新規受注禁止」と入っているので、打ち間違いに気付きます。
商品マスタの単価を、いきなり105円から108円に書き換えてはいけません。
単価を書き換えると、旧単価で受注した物と、新単価で受注した物が、区別できなくなります。
ここで重要なのは「受注テーブルには、商品や顧客の情報は入れない」と言う事です。
受注テーブルに、商品や顧客の情報を入れてしまうから「受注テーブルの商品&顧客の情報と、商品テーブル&顧客テーブルの内容が食い違ってしまう」のです。
そして、質問者さんは「受注テーブルの商品&顧客の情報と、商品テーブル&顧客テーブルの内容が食い違ってしまうから商品テーブルや顧客テーブルを変更不可にしたい」と言う「誤った対処方法を探す事になっているのです。
「根本的な運用方法が間違っている」ので、そこから考え直しましょう。
基本は「受注テーブルには、商品や顧客の詳細情報は入れない。商品や顧客の最新データを引っ張るための固有のコードだけを入れる」です。
根本的な部分で「運用を間違っている」ので「受注管理システムの使い方を根本的な部分から改める必要がある」と思います。
No.1
- 回答日時:
>登録済みの顧客や商品を何だかのミス操作で全く別のレコードに書き換えてしまうケースがあり困っています。
クエリでレコードをアップデートしている限り、そういうバグは発生しません。
そういうバグが発生するのは、自前で書き換えるべきレコード位置を調べて、そのレコードの内容を自前で書き換えている場合だけです。
「レコード位置を調べる」と「レコードの内容を自前で書き換える」の間に、並列処理で「レコードの更新」が行われると、もう既に「調べた位置に、目的のレコードが存在せず、別の場所になっている」と言う可能性があります。
レコードの更新を「クエリのUPDATE文」で行う限り、上記のような「並列処理の問題」は起きません。
また、アクセスのmdbは「定期的に最適化を行わないと、ガベージコレクションでのゴミが溜まって、修復しないとアクセス不可能になる」ので、日次処理などで毎日のバックアップを行う際に、データベースの最適化を実行しましょう。
この回答への補足
ご回答頂きありがとうございました。
「レコードの更新 クエリUPDATE」についてを再度調べさせて頂きました。
私の質問の仕方が下手だったのでしょうか、質問させて頂きました内容に外れている、或は知識不足の為、理解できずなのか判らない状況です。
改めて補足させて頂きます。宜しくお願いします。
現在、登録済みの「顧客テーブル」と「商品テーブル」を紐づける「受注テーブル」を日々入力の積み重をしています。「受注テーブル」は受注時点で既存の「顧客テーブル」の「商品テーブル」から選択しています。「受注テーブル」は商品の発送時点等で再度呼び出し入力しているのですが、ここで困っている事が今回の質問です。
「受注テーブル」に登録した「顧客テーブル」或は「商品テーブル」が後作業で、別顧客や別商品にデータ変更が容易に容易に変更出来てしまう事です。
追加情報の入力が前提なので、追加・変更が出来て当たり前なのですが、顧客そのものが容易に変わってしまう事に困っています。
チェックボックス等を設け、外せばそのレコードの変更が出来る様な、或はその程度の方法を探しています。
ご回答頂きました「レコードの更新 クエリUPDATE」はこの事に該当しているのでしょうか。
知識不足で恐縮ですが、宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- 仕事術・業務効率化 使用中のソフトで、インボイス制度に対応する為の作業料が30万以上。普通? 4 2023/06/15 21:26
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- ドメイン・サーバー・クラウドサービス 独自ドメインでのNSレコード設定 1 2023/07/12 18:36
- その他(悩み相談・人生相談) 洋服の店員に、お会計の際ポイントカードの登録を勧められ、iPadに情報登録して下さいと言われ、登録し 4 2022/10/14 15:59
- 消費税 適格請求書発行事業者の登録・消費税申告について 7 2023/05/20 11:54
- ヤフオク! 関税 詐欺でしょうか?ヤフオク 3 2023/06/25 11:22
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- ハッキング・フィッシング詐欺 アマゾンを語るメールがまた来た 5 2023/05/11 18:56
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESS 複数のフォームから同一テーブル参照
Access(アクセス)
-
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
-
4
Access サブフォームでの選択行の取得
その他(データベース)
-
5
accessのロック
その他(データベース)
-
6
Me.FilterOn = True は先でも後で
Access(アクセス)
-
7
Accessテキストボックスの未入力チェック
その他(コンピューター・テクノロジー)
-
8
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
9
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
10
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
11
YES/NO型の値
Excel(エクセル)
-
12
access setfocusについて
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access VBAでクエリーのレコー...
-
ワードでの単純作業の効率化に...
-
アクセスのオートナンバーについて
-
Access 縦(行)のデータを横(列)...
-
郵便番号更新による既存顧客住...
-
Access2000 テーブルのデザイン...
-
Accessで名寄せグループの関係...
-
Access フォームのデータがテー...
-
ACCESS で マクロの中でフィ...
-
Access 既に開いているフォー...
-
クエリーの条件設定、誰か教え...
-
データベースの1要素に複数デー...
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
エクセルVBAで5行目からオート...
-
Accessでテーブル名やクエリ名...
-
Access テキスト型に対する指定...
-
Accessでテーブルからテーブル...
-
エクセルグラフの凡例スペース
-
アクセス エラーを数値「0」に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access VBAでクエリーのレコー...
-
Access フォームのデータがテー...
-
データベースの1要素に複数デー...
-
Access IF文でテーブルに存在し...
-
ワードでの単純作業の効率化に...
-
Access 既に開いているフォー...
-
別のDBからテーブルをコピーす...
-
顧客IDを入力すると顧客名や住...
-
ACCESS で マクロの中でフィ...
-
ワードで保存するファイル名の...
-
Access 縦(行)のデータを横(列)...
-
シングルクォーテーションとダ...
-
ADOでレコードを閉じるタイミン...
-
Access レコードロックについて...
-
Accessデータベースで行と列を...
-
テーブル1 2 3 の結合
-
子フォームから別(孫)フォー...
-
Access2013VBA 複数のテーブル...
-
主キーやオートインクリメント...
-
Accessで名寄せグループの関係...
おすすめ情報