コンボボックスで選択実行後、次を選択

このQ&Aのポイント
  • アクセス初心者が在庫管理・発注書フォームを作成している際に、コンボボックスで絞り込みながら商品を選択すると、詳細が表示されるが、次のレコードに移動するとコンボボックスが初期状態に戻る現象が発生している。
  • 商品選択と次のレコード移動を連動させたい場合、アクセス2000で発注書フォームを作成中の初心者がアドバイスを求めている。
  • 在庫管理・発注書フォームで、商品選択後に次のレコードに移動し、コンボボックスを初期状態に戻す方法が分からない。アクセス初心者の方からの質問。
回答を見る
  • ベストアンサー

コンボボックスで選択実行後、次を選択

いつもお世話になっていますm(__)m オフィス系で回答を得られなかったため あちらを削除してこちらに移動してきました。 アクセス2000で在庫管理・発注書フォームを作っているアクセス初心者です。 発注書フォーム内で サブフォームの発注明細に入力するため、 メインフォームで連動するコンボで、絞込みをしながら商品を選択 (大項目・中項目・小項目と3つのコンボで商品を絞込み)すると サブフォーム内のコンボボックスに小項目まで絞り込まれた商品数点が表示され、(4つめの絞込み) そこで選択すると、 見た目一行の状態で(1レコード)、 IDや単価などの詳細がそれぞれのテキストボックスに表示、 数量を選択するとこの商品の小計金額を表示するという形になっています。(意味が伝わるでしょうか。。?^^;) 最後の項目まで行き、enterキーを押すと 次の新規レコード(2行目)に移動するのですが そこで、大項目のコンボボックスから選択しようとすると 最初のレコード(1行目)に戻ってしまいます。 理想としては商品を選択し、数量など最終項目まで入力してenterキーを押すと、 次の行(次のレコード)に移動すると同時に メインフォームのコンボボックスが空白の状態になって また再度選択したものが2個目のレコードに反映される。。 という形にしたいのですが どうもうまくいきません。 説明がうまくできなくて恐縮ですが どなたかご教授のほどよろしくおねがいします。。

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.5

>サブフォームをさわるとレポートまで影響するのか気になったので フォームの変更がレポートに影響したりはしません テーブルやクエリをさわると大変ですけどね >帳票にしても うまくコンボの選択は働きませんが 帳票にしただけでうまくいくようになる訳じゃありません 帳票なら仕掛けを組み込めるようになるということです メインフォームに非連結のコンボボックスを置く方法ですと サブフォームとの連携が面倒です 大項目、中項目もサブのソースの方に取り込んでしまう方が簡単なのでそれで説明しますね サブのソースである発注明細テーブルを下のようなものにします ●発注書明細 「明細コード」「発注書コード」「大項目」「中項目」「商品コード」「数量」「摘要」 この大項目、中項目をフォームで上ではコンボボックスにするのです 非連結でなくテーブルに連結していますから、新規レコードでは自動的に空欄になります 絞り込みは同じように行ってください 絞り込みのタイミングは上位コンボボックスの更新後とレコード移動時の2つです 帳票フォームですからあるレコードの大項目、中項目にあわせて絞り込みを行うと 他のレコード下位の項目の表示が出来なくなります ですから中項目、商品コードは同じソースで絞り込みを行わないコンボボックスを作り 絞り込みを行うコンボボックスの下にぴったり重ねておきます 絞り込みを行う方は背景を透明にしておきます 以上です 納得がいくまで、簡単なものを作っていろいろ試してみてください

kuragemama
質問者

お礼

おかげさまで完成しました! 詳しく教えていただき本当にありがとうございました。 助かりました! CHRONOS_0様には感謝の気持ちでいっぱいです もう少しステップアップしたいので 新しい質問に切り替えさせていただきます 本当にありがとうございました!!

kuragemama
質問者

補足

こんにちは いつも手取り足取りご指導いただき 本当にありがとうございます 上記の仕組みは 他のサイトでも同じように図解しているのを何箇所かみかけたので いろいろ試してみたいと思います。 ありがとうございます しかし、、、、 何故かサブフォームを帳票にしても やはりレコードが1つしか表示されません。。。 サブフォーム自体最初から作り直してみたいと思います。

その他の回答 (4)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.4

>サブフォームの中が1つの商品(1つのレコード)しか表示されなくなってしまいました。 帳票フォームになってないのでは、1レコードずつ表示するのは単票フォームです >データシートのように発注商品がずらっと並ぶようにすることも可能でしょうか? そうなるのが帳票フォームです >印刷するときは自動で2枚になったりすることが必要なのですが影響はあるでしょうか?。 フォームをそのまま印刷しているのですか? レポートを作って印刷した方がいいのですけどね 元のものを作成した方も余りよくAccessを分かっておられないみたいですね この様子では難しいことはやっていないでしょう しかし実際に使用しているシステムですから下手なことをして壊してしまうと大変ですから さわるのはコピーの方にした方がいいですね 実物をいきなりさわるのが難しければ簡単なものを作成してスキルアップしてからの方がいいかも

kuragemama
質問者

補足

いつもありがとうございます >フォームをそのまま印刷しているのですか? フォーム上でレポートを印刷するボタンを設置しています。 サブフォームをさわるとレポートまで影響するのか気になったので ご助言ありがとうございます さすがにマスターを触るのは怖いので test用コピーを使用していて成功したら雛形を変更しています スキルアップするにも時間があまりなくて苦戦しています。 前任者も本を片手に頑張っていたそうです。。 帳票にしても うまくコンボの選択は働きませんが 解決策をご存知でしたらご教授いただけると助かります。。。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

>サブフォームの規定のビューはデータシート型で これが問題ですね データシートや帳票形式で表示すると複数のレコードが表示されますが 使用されるコントロールは共通のものですからあるレコードにあわせて 絞り込んでしまうと他のレコードの表示がおかしくなります 帳票形式ならこれに対処する方法もありますが データシートビューではどうすることも出来ません 帳票形式に変えることは出来ますか? 別件ですが >●発注書明細 >「明細コード」「発注書コード」「商品コード」「品番」「商品名」「色」「サイズ」「重さ」「単価」「数量」「摘要」 これはテーブルですね だったら商品コード以外の商品マスタにあるフィールドはこのテーブルには必要ありません というより入れてはいけません

kuragemama
質問者

補足

何度もありがとうございます。 帳票形式に変更してみたところ サブフォームの中が1つの商品(1つのレコード)しか表示されなくなってしまいました。 データシートのように発注商品がずらっと並ぶようにすることも 可能でしょうか? また、発注数が多いのでスクロール表示になったり 印刷するときは自動で2枚になったりすることが必要なのですが影響はあるでしょうか?。 >商品コード以外の商品マスタにあるフィールドはこのテーブルには必要ありませんというより入れてはいけません リレーションしていない項目で複数のテーブルに同じ項目が重複するのはNGっていう解釈でいいのでしょうか? 前任者がくんだテーブルなので 削除したら他のフォームなどにどう影響がでるか調べてみてから 後ほど調整したいと思います。ご指摘ありがとうございます!!

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

関係する全てのテーブルの情報が必要です、最低でも以下のテーブルのフィールド構成を教えてください 「発注テーブル」 「発注明細テーブル」 「商品テーブル」 >すいません、ソースとかリンクとか >どこの部分をさすのかいまいちわかっていません ソースはフォームのプロパティーのレコードソースと言うところを見ると分かります リンクはフォームをデザインビューで開きサブフォームをクリックすると サブフォームのプロパティーのところに 「リンク親フィールド」「リンク子フィールド」というのがあります、

kuragemama
質問者

補足

すいません、エラーが出て3度目の投稿なので、抜けていたらすいません。。 ●発注書(項目が多いので明らかに不要なものは非公開にします) 「日付」「発注書コード」「仕入先」「仕入先コード」 ●発注書明細 「明細コード」「発注書コード」「商品コード」「品番」「商品名」「色」「サイズ」「重さ」「単価」「数量」「摘要」 ●商品マスタ 「商品コード」「品番」「大項目」「●●1」「●●2」「中項目」「色」「商品名」「サイズ」「●●3」「●●4」「単価」「●●6」「●●7」「●●8」「仕入先コード」 です。 レコードソースは「発注書」 「リンク親フィールド」「リンク子フィールド」ともに 「発注書コード」です。 サブフォームのコンボに絞りこみするまでは問題なくできています。 メインフォームで以下のコンボに 大項目・中項目・商品名でしぼりこみ、 その値をサブフォームの 商品コードコンボ欄で表示しています そのクエリは以下です SELECT 商品マスタ.商品コード, 商品マスタ.品番, 商品マスタ.商品名, 商品マスタ.色, 商品マスタ.サイズ, 商品マスタ.単価 FROM 商品マスタ WHERE (((商品マスタ.商品名)=[forms]![発注書]![商品名])) ORDER BY 商品マスタ.品番; です。 サブフォームの規定のビューはデータシート型で ビュー設定はフォーム/データシートです。 どうかよろしくおねがいいたします。。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

メインフォーム上の大中小項目のコンボは連結?非連結? メインフォーム、サブフォームのソースはどういうもの? メインとサブのリンクはどうなっているの?

kuragemama
質問者

お礼

最終コンボのコードです Private Sub 4個目のコンボ_AfterUpdate() Me.品番 = Me.4個目のコンボ.Column(1) Me.商品名 = Me.4個目のコンボ.Column(2) Me.色 = Me.4個目のコンボ.Column(3) Me.サイズ = Me.4個目のコンボ.Column(4) Me.単価 = Me.4個目のコンボ.Column(5) End Sub で発注明細を表示しています。

kuragemama
質問者

補足

コンボは非連結です サブフォームは発注書明細で 「商品ID」「品番」「商品名」「色」「サイズ」「単価」「数量」「明細金額」「適用」「明細金額合計」の項目に分かれています メインフォームは 「仕入先コード」「仕入先名」「担当者」「○○コード」「受注先」「発注合計」「発注書コード」「発注者」「発注日」「納期日」 などです。 テーブルは 「仕入先」「○○」「社員」「商品」「発注書」「発注書明細」 になっています 今までは サブフォーム内でひとつのコンボで商品を選択していたのですが あまりにも多いので、絞込みをしたいとのリクエストでコンボボックスをメインフォームに置いてみたのですがうまくいきません。 (最初、サブフォームにおいて見たらフォームを開いたときに表示されなかったので...) すいません、ソースとかリンクとか どこの部分をさすのかいまいちわかっていません (前任者の引継ぎなので。。すいません) お手数おかけいたしますが、詳しく指定いただけますか?

関連するQ&A

  • コンボボックスの絞込みについて

    こんにちは アクセス2000で発注書を作っています ど素人です。。 コンボボックスの絞りこみについて教えてください。 現在5つのコンボで絞込みをしています コンボ1仕入先(メインフォーム) コンボ2種類1(サブフォーム) コンボ3種類2(サブフォーム) コンボ4商品名(サブフォーム) コンボ5詳細(サブフォーム) です。 コンボ1は一度選択すると、変更はありません。 コンボ5で選択決定した後、コンボ2、コンボ3、コンボ4は空白に、 コンボ5は全表示に設定しているのですが それだとコンボ1で選択した仕入先以外の商品も入ってしまうので コンボ5に、コンボ1で仕入れた商品のみを全表示したい場合は どうしたらいいですか? 説明下手で申し訳ありませんが どなかたご教授の程よろしくお願いいたします

  • コンボボックスの抽出条件でカレントレコードだけ

    コンボボックスでカレントレコードに表示している商品IDに対応する値を表示させたいのですが、教えてください。 表形式のサブフォームにコンボボックスを設置しています。(レコードごとにコンボボックスがある) 値集合タイプはテーブル/クエリ、値集合ソースはクエリビルダで作成しようと思っています。 クエリビルダにはコンボボックスに表示したい別テーブルのフィールドを入力しています。 そこで、サブフォームのカレントレコードに入力した商品IDで絞込みを行うため、商品IDの抽出条件に[Forms]![frm出庫]![frm出庫商品].[Form]![商品ID]と記入したのですが、実行してみると、一行目のレコードのときはいいのですが二行目三行目のレコードの入力時もどうしても表示中の一行目のレコードの商品IDでの絞り込みしかしてくれません。 おそらくクエリの中のどこかにカレントレコードの商品IDを見るよう指定しなければいけないのだと思うのですが、その方法が分からず行き詰っています。 どうぞ宜しくお願い致します。

  • サブフォーム帳票形式上での2つのコンボボックスの連携

    サブフォーム帳票形式上での2つのコンボボックスの連携 テーブルとして以下4つ tbl01_受注   受注ID(主キー) 受注日      名前 電話番号 tbl02_明細   明細ID 受注ID(tbl01_受注IDとリレーション)   カテゴリ   商品名  tbl03_カテゴリ   カテゴリID カテゴリ tbl04_商品名   商品ID カテゴリID 商品名   フォームとして以下メインとサブで構成   f01_受注フォーム(メインフォーム)   レコードソース→tbl01_受注     f02_明細フォーム(サブフォーム)    レコードソース→tbl02_明細 添付画像のように 1件ごとの受注につき受注フォームが増えていきます 1件の受注にたいしてサブフォームに商品を入力して行きます、  商品名が多数ありますので コンボ1でtbl03のカテゴリを選び tbl04からそのカテゴリIDとマッチした商品名を抽出して コンボ2に表示したいと考えています。 色々参考にしましたがどれもうまく行かない状況です。 たとえばコンボボックスに反映されず空白になったり コンボボックスの内容を変更すると全ての行の値が 同じになった なかなかうまく行きません。 サブフォームでコンボボックス1でカテゴリ選択すると コンボボックス2にカテゴリで絞り込んだ内容が選択できるように したいのです。 そして次の行も同じように商品を入力したいのです。 どなたか助けて下さい、お願いします。

  • アクセス コンボボックスで全項目表示

    アクセス2000で発注書をつくっています 発注書フォームのサブフォーム「発注書sub」内で 「大項目」「中項目」「小項目」「商品コード」の 4つのコンボボックスを設置し、 絞込み検索で商品明細を入力しています 新規レコードに移動するときに 「大項目」「中項目」「小項目」の値を空白にし、 4つめの「商品コード」コンボボックスで 全商品を表示させたいのですが どう記述していいのかわかりません 現在は Private Sub 商品コード_AfterUpdate() Me.品番 = Me.商品コード.Column(1) Me.商品名 = Me.商品コード.Column(2) Me.色 = Me.商品コード.Column(3) Me.サイズ = Me.商品コード.Column(4) Me.商品単価 = Me.商品コード.Column(5) End Sub Private Sub 小項目_Enter() Me!商品コード.Requery End Sub Private Sub 大項目_AfterUpdate() Me!中項目.Requery End Sub Private Sub 中項目_AfterUpdate() Me!小項目.Requery End Sub Private Sub 小項目_AfterUpdate() Me!商品コード.Requery End Sub 'フォーカスが移ると同時にドロップダウンさせる Private Sub 大項目_GotFocus() Me.大項目.Dropdown End Sub Private Sub 中項目_GotFocus() Me.中項目.Dropdown End Sub Private Sub 小項目_GotFocus() Me.小項目.Dropdown End Sub 'テスト Private Sub 摘要_LostFocus() Me!大項目 = Null Me!中項目 = Null Me!小項目 = Null Me!商品コード.Requery End Sub です。 発注書フォーム(単票フォーム) レコードソース「発注書」 サブフォーム名「発注書sub」(帳票形式) レコードソース「発注書明細」 リンク親フィールド子フィールドともに「発注書コード」 (他に表記が必要なのがあるかもしれませんが。。) テーブル ●発注書明細 「明細コード」「発注書コード」「商品コード」「品番」「商品名」「色」「サイズ」「商品単価」「数量」「摘要」です ●商品マスタ 「商品コード」「品番」「種類」「大項目」「中項目」「色」「商品名」「サイズ」「商品単価」 です。 どなたか ご指導のほどよろしくお願いいたします

  • コンボボックス

    お願いします。 アクセスのフォームでコンボボックス(仕入先名)を使用していて、リスト一覧の中から選択していく訳ですが、1件の入力が終了して次のデータ入力に移り、コンボボックスのリスト選択の際に、直前に入力した「仕入先名」を一番最初に表示させることは可能でしょうか?  関連するのですが、 たとえば納品書で、同じ仕入先から一回に商品を30種類くらい仕入れるような場合、フォームに商品入力欄を複数行(5行位?)作って一度に複数行入力することはできるでしょうか? 必要なフィールドは商品名、数量、単価、備考(任意)です。 できるだけ入力の効率を上げたいと考えております。 よろしくご指導ください。

  • アクセスのコンボボックスの内容が消えてしまいます

    入力フォームでサブフォームを作り、そこに設置したコンボボックスA,Bという2つの連鎖したコンボボックスがあります。 1つ目(1行目)を入力すると正常に動くのですが、2つ目のレコードに進み同様に入力していくと、1つ目のコンボボックスBの内容が消えて、2つ目のコンボボックスBが正常に表示します。 どうすればレコードが複数進んでも、コンボボックスBの内容が消えないようにできるのでしょうか?

  • 【Access】サブフォームのコンボボックス連携

    ACCESSで社員の資格情報を入力するシステムを作成したのですが 以下の問題を解決できず困っています。 どうすればいいか お力を貸して頂けないでしょうか? ■問題:メインフォームで別レコードに移動した際 サブフォーム内の連携コンボボックスを更新されない □コンボボックス2の表示項目 1.分類別No 2.資格名ID 3.資格名 3のみを表示していますが、 1つ目のコンボボックス1の数値で 全コンボボックス2の資格名が出てしまいます。 ■フォーム構成 メインフォーム内に以下を設置 1.移動ボタン 2.帳簿サブフォーム □サブフォーム構成 レコード1 コンボボックス1 コンボボックス2 レコード2 コンボボックス1 コンボボックス2 ~~ 最終レコード コンボボックス1 コンボボックス2 ■コントロールソース コンボボックス1:大分類ID コンボボックス2:資格名ID ■テーブル構成 資格名  資格名ID(主キー)  大分類ID  分類別ナンバー(大分類ごとの登録順ナンバー)  資格名   資格大分類  大分類ID(主キー  大分類名 (IT系・運転系など) ■コンボボックス2の値集合ソース(表示項目:資格名) SELECT 資格名.資格名, 資格名.分類別No, 資格名.資格名ID FROM 資格大分類 INNER JOIN 資格名 ON 資格大分類.資格大分類ID = 資格名.資格大分類ID WHERE (((資格名.資格大分類ID)=[Forms]![メインフォーム]![サブフォーム]![コンボボックス1])) ORDER BY 資格名.分類別No; ------------------------------------ サブフォームに記載し効果のなかったVBAコード ’再クエリ Private Sub Form_Current() Dim cntrl As Control If Not IsNull(Me![コンボボックス1]) Then For Each cntrl In Form.Controls If cntrl.ControlType = acComboBox Then cntrl.Requery End If Next cntrl End If End Sub ’ソース更新 Private Sub Form_Current() With Forms!メインフォーム名!サブフォーム名!コンボボックス2 .RowSource = .RowSource End With End Sub ■参考サイト 'サブフォーム内での2つのコンボボックスの連動について 'http://goo.gl/nfvxW '~ '>   コンボボックスAの更新後処理イベントに '> Me!コンボボックスB.Requery '> 'Me.コンボボックスB.RowSource = Me.コンボボックスB.RowSource '数値でコンボボックス選択 'http://goo.gl/ovZ3C 'リストボックスの行を選択するときは、「Selected(n)」を使います 'http://goo.gl/RbsWX 'サブフォームの指定 ' =Forms!フォーム名!サブフォームコントロール名.Form.テキストボックス名 'http://goo.gl/vKxtj

  • ACCESS2007 コンボボックス使い方

     いつも皆様には、お世話になります。以下のようにコンボボックスを用いて絞り込みシステムを考えております。しかし、汎用例が乏しくまた、私自身初心者なので、どこをどうすればよいか分からず作業がストップしています。 ------------------------------------------------- | 絞り込みシステム |------------------------------------------------ | 勘定項目:[コンボボックスA〕 ←3項目表示    A、B、Cなど | 勘定科目コード:〔コンボボックスB〕←2項目表示 10,20 など | 分類項目:〔コンボボックスC〕←12項目      赤、青、黄,緑など | 分類コード:〔コンボボックスC〕←上記の項目、コードにより 50~1までデータ数がある。 | |                            [絞り込みボタン〕 ------------------------------------------------- 段階をおって絞り込まれた、これらのフォームから該当するデータを表示させます。 このようなことは可能でしょうか。皆様のお知恵をお借りしたいと思います。何卒よろしくお願いいたします。

  • ACCESSフォームのリストボックスでレコードが選択できない

    ACCESS2000です。 フォームの左側に親テーブルのフィールド1の値を選択させるリストボックスがあり、そこで選択したレコードにリンクする子テーブルのレコードをフォームの右側にサブフォームで表示させたいのですが、リストボックスでレコードを選択できません(クリックしても反転しません)。でもレコード移動ボタンを押すと、リストボックス内の該当レコードがちゃんと反転し、右側のサブフォームにも正しく反映します。 リストボックスのプロパティはくまなく見ましたがそれらしい設定項目はみつかりませんでした。どこを直せばよいのでしょうか。

  • コンボボックスの値が消えてしまいます。

    コンボボックスの値が消えてしまいます。 フォーム(1)にコンボボックスA(値集合ソースはテーブル1)があります、この リスト外入力時で別フォーム(2)(レコード追加用)を開きテーブル1にレコードを追加、 フォーム(2)を閉じる時にコンボボックスAをリクエリかけてフォーム(1)に戻るとコンボボックスAが空になっているのでリストを開き選択し直さなければいけません! フォーム(1)に戻った時コンボボックスAに入力した値を選択させておくにはどの様にすれば良いか アドバイスよろしくお願いいたします。 WIN XP ACCESS 2003で作成しています。