Access2002 SP2を利用して、所属マスタと職員マスタを結合した際に職員が正しく表示されない問題の解決方法は?

このQ&Aのポイント
  • Access2002 SP2を利用して、所属マスタと職員マスタを結合し、フォームで選択した課に所属している職員を表示したいが、正しく表示されない問題が発生しています。
  • フォームで所属マスタの課を変更しても、職員マスタのコンボボックスで開いた職員が最初に所属マスタで選択した課の職員が表示されてしまいます。
  • 所属マスタの課を変更した際に職員マスタのコンボボックスを開いた際にそれに対応した職員が表示されるようにするには、どうしたら良いのでしょうか?
回答を見る
  • ベストアンサー

Access2002 SP2を利用しています。

Access2002 SP2を利用しています。 マスタを2つ作成いたしました。 所属マスタ(支社CD、課CD、課名)、職員マスタ(支社CD、課CD、職員CD、職員名) あるフォームでコンボボックスより選択できるように作成。 2つのマスタをクエリで、支社CDと課CDを結合。 フォームで所属マスタのある課をコンボボックスより選択したら、職員マスタのコンボボックスを開いた際に所属マスタで選択した課に所属している職員が表示されるようにしました。 しかし、所属マスタで課を変更しても、職員マスタのコンボボックスで開いた職員が最初に所属マスタで選択した課の職員が表示されてしまいます。 所属マスタの課を変更した際に職員マスタのコンボボックスを開いた際にそれに対応した職員が表示されるようにするには、どうしたら良いのでしょうか?

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

  • ベストアンサー
  • sykt1217
  • ベストアンサー率34% (277/798)
回答No.5

#2です。 >SELECT DISTINCTROW 職員マスタ.職員CD, 職員マスタ.職員名 FROM 職員マスタ INNER JOIN 所属マスタ ON (職員マスタ.支社CD = 所属マスタ.支社CD) AND (職員マスタ.課CD = 所属マスタ.課CD) WHERE (((所属マスタ.課CD)=[Forms]![F_メニュー]![受付課CD])) ORDER BY 職員マスタ.職員CD;Forms!職員マスタ!Requery としてみましたが、「SQL ステートメントの後に文字が見つかりました」とメッセージが返ってきてしまいました。 >書き方がまずいのでしょうか・・・ すみません。私の書き方が悪かったです。 SELECT~はSQL文と言い、テーブルのデータを持ってくる際に使います。 私が#2で言った >所属マスタの登録・変更処理を行った最後に の「最後に」というのは質問文の >所属マスタで課を変更しても の「変更の処理の後(最後)に」ということです。 「フォームモジュール(VBA)に書いてみてください」ということです。

To-y_To-y
質問者

お礼

遅くなってしまい、申し訳ございません。 ご親切にありがとうございました。 時間がなく、まだ試しておりませんが、ご指導いただいた方法を試してみます。 本当にありがとうございます。

その他の回答 (5)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.6

> としてみましたが、「SQL ステートメントの後に文字が見つかりました」とメッセージが返ってきてしま> いました。 > 書き方がまずいのでしょうか・・・ SQLに書くのではなくて 所属マスタで課の更新後処理のVBAコードに Forms!職員マスタ!コンボボックス.Requery を記載してください。

To-y_To-y
質問者

お礼

遅くなってしまい、申し訳ございません。 ご親切にありがとうございました。 時間がなく、まだ試しておりませんが、ご指導いただいた方法を試してみます。 本当にありがとうございます。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.4

> 初心者なもので。おっしゃっている「所属マスタで課を変更後に職員マスタのコンボボックスを > Requeryしてみてください。」とは、どのようにすればよろしいのでしょうか。 具体的なコントロールの名前が分かりませんので Forms!職員マスタ!コンボボックス.Requery こんな感じです。

To-y_To-y
質問者

お礼

回答ありがとうございます。 SELECT DISTINCTROW 職員マスタ.職員CD, 職員マスタ.職員名 FROM 職員マスタ INNER JOIN 所属マスタ ON (職員マスタ.支社CD = 所属マスタ.支社CD) AND (職員マスタ.課CD = 所属マスタ.課CD) WHERE (((所属マスタ.課CD)=[Forms]![F_メニュー]![受付課CD])) ORDER BY 職員マスタ.職員CD;Forms!職員マスタ!Requery としてみましたが、「SQL ステートメントの後に文字が見つかりました」とメッセージが返ってきてしまいました。 書き方がまずいのでしょうか・・・

  • sykt1217
  • ベストアンサー率34% (277/798)
回答No.3

#2です。 >所属マスタで課を変更しても、職員マスタのコンボボックスで開いた職員が っとありますが、この二つはフォームですか? フォームであった場合、それは同時期に開いているのですか? もし同時期に開いている場合、所属マスタの登録・変更処理を行った最後に #1様の仰るように >Requery を Forms!職員マスタ!Requery として一文を書いてやるか、もしくは Forms!職員マスタ!Refresh の一文を加えて下さい。

To-y_To-y
質問者

お礼

回答ありがとうございます。 SELECT DISTINCTROW 職員マスタ.職員CD, 職員マスタ.職員名 FROM 職員マスタ INNER JOIN 所属マスタ ON (職員マスタ.支社CD = 所属マスタ.支社CD) AND (職員マスタ.課CD = 所属マスタ.課CD) WHERE (((所属マスタ.課CD)=[Forms]![F_メニュー]![受付課CD])) ORDER BY 職員マスタ.職員CD;Forms!職員マスタ!Requery としてみましたが、「SQL ステートメントの後に文字が見つかりました」とメッセージが返ってきてしまいました。 書き方がまずいのでしょうか・・・

  • sykt1217
  • ベストアンサー率34% (277/798)
回答No.2

コンボボックスのコントロールソースに引っ張ってきた一覧を挿入してるんですよね? それはどのタイミングですか? ちょっとソースがないとわかりにくいです。 ちなみに、フォームモジュールで Me.Refresh この一文をコントロールソースに値を挿入した後に入れてやっても変わりませんか?

To-y_To-y
質問者

お礼

早速の回答ありがとうございました。 初心者というか、素人なもので、質問の仕方が不十分で申し訳ございません。 因みに職員マスタのコンボボックスのプロパティで、値集合ソースに下記を書き込んでおります。 SELECT DISTINCTROW 職員マスタ.職員CD, 職員マスタ.職員名 FROM 職員マスタ INNER JOIN 所属マスタ ON (職員マスタ.支社CD = 所属マスタ.支社CD) AND (職員マスタ.課CD = 所属マスタ.課CD) WHERE (((所属マスタ.課CD)=[Forms]![F_メニュー]![受付課CD])) ORDER BY 職員マスタ.職員CD;

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

所属マスタで課を変更後に職員マスタのコンボボックスをRequeryしてみてください。

To-y_To-y
質問者

お礼

早速の回答ありがとうございました。 初心者なもので。おっしゃっている「所属マスタで課を変更後に職員マスタのコンボボックスをRequeryしてみてください。」とは、どのようにすればよろしいのでしょうか。 ご教授いただければ幸いです。

関連するQ&A

  • Access 個別部署名テーブルから社員名簿

    部名(製造部・販売部など)、課名(製造一課・販売一課など)、係名(製造一係、販売一係など)のテーブルを作り、各部門宛ての請求書を作成しようとしています。 宛先は部名、課名、係名のコンボボックスから選択することを想定していますが、部名を選択すると、課名のコンボボックスには選択した部に所属する課だけがリストされるようにできないでしょうか。 よろしくお願いします。

  • Access コントロールの種類の変更について

    いつもお世話になっております。 Accessのフォームに関して教えて下さい。 クエリを元にフォームを作って単表形式で表示させています。 新規データをフォームで入力して登録しようと思いました。フォーム上のテキストボックスをコンボボックスに変更して、入力をより簡略化しようとしました。 コンボボックスに変更することはできたのですが、データシートビューにしてコンボボックスの▼をクリックしても登録してあるデータ(○○マスタとしてリレーションシップを組んであるものです)が表示されません。 そのコンボボックスのプロパティのどこかを変更しなければいけないのでしょうか?また、根本的に考え方が間違っているのでしょうか? ぜひ教えて下さい。よろしくお願いします。

  • Accessのテーブル構成について

    現在、Accessの勉強のため、社員名簿のデータベースを作ろうとしています。 そこで、↓のようなマスタ構成を考えています。 社員マスタ ・社員番号 ・氏名 ・所属している部コード1 ・所属している課コード1 ・所属している部コード2 ・所属している課コード2 ・所属している部コード3 ・所属している課コード3 ・所属している部コード4 ・所属している課コード4 部マスタ ・部コード 部名 課マスタ ・課コード 課名 ※各部署の兼任があるので、一人が複数部署に所属しています。 これでリレーションシップを作成する場合、 社員マスタの部コード1~4全てと、部マスタの部コードを リレーションシップでつないで、社員マスタの課コード1~4全てと、課マスタの課コードをリレーションシップでつながないといけないんでしょうか? 社員マスタの部コード1と部マスタの部コードだけつないでも、 社員マスタの部コード2~4までの部名が表示されません。

  • アクセスでの質問です。

    サブフォームを使ってデータを表示しています。 親フォームにデータを選択できるコンボボックスを使い、子フォーム(サブフォーム)を表示したいと思っています。このよううな動きをしたい際には、どのようにすればいいのでしょうか? 今現在コンボボックスを選択しなおしても、サブフォームのデータはそのままです。 教えていただけますでしょうか、よろしくお願いいたします。

  • Access 商品マスタフォームの検索コンボBOX

    商品マスタフォームのヘッダーに非連結のコンボボックスを設けて、 商品検索キーを使ってフォームにデータを表示させるようにしています。 フォーム「商品マスタ」 選択クエリ「商品検索」(フィールド:「商品ID」「検索キー(カナ2文字)」「商品名」) コンボボックス「cb検索」 更新後処理に「再クエリマクロ」 うまく動作していますが、検索コンボボックスをもう一つ設けて、 仕入先からも検索できるようにしたいと思いました。 同じようにフォーム上に非連結のコンボボックスを作成して 選択クエリ「商品検索仕入先」(フィールド:「商品ID」「仕入先」「商品名」) コンボボックス「cb検索仕入先」 更新後処理に「再クエリマクロ」 フォームのコントロールソースのクエリ「商品ID」の条件を Like [Forms]![商品マスタ]![cb検索] & "*" Or Like [Forms]![商品マスタ]![cb検索仕入先] & "*" としました。 何度か交互に検索してみましたが、選択した商品が表示されるときとされないときがあります。 表示されないときは、検索に使っていないほうのコンボボックスの値が反映されているようです。 また、続けて検索キーのみで検索を試みてみると、うまく表示されるときと、そのときの 仕入先検索が選択している商品が表示されるときとがあります。 法則性がまったくわかりません。 一番最新のコンボボックスの選択が表示に反映されるようにするには どのようにすればよいのか教えていただけないでしょうか。 他に提示する情報があれば重ねてご教示ください。 よろしくお願いします。

  • Accessで家計簿を作っているのですが・・・(再

    いつもおせわになっております。 現在、Accessで家計簿なるものを作っているのですが・・・ まずマスタテーブルから入力データが存在する日付をクエリで抽出し、それをフォームのテキストボックス1のコントロールソースに指定して、そのテキストボックス1に表示されている日付を元にフィルタ機能を使ってその日に入力されたデータ一覧をサブフォームで表示するという方式を取っているのですが・・・(解かり難くてすみません この方式だとクエリのレコードを移動するとサブフォームの表示内容も対応してその日のが抽出されます。 しかし、データがたくさん蓄積されてくると一日ずつ(1レコードずつ)移動すると手間がかかってイライラしそうです。 で、同じフォームにコンボボックス1を追加し、上記にもあるマスタテーブルから入力されている日付を抜き出した日付一覧を取得してあるクエリを値集合ソースに指定してみました。 クリック時のイベント等もちゃんと設定したのですが、うまく動作してくれません。 コンボボックス1をクリックして選択したら、クエリをコントロールソースとするテキストボックス1の表示内容がコンボボックス1で選択されたものに変更される、みたいなことって出来ないのでしょうか? コンボボックス1だけにしてテキストボックス1を消すとコンボボックス1で選択した日付の内容をサブフォームで表示することは出来たのですが、それだとコマンドボタンを押して次のフィールドに移動し、かつコンボボックス1の表示内容も自動変更というのが出来なかったので・・・ 長文でスミマセンが、どなたかお知恵の拝借お願いします。

  • アクセスのVBAなんですけど

    アクセスのVBAでフォームからフォームへ値を渡すことはできますか?具体的にいうとあるフォームでコンボボックスから選択し、OKボタンで次のフォームを開くのですが、初めのコンボボックス(ちなみに5つ選択項目があります)で選んだ条件でフォームの表示内容を変更させようと思っています。 今のところ、選択した項目を一時的にテーブルに保存して、新しいフォームが開くときにテーブルから値を取得してやるのか・・・・と考えているのですが、まどろっこしいので・・・・・よろしくお願いします。

  • access 入力フォームへの表示

    初歩的な質問で申し訳ありません。 accessで商品マスタへの入力フォームを作成しました。 商品マスタテーブルから作成しました。 新規入力ボタン、登録ボタンを作成して、ボタンクリック時にのみ 新しいレコードへの移動、テーブルへのデータ更新を実行するようにしました。 この段階で、できれば入力フォーム上でコンボボックスなどを利用して検索を行い、 選択データをフォーム上に表示させたいと思いました。 ところがまったく知恵が働かず、どうしてよいのやら途方にくれています。 検索フォームを別途設けてもよいのですが、商品数が200たらずで、 今はコンボボックスで十分かなと思っています。 商品マスタにはカタカナ二文字の「検索キー」フィールドを設けており、 これをキーにしてクエリ(「Q商品検索」)で昇順に並べ、コンボボックスのコントロールソースを そのクエリにしました。 コンボボックスの更新後の処理イベントでマクロを使い、 「フォームを開く」にしてみましたが、その他の条件のつけ方がわかりません。 まったく的外れなことをしているのかもしれません・・・。 本やネットの質問過去ログで探してはみましたが、皆さん先を進んでおられて、窮してしまっています・・・。 このような状態でaccessを触るな!とお叱りを受けそうですが、 どうかお助け下さい。 よろしくお願いします。

  • ACCESSのコンボボックスについて

    ACCESSでコンボボックスを使っているときに たまに入力できなくなってしまう時があり困っています。 例えばA,B,Cという3つのデータを選択できるコンボボックスがあり、 現在、Aが選択されていてBに変更しようとした時に コンボボックスの表示部分が突然空欄(または選択されているのに表示されていない)になってしまいます。 その後、どれを選択してもコンボボックスには何も表示されなくなってしまいます。 この現象が起こるとなぜか同じフォーム内のボタンなどにも不都合が起こるようになってしまいます。 (テキストボックスのデータを削除するボタンがあるのですがおしてもなにも起こらなくなってしまいました) いろいろ試しているのですが全く原因がわかりません。 どのようなところに原因がありそうかなどあれば教えてください。 宜しくお願いします。

  • Accessの選択クエリの選択を切り替えたい

    Accessで、フォームにコンボボックスとサブフォームを作成してコンボボックスで選択したテキストをキーワードにサブフォームに選択クエリを表示させようと考えています。 コンボボックスの項目は、値集合ソースでテーブルを設定して、選択された項目は、my_Text = Me.コンボ1.Textで取得して クエリのSQL文を変更すればいいのかなぁ?って想像しています。 でも、サブフォームに設定したクエリのSQL文の変更の仕方が解りません。どなたか?詳しい方いらっしゃいましたら教えて頂けないでしょうか?宜しくお願い致します。

専門家に質問してみよう