
販売管理のデータベースを作成しています。
『販売店マスターテーブル』
販売店コード(主キー)
販売店名
郵便番号
住所
電話番号
営業担当者コード
『営業担当者テーブル』
営業担当者コード(主キー)
営業担当者名
『販売伝票テーブル』
伝票番号(主キー)
売上日
販売店コード
この中で、『販売店マスターテーブル』から、販売店コード,販売店名,郵便番号,住所,電話番号,営業担当者コードを、
『営業担当者テーブル』から、営業担当者名を使って、新しいクエリを作成しました。
そのクエリを基にフォームを作成しましたが、フォームに新規レコードを入力できません。
念のため、販売店コードを『販売伝票テーブル』からとってきたら、新規レコードが入力できるようになりました。
これは、何か主キーの関係で入力できないんでしょうか。
もし、『販売伝票テーブル』から販売店コードをとらなくちゃいけないとしたら、それはナゼでしょうか・・。
初歩的なことで申し訳ありませんが、とても困っています。
どなたかお分かりになる方、教えて下さい。
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
>営業担当者コードは表示したいので、キー列を表示しない」のチェックを外してあ
>ります
コンボボックスを開くと [営業担当者コード][営業担当者名]の2列が表示される
状態ですね。
簡単な方法は2つあります。
そのコンボボックスをコンボ1 担当者の名前を表示したいテクストボックスをテキ
スト1とすると
1.コンボボックスの表示から持ってくる
コンボ1のプロパティを開きイベントの更新後処理にコードビルダで
Private Sub コンボ1_AfterUpdate()
テキスト1 = コンボ1.Column(1)
End Sub
と記述すればテクスト1にデータを取り込めます。
2.クエリから取り込む
フォームの元になるクエリに『営業担当者テーブル』を追加してあれば営業担当者名
をクエリのフィールドに追加してテクスト1のプロパティのコントロールソースに
営業担当者名を設定すれば良いと思います。
Lookupとか使うやりかたも有りますが上記でOKではないでしょうかLookupなどは
ご自分で勉強してみてください。頑張ってくだい。
ありがとうございました。
本当に本当に助かりました。
O_cyanさんのおかげで、リレーションの大切さを少しは分かった気がします。
コンボボックスのデータを参照するコードビルダも、何もかもすべて勉強になりました。アクセスは難しくて苦手ですが、これからも勉強してがんばります。
No.3
- 回答日時:
>『販売店マスターテーブル』から、販売店コード,販売店名,郵便番号,住所,電話番
>号,営業担当者コードを『営業担当者テーブル』から、営業担当者名を使って、新
>しいクエリを作成しました。そのクエリを基にフォームを作成しましたが、フォー
>ムに新規レコードを入力できません
これは販売店マスタにレコードを入力するフォームですよね。このフォームの
クエリに販売伝票テーブルから販売店コードを持ってくるのは構築上おかしい
ですよね。
リレーションは『営業担当者テーブル』営業担当者コードと『販売店マスターテー
ブル』営業担当者コード が1対多のリレーションで繋がり『販売店マスターテーブ
ル』販売店コードと『販売伝票テーブル』販売店コード が1対多で繋がっている
リレーションだと思いますが
>『営業担当者テーブル』から営業担当者名を使って新しいクエリを作成しました
これは営業担当者コードの誤りではないですか?
『営業担当者テーブル』に担当者全て入力されているとすればこのフォームで
『営業担当者テーブル』にはレコードを追加できない仕様です。
営業担当者コードは主キーになっていて重複しない設定になっているはずです。
『営業担当者テーブル』からは営業担当者コードのみ『販売店マスターテーブル』
に書き込みに行き(営業担当者名フィールドがないので)営業担当者名は非連結の
フィールドを作り表示だけにする様にすれば大丈夫だと思います。
ありがとうございました。
O_cyanさんの言うとおり、「営業担当者コード」を『販売店マスターテーブル』から持ってきたら、データが入力できました。
そこで、「営業担当者コード」をコンボボックスにして、『営業担当者テーブル』の、「営業担当者コード」と「営業担当者名」を表示するように、コンボボックスを作成しましたが、その下に作った、非連結のテキストボックスに、コンボボックスの2列目の「営業担当者」を参照させるにはどうしたらいいんでしょうか。
営業担当者コードは表示したいので、キー列を表示しない」のチェックを外してあります。
もしお分かりになったら教えていただきたいのですが・・。
こんな初歩的なことを伺ってごめんなさい。
No.2
- 回答日時:
多分問題は、営業担当者テーブルから持ってきた
営業担当者名です。
営業担当者テーブルの担当者コードのデータ型は何になっていますか?
もし数値型やテキスト型なら、そのフォームにデータを入れると、
営業担当者テーブルの主キーである、「営業担当者コード」にデータが入りませんよね?
主キーは基本的に空白にすることはできないので
担当者テーブルの担当者コードをオートナンバーにするか、
担当者テーブルにデータを入力してから
コンボボックスなどで選択するスタイルにしてはどうでしょう?
ありがとうございました。
やっぱり「営業担当者コード」と「営業担当者名」が問題みたいです。
今は、コンボボックスの値を、非連結のテキストボックスに参照させる操作で止まっています・・(T_T)
なぜ「キー列に表示しない」が推奨なんでしょう・・。
Accessは難しいですね・・。もうわけが分かりません(T_T)
No.1
- 回答日時:
販売店マスターテーブルの販売店コードというのは、主キーに設定されているものですよね。
これは(主キーというのは)、重複することのないデータです。つまり 1 A商店 2 B商店とつけていくものですよね。1 C商店とつけることはできません。(重複するから)
この場合の、販売店コードは、1は何なにで2が何なにだということを指定するためのものです。
その点 販売伝票テーブルの販売店コードは主キーには設定されていません。
つまり、販売店の名前を入力する代わりに販売店コードを入力するわけですよね。
ですから、販売伝票テーブルから販売店コードを持ってくるわけです。
うまく説明できなくてすみません。
さっそくの回答、ありがとうございました。
kake_angelさんの方法で作ってみたら、「販売店コード」は入力できるようになりましたが、それ以降はやっぱり入力できませんでした。
でも、早く答えていただいて嬉しかったです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft 365 Basic サブスク...
-
列が255以上のCSVファイルをAcc...
-
Accessでレポートを印刷する時...
-
Microsoft365にAccessってあり...
-
Accessのクエリで、replace関数...
-
Accessのリンクテーブルのパス...
-
アクセス レポートを開いたとき...
-
Access DAOのExecuteメソッドの...
-
アクセス ステップインのやり方
-
実行時エラー3131 FROM 句の構...
-
「テキストデータで送ってくだ...
-
access2021 強制終了してしまう
-
ACCESS VBA でのエラー解決の根...
-
Accessのフォーム上のテキスト...
-
Access IF文でテーブルに存在し...
-
Accessのスプレッドシートエク...
-
access2021 VBA メソッドまたは...
-
access2019の起動が遅い
-
Accessでフォームに自動入力し...
-
accessの代わりになるもの
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのフォームのテキストボ...
-
AccessVBA SetFocusとGoToCon...
-
初心者なのですが・・・access...
-
Accessのフォームで計算した結...
-
access2019 コンボボックスの値...
-
Access フォームの参照先について
-
アクセスのデータをCSVファイル...
-
Access97のフォームで一人につ...
-
Accessでアンケート集計を構築...
-
複数の条件にあてはまるものを...
-
accessについてです。
-
Access2002のリレーションにつ...
-
差込印刷での全角表示について...
-
日付型のフィールドに空白を入...
-
アクセスのエラー「クエリには...
-
SQL文で パラメータが少なすぎ...
-
Excleピボットでデータのない部...
-
Accessで、1つの項目に複数の...
-
ACCESS クエリの抽出条件に他の...
-
アクセスで追加した項目に全て...
おすすめ情報