• ベストアンサー

Access コンボボックスの表示データを取り出す方法

お世話になっております。 レコードが1、2、3、・・・となっているフォームのコンボボックスの値集合ソースを別テーブルに指定して、1、2、3、・・・に該当するデータが月、火、水・・・とします。 つまり、コンボボックス上は月、火、水・・・と表示されますが、データとしては1、2、3、・・・です。 ここのデータを取り出そうとした場合、当然1、2、3、・・・が取り出されるのですが、月、火、水・・・として取り出す方法はありますでしょうか。 たとえば、このデータを他のフォームに渡す場合、月、火、水・・・として渡したいと思っています。 ご教授いただければ幸いです。よろしくお願いいたします。

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

  • ベストアンサー
noname#140971
noname#140971
回答No.2

Me.fld2 = Me.fld1 Me.fld1は、Me.コンボ0ですよね。 ですと・・・。 Me.fld2 = Me.fld1.Column(1, Me.fld1.ListIndex) または、 Me.fld2 = Left(WeekdayName(Me.fld1,vbMonday),1) または、 Me.fld2 = Mid("月下水目金土日", Me.fld1, 1) [イミディエイト] ? Mid("月火水木金土日", 1, 1) 月 ? Mid("月火水木金土日", 2, 1) 火 *******************************************  Me.fld1.Column(1, Me.fld1.ListIndex) ******************************************* Me.fld1.Column(列インデックス, 選択された行インデックス) コンボボックスの値は 1;月; 2;火; 3;水; 4;木; 5;金; 6;土; 7;日; で、2が選ばれた時の[選択された行インデックス]は<2;火;>を指し示します。 で、<火>を抜き出すには列の2番目(列インデックス=1)を指定することになります。 Me.fld1.ListIndex・・・[選択された行インデックス] 1・・・・・・・・・・・列の2番目(列インデックス=1) Me.fld2 = Me.fld1.Column(1, Me.fld1.ListIndex) で、抜き出せることになります。

kami21
質問者

お礼

 Me.fld1.Column(1, Me.fld1.ListIndex) この方法でできました。 説明までしていただき勉強になりました。 わかりにくい説明で申し訳ございませんでした。 ありがとうございました。

その他の回答 (4)

noname#140971
noname#140971
回答No.5

補足: Colomn(ColIndex, [Row]) []は、指示しなきゃーカレント行の意。

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

>このデータを他のフォームに渡す場合、月、火、水・・・として渡したいと思っています。 状況が分かりにくいですが Forms!フォーム名!コンボボックス名.Column(1) で2列目の値は取りだせます

kami21
質問者

お礼

この方法でもできました。 ありがとうございました。

noname#140971
noname#140971
回答No.3

お詫び: Me.fld2 = Me.fld1 このように同じフォームでデータを渡したところ、1、2、3、・・・のデータが渡されていました。 この回答からすると、私は、質問者の目的と手法を理解できていないかもです・・・。

noname#140971
noname#140971
回答No.1

tab1: ID_fld1 1__月 2__火 3__水 4__木 5__金 6__土 7__日 コンボ0.値集ソース-SELECT tab1.ID, tab1.fld1 FROM tab1; コンボ0.列数=2 コンボ0.列=0cm;2cm Private Sub コンボ0_Change()   Debug.Print Me.コンボ0.Column(1, Me.コンボ0.ListIndex) End Sub [イミディエイト] 月 火 と、これが基本だと思います。 [イミディエイト] ? Left(WeekdayName(1,,vbMonday),1) 月 ? Left(WeekdayName(2,,vbMonday),1) 火 と、WeekdayName関数で翻訳するって手もありますが・・・。

kami21
質問者

補足

ご回答をありがとうございました。 早速やってみました。 Me.fld2 = Me.fld1 このように同じフォームでデータを渡したところ、1、2、3、・・・のデータが渡されていました。 このときに月、火、水・・・として渡したいと思っています。 よろしくお願いいたします。

関連するQ&A

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

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

  • ACCESS2000 コンボボックスによるデータ入力

    2つのテーブルがあります。 1つのテーブルは、顧客テーブルとし「氏名」「住所」「TEL」「担当者」とします。 もう1つは、担当者テーブルとし「ID」「担当者」 フォームで、 1つめの「担当者」のところをコンボボックスにしました。 プロパティは、 コントロールソース→担当者 値集合タイプ→テーブル/クエリ 値集合ソース→担当者テーブル としました。 顧客テーブルの「担当者」フィールドは、担当者テーブルから取得したいの です。 しかし、フォームで開きコンボボックスで値を変えようとしますが、 データが固定していて顧客テーブルに入力されません。 ほかのボックスは入力OKです。 リレーションは、担当者フィールド同士で設定してもしなくても 入力は可になりません。 状況がつかみづらいですが、わかる方教えてください。

  • 【Access】コンボボックスの値の変更方法

    フォームにコンボボックスを配置し、下記の動作をさせたいと思ったのですが、1は出来たものの2が出来ませんでした(値集合ソースの中身は表示されるものの、選択してもコンボボックスに反映されませんでした)。 1. フォームオープン・・・データベースのcmb1の値より、対応する文字をコンボボックスに表示する。 2. コンボボックスの値の変更・・・プルダウンから値集合ソースに表示されている任意の値を選択し、コンボボックスに設定する。 その為、どうすれば値を変更できるようになるかアドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。 なお、初期状態から下記を変更しております。 【テーブル】 テーブル名:tbl フィールド名:ID,cmb1 値:1,2 【フォーム】 フォーム名:form1(コンボボックスを一つ配置) フォームのレコードソース:SELECT Choose(tbl.cmb1,"A","B","C") AS nm_cmb FROM tbl WHERE (((tbl.ID)=1)); コンボボックス 列数:2 列幅:0cm;3cm コントロールソース:nm_cmb 値集合タイプ:値リスト 値集合ソース:1;A;2;B;3;C 連結列:2 上記の状態で起動時のコンボボックスの中身は"B"と表示されるものの、コンボボックスのプルダウンメニューを表示して値を変更しようとしても出来ない事が確認できると思います。 以上、よろしくお願いします。

  • アクセス コンボボックス コントロールソース

    フォームにはレコードソースは指定してないけど そのフォーム乗っているコンボボックスのコントロールソースに とあるクエリの値を表示したい場合は どうすればいいでしょうか?

  • Access コンボボックスの絞り込み後の表示

    Access2002を使用しております。 コンボボックスAに連動したデータを絞り込みさせるコンボボックスBがありますが、一旦入力後は、コンボボックスAの値にかかわらずコンボボックスBに入力したデータを表示させるにはどうしたらよいでしょうか? 例として、次の3つのテーブルを基にデータベースを作成しております: メインテーブル フィールド名: ID 社名 担当者 社名テーブル ID   社名   住所 etc... ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1    A社 2    B社  担当者テーブル ID   社名ID   担当者名  電話番号 etc... ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1    1      木村 2    2      佐藤 3    1      田中 4    2      斎藤 メインテーブルを基にしてフォームを作成し、 「メイン」というフォーム名にして 「社名」「担当者」をフィールドのコントロールをコンボボックスに変更しました。 「社名」フィールドの値集合ソースを「社名テーブル」から引き出し SELECT [社名テーブル].ID, [社名テーブル].社名 FROM 社名テーブル; 列数2  で設定し、社名をコンボボックスで選択できるようにしました。 そして 「担当者」フィールドの値集合ソースを「担当者テーブル」から引き出し SELECT 担当者テーブル.ID, 担当者テーブル.担当者名, 担当者テーブル.社名 FROM 担当者テーブル WHERE (((担当者テーブル.社名)=forms!メイン.社名)); で設定しました。 「社名」フィールドの「更新後処理」で Private Sub 社名_AfterUpdate()     Me!担当者.Requery End Sub を設定しました。 「メイン」フォームをフォームビューで開き、「社名」コンボボックスで「A社」を選択すると 「担当者」コンボボックスで「木村」と「田中」が表示されるので、「木村」を選択します。 次のレコードに移り、「社名」コンボボックスで「B社」を選択すると 「担当者」コンボボックスで「佐藤」「斎藤」が表示されるので、「佐藤」を選択します。 さて、「佐藤」を入力した時点で、前のレコード(「A社」「木村」を選択)に戻ると 「担当者」欄が空欄で表示されます。 メインテーブルには全てデータは入力されています。 データ入力時は「担当者」コンボボックスは「社名」コンボボックスで選択した値に連動させたいのですが、 このようにデータ入力済みの場合は 最初のコンボボックスの値にかかわらず(この場合は直近に選択した社名がA社・B社のいずれかであろうとも) 入力済みのデータ(「木村」「佐藤」)がフォームに表示されるようにしたいのですが 何か良い方法はないでしょうか? 出来れば入力専用と読み取り専用のフォームを2つ使用するのではなく、1つのフォームで事足りればありがたいのですが・・・

  • コンボボックスの2列目の値を表示させる方法はありま

    アクセス2003です。 コンボボックスの2列目の値を表示させる方法はありますか? テーブル1には ID 会社名 1 山田建設 2 田中株式会社 といれ、 テーブル1をレコードソースとするフォームを作り、コンボボックスを設置し そのコンボボックスのプロパティは 値集合タイプ:テーブル/クエリ 値集合ソース:テーブル1 列数:2 にしました。 この場合、コンボボックスで値を選択した後は、一番左側の数字がコンボボックスに入力されますが 左から2列目の値を表示させる方法はありますか? IDと会社名のフィールドを順番を変えることなく、IDが左、会社名が右にしたいです。 エクセルで例えると http://www.moug.net/tech/exvba/0090021.html と同じようなことをアクセスで行いたいです。 プロパティではなくエクセルのようにVBAで配列を使うしかないのでしょうか?(コードもわかりませんが) よろしくお願い致します。

  • Access2003でコンボボックスからデータを抽出したい

    自己啓発でAccess2003を勉強しています。 Access2003でコンボボックスで名前を選択して、データ(住所)を抽出したものをリストボックスに表示させたいのですがどこがまちがっているかわかりません。こんなことで3週間ぐらい悩んでいます。 回答またはアドバイスをお願いします。 もしくはもっと簡単なやりかたがあればお願いします。 (1)「氏名」、「住所」のテーブルを作成。テーブル名は「01データ」 (2)「氏名」、「住所」のクエリを作成。クエリ名は「クエリ1」 (3)フォームでコンボボックスとリストを作成。フォーム名は「印刷」 ⇒コンボボックスの名前は「検索」。 ⇒値集合ソースはSELECT [01データ].ID, [01データ].氏名 FROM 01データ; これで「氏名」が選択できた。 (4)クエリの「氏名」抽出条件にLike [forms]![印刷]![検索] (5)検索するマクロを作成。マクロ名「M検索」 アクションは 全レコードの表示 フィルタの実行 ⇒Where条件は[Forms]![印刷]![検索]=[クエリ1]![氏名] (6)マクロ「M検索」をコンボボックスのプロパティ「イベント」タブから変更時に設定する。 (7)フォーム「印刷」を開き、コンボボックスで氏名を選択すると『クエリ1!氏名』と表示されてしまいます。 (8)フォーム「印刷」のリストボックスは全レコードが表示されている。

  • ACCESS2013 コンボボックスの警告について

    (1)コンボボックスに一度値を入力及び選択をして確定する。 (2)再度(1)のコンボボックスの内容を削除して空欄の状態に戻す。 (3)他のフィールド等にカーソル等を移すと、(2)のコンボボックスに対して警告メッセージが出でしまう。 'xxxxトランザクション.xxxxカラム'フィールドに値を入力してください。 上記(3)の警告メッセージが出ないようにしたいのですが どのように対応すればよろしいでしょうか? ※フォームはxxxxトランザクションがデータソース(ダイナセット)になっています。 ※コンボボックスはxxxxマスタテーブルが値集合(テーブル/クエリ)となっています。

  • コンボボックスで違うフィールドを表示

    アクセス2000を使用しています。 コンボボックスの値集合ソースにテーブル/クエリを指定し、料金テーブルを指定しています。 <料金テーブル>にはフィールドが2つあります。 ID 料金 1 1000 2 2000 3 3000 という具合ですが、便利上つけていますが、IDはコンボボックスに表示したくありません。 1000、2000、3000というのだけ選択できるようにするにはどうしたらよいのでしょうか? 連結列でできたような気がしたのですが、どう試してもできませんでした。

  • Access コンボボックスについて

    フォーム1の中にコンボボックス1、 検索結果用のサブフォームを作りました。 コンボボックス1は日付抽出用で、 プロパティは 値集合タイプ・・・テーブル/クエリ にしてあり、 2005-01  ・  ・  ・ 2005-12 となります。 「すべて」検索したいときには、どのように設定したら 良いのかを教えていただけないでしょうか? よろしくお願いします