• 締切済み

リストボックスで選択したレコードの表示

受注管理システムをAccess2000で開発しています。商品選択のリストボックスのみのフォームを作成、その商品をダブルクリックすると、例えば受注入力のフォームに自動的に商品IDが入っていくようにしてあるのですが、この商品選択のフォームを、別のフォームでも使いたいのです。商品の原価入力フォームとか。だけれども、商品選択フォームダブルクリックのところに[Forms]![受注入力フォーム名].[code] = [Forms]![商品選択フォーム名].[interior]というようにフォーム名を書いてしまっているので、使いまわしはできないのでしょうか?どういう条件を書けば、違うフォームにもダブルクリックすると商品IDが入っていくのでしょうか?教えてください。

みんなの回答

  • tom777
  • ベストアンサー率77% (14/18)
回答No.2

違うフォームでも、商品IDを入れるのはテキストボックスですよね? フォームでダブルクリックする時にグローバル変数にコン トロールを設定し、リストの設定時にそのコントロールの テキスト(バリュー)にデータを設定してやればいいので はないでしょうか? '***** グローバル変数 ***** Public SyohinCtrl As Control '***** ダブルクリック時 ***** Set SyohinCtrl = Me.txtCtrl1 '***** リストのダブルクリック時 ***** SyohinCtrl.Value = "値" で、どうでしょうか?

maokubo
質問者

お礼

ありがとうございました。試してみます。

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.1

さてなにを元に飛び先フォームを判断するのでしょうか? 呼び元の画面? 商品選択の画面? 呼び元の画面ならグローバル変数にでも呼び元フォーム名でも入れて(呼び元で処理をします。) SELECT CASE文で分岐処理で可能なはずです。 例 SELECT CASE グローバル変数 CASE "受注入力フォーム" [Forms]![受注入力フォーム名].[code] = [Forms]![商品選択フォーム名].[interior] CASE "原価入力フォーム" [Forms]![原価入力フォーム].[code] = [Forms]![商品選択フォーム名].[interior] CASE ELSE '例外処理があれば END SELECT

maokubo
質問者

補足

すみません。もう少し教えてください。 各フォームで商品選択ボタンをクリックして、同一の商品選択フォームを呼び出すとき、 どのフォームに呼ばれたか、呼び元フォーム名を変数に代入するやり方を教えて下さい。 お願いします。

関連するQ&A

  • リストボックスをクリックすると、他フォームに値代入

    データベース超初心者です。VBAの知識がほとんどないので、初歩的な質問だと思いますが、よろしくお願いします。 フォームは2つ「入力」と、「コード選択」 (1)フォーム「入力」にあるテキストボックス「商品コード」をダブルクリックすると、フォーム「コード選択」を開く (2)フォーム「コード選択」にあるリストボックス「コードリスト」をダブルクリックすると、商品コードが、フォーム「入力」のテキストボックス「商品コード」に代入される。 ちなみに、コードリストは、2列で、商品コードと商品名が表示されるようになっています。 わかりにくい質問かもしれませんが、どうぞよろしくお願いします。

  • Access2007 サブフォームの新規レコードをすぐにフォームに表示させる方法

    サブフォーム上で適当なレコード(IDと商品名)を選択して、そのレコードにある入力ボタンを押すと、フォームのコンボボックス上にその商品名が出るようなフォームがあります。 すでに入力済みのIDと商品名は表示されます。 ところが、サブフォーム上でIDと商品名を新規入力して入力ボタンを押すと、フォームのコンボボックスは空白となり、商品データが表示されません。 しかし、一旦フォームを閉じて開くと、データは表示されています。 IDと商品名を新規入力して、そのままフォームのコンボボックスに反映させたいと思います。 入力ボタンはこのようにやってみました。 Private Sub 入力_Click() DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Forms!フォーム!ID = Me.ID End Sub または、 Private Sub 入力_Click() DoCmd.RunCommand acCmdSaveRecord Forms!フォーム!ID = Me.ID End Sub ご教授いただければ幸いです。よろしくお願いいたします。

  • リストボックスから選択したデーターの一つだけを取得する

    VB5.0を使っています。 WIN2000です。 MDBとVBを使っています。 まず、顧客ID・顧客氏名・電話番号  この3つが1つのデータとして横並びの文字列で、リストボックスに表示されてゆきます。 リストボックスに表示したデータを選択し、その選択したデータの”顧客ID”だけを取り出して同じフォーム内のテキストボックスにいったん出し、そこから別のフォームに飛んでその”顧客ID”を元にデータの詳細を出す、といったものを作っていますが、 今のわたしの書いてるコードだけでは、何番の顧客IDを出しても、 別のフォーム(契約入力)に行くときには同じ1番の人のデータ詳細しか出ません。 「リストボックスから選択したデーターの一つだけを取得する」 には、どのようなコードを書けばいいか、教えていただけないでしょうか・・。 リストボックス(List1)から選択してテキストボックス(Text5)に取得する際にはすでに”顧客ID”だけを取り出したいのです。 今のコードでは、顧客ID・顧客氏名・電話番号 とすべてテキストボックス(Text5)にでてきてしまいます。 Private Sub cmnd2_Click()’選択ボタンclickでリストボックスのデータを取得。 Dim ListIndex As Integer Dim SelectedIndex As Integer Text5.Text = List1.List(List1.ListIndex)'→ここでリストボックスからデータを取得しています。 End Sub

  • リストボックスで表示

    例えばhtmlページに [ID、名称(text)]、[あ、い(リストボックス)] があってID,名称を入力して(その下に3つぐらい項目があって) リストボックスで「う」、「え」 と二つあり「う」を選択したら本かパソコンを入力できるようにでき、 「え」と選択したら同じように選択できるようにはどうしたらいいですか。 なお表示されるページはリストボックスの中を変えたら表示される (同じhtml内で) 本を選択したらID,名称,本(リストボックス)であとは見えなくする(Focus)にはどうしたらいいですか もしかしてこれってjavascriptじゃないとできない?

  • VB6.0 コンボBOXからのリスト表示について

    たとえば画面からの伝票入力処理などで... 「商品コード」の入力域を、コンボBOXにして、直接手入力でも、リストからの マウスクリック選択でも入力できるようにするとします。 この様な場合リストには、通常は「商品マスタ」の「商品コード」を、リスト表示 しますね。 実は今回、このリストにコードだけでなく横に並べて「商品名」も表示したいの です。もちろん「商品マスタ」に「商品名」を持っているものとします。 但し、もともとのコンボBOXの幅はコード文字数分のみとし、「商品名」分の 長さは、取っていないものとします。 以上、Accessでは標準機能で当たり前のように簡単にできる事ですが、 VB6.0ではどうなのでしょうか? 出来るのであれば、教えて下さい。

  • Access テキストボックスの通貨型

    お世話になります。 フォームA   リストボックスがあり、その中の項目として[金額]があります。   そこに表示しているソースのテーブルの[金額]フィールドは通貨型です。 フォームB   [金額]テキストボックスがあり、書式は通貨にしてます。 フォームAのリストボックス上でダブルクリックするとフォームBが開き、フォームAで選択した金額がフォームBの[金額]テキストボックスにコピーするようにしてます。 Forms[フォームB]![金額] = Forms![フォームA]![リスト].Column(3) 金額のコピー自体は問題なくできておりますが、通貨型になりません(\やカンマが付かない)。 但し、テキストボックスに直接数字を入力すると通貨型で表示されます。 フォームAをダブルクリックするときに、 Forms[フォームB]![金額] = Format(Forms![フォームA]![リスト].Column(3),"\\#,###")とすれば、表示上はOKなのですが、このようにしないと通貨型でコピーは出来ないのでしょうか。 ご教授の程、宜しくお願い致します。

  • Accessのコンボボックスでリストが選択できない

    いつもお世話になっております、ありがとうございます。 コンボボックス1で部署名を選択し、 コンボボックス2でその部署の社員の名前を選択するようなフォームがあります。 コンボボックス1の値集合ソースで社員テーブルの一覧を参照し、 部署名のフィールドでグループ化して選択できるようになっています。 このとき、なぜかコンボボックス2では最上段にリスト化された社員名しか 選択できなくなります。 画面上では全員がリストとして見えているのに、 リストの2番目以降をクリックしても、一番上の社員しか入力されません。 プロパティで何か変な制約がかかっているのでしょうか? どなたかお分かりになる方がいらっしゃいましたら教えてください。 どうぞよろしくお願いします。

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

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

  • リストボックスの項目削除

    すいません、以下の処理でこまっております。 ユーザフォームですがリストボックスで項目を指定して、ダブルクリックで削除をしたいのですがうまくできません。 <例> リストボックス a b c 1.aの項目をクリックして選択する。 2.ダブルクリックするとaのみ削除 ※aをただのクリックのみなら削除できるのですが選択してダブルクリックになるとできません。 まったくできません。 どなたかご教授をお願いします。 よろしくお願いします。

  • サブフォーム帳票形式上での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にカテゴリで絞り込んだ内容が選択できるように したいのです。 そして次の行も同じように商品を入力したいのです。 どなたか助けて下さい、お願いします。

専門家に質問してみよう