- ベストアンサー
Access VBA初心者のためのソフトリストとソフトの関連付け方法
- 初心者向けのAccess VBAで、テーブルT_ソフトリストとT_ソフトを使ってフォームF_入力のコンボボックスに関連するソフト名を表示する方法を教えてください。
- フォームF_入力のコンボボックスに使用者を入力すると、T_ソフトから使用者を探し、ソフトリストIDを取得し、そのIDを元にT_ソフトリストからソフト名を表示する方法を教えてください。
- Access VBAの初心者ですが、フォームF_入力のコンボボックスに入力した使用者に関連するソフト名を表示する方法が知りたいです。テーブルT_ソフトリストとT_ソフトを使って関連付けを行う方法を教えてください。
- みんなの回答 (19)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (18)
- piroin654
- ベストアンサー率75% (692/917)
- piroin654
- ベストアンサー率75% (692/917)
- layy
- ベストアンサー率23% (292/1222)
- piroin654
- ベストアンサー率75% (692/917)
- piroin654
- ベストアンサー率75% (692/917)
- piroin654
- ベストアンサー率75% (692/917)
- piroin654
- ベストアンサー率75% (692/917)
- layy
- ベストアンサー率23% (292/1222)
- 1
- 2
関連するQ&A
- ACCESS コンボボックス 日付入力VBA
win10 office365 access365におきまして フォーム Fを開いて そのなかの非連結テキストが コンボボックスになっており そのコンボボックス名をcombo としますとき そこに規定の文字列 これは そのコンボボックスの選択文字列として あるもので たとえば、あかさ この文字列は コンボボックスを開くと 第1列に表示されます 一番左側です を入れたいとき Sub Sample() DoCmd.OpenForm "F", acNormal Form![F]!combo = "あかさ" end sub フォームFは当然開くのですが 非連結コンボボックス comboは 空白のままです Form![F]!combo = "あかさ" ここの部分を Form![F]!combo.column(0) = "あかさ" または Form![F]!combo.column(1) = "あかさ" としても 同様の結果となります ② もうひとつすみませんが テキストボックス コメントテキストに 本日の日付で 4月17日であれば 0417 と入れたいので Forms![F]![コメントテキスト] = Format(Now, mmdd) としますと 2024/04/17 13:02:59 と出てしまいます できるものなら 全角で 0417 と打ち出したいのですが、、 重ねて 恐縮ですが 御教示宜しくお願い致します
- ベストアンサー
- その他(プログラミング・開発)
- 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つのフォームで事足りればありがたいのですが・・・
- ベストアンサー
- オフィス系ソフト
- Accessのフォームについて教えて下さい
Access 2010のフォームについてお教え下さい。 テーブルにはテーブル名T1、フィールド「ID」、「Price」というテキストボックス。2フィールドがあります。 テーブルの各データは、 ID,Price 001,100 002,200 003,300 フォームにはにフォーム名F1、「cmb」というコンボボックスと、「price」というテキストボックスが配置されています。 「cmb」のデータは値集合ソースで、「SELECT T1.ID FROM T1;」と指定しています。 「cmb」で選択したデータのプライスを「Price」テキストボックスに表示したいと思います。 例えば、「001」を選択したら、「100」と表示されるようにしたいと思います。 色々調べているのですが、どうやってやるのかわかりません。どのように実現したらよろしいでしょうか? よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- ソースコードをどう書いたらよいのかわかりません
マイクロソフトAccess2007を使用しています。 (1)テーブルT_ゲームソフトからフォームF_削除のコンボボックスで入力した条件を満たすレコードセットを開き、 変数にゲームソフトIDを代入したいと思っています。 (2)(1)で取得したゲームソフトIDを条件として、テーブルT_使わないゲームからレコードセットを開き、 フォームF_削除から入力した値をテーブルT_使わないゲームの削除日フィールドに入力したいと思っています。 途中まで下記の様なソースコードを作成したのですが、挫折してしまい質問させて頂きました。 上記(1)(2)になる様なソースコードを作りたいと思っているのですが、この先どの様に書いて良いのかわからなかった為質問させて頂きました。 12,13,14行目にいたっては全く違うことをしていると思います… 当方初めてVBAを使用したので、おかしな部分が多々あると思いますが、ご指導お願いします。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 「ソースコード」 1 Dim Db As DAO.Database 2 Dim Rs As DAO.Recordset 3 Dim SQL As String 4 5 Set Db = CurrentDb() 6 Set Rs = Db.OpenRecordset("T_ゲームソフト", dbOpenDynaset) 7 8 strSql = "SELECT * FROM T_ソフト WHERE 名前 = Combo_SoftName AND 種類 = Combo_SoftType 9 10 Set Rs = Db.OpenRecordset(SQL, dbOpenDynaset) 11 12 Rs.Edit 13 Rs!ソフトリストID = Combo_softID 14 Rs!アンインストール日 = Uninstall 15 16 Rs.Update 17 Rs.Close: Set Rs = Nothing 18 Set Db = Nothing 19 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 「 T_ゲームソフト 」 ゲームソフトID| 名前 | 種類 ───────────────────── 1 | A | アクション 2 | B | SF 3 | C | シューティング 4 | D | スポーツ 5 | E | レース ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 「 F_削除 」 名前 【コンボボックス】 ←Combo_SoftName 種類 【コンボボックス】 ←Combo_SoftType 削除日 【コンボボックス】 ←Combo_Sakujo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 「 T_使わないゲーム 」 ゲームソフトID| 名前 | 種類 | 削除日 ───────────────────────────── 2 | B | SF | 1 | A | アクション | 3 | C | シューティング| 5 | E | レース | 4 | D | スポーツ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 締切済み
- Visual Basic
- コンボボックスのテキスト窓にデータを表示させたい
オフィスソフト環境:ACCESS2007(諸般の事情により使用中) [アドバイスの背景とお願いしたいこと] ◆アドバイスの背景 コンボボックスを使ったフォームで入力を行っています。テーブルにはID(数値)「食材名、素材名」が入力されるのですが、フォームのコンボボックス「2段目」には素材名(入力済)が表示されません。但し、1段目のコンボボックスには数値ではなく食材名(入力済)が表示されています。 ◆お願いしたいこと(実現したいこと) 入力フォームを過去入力を遡り確認することもありますので、1段目同様に素材名(入力済)を表示させたいと思っています。 [対象オブジェクト] ◆テーブル:T_食材管理「質問対象フィールドのみ記載」 ・テーブル名:T_食材管理:食材名(数値型)、素材名(数値型) ・テーブル名:T_食材名:食材名ID、食材名 ・テーブル名:T_素材名:素材名ID、素材名、食材名ID ◆フォーム:F_食材管理「質問対象オブジェクトのみ記載」 ・フォーム(F_食材管理)のレコードソース名:T_食材管理 [1段目コンボボックスの設定] ・コンボボックス名:食材名(参照テーブル名:T_食材名) ・クエリビルダ設定フィールド:「食材名ID、食材名」 ・書式(列数):2 ・書式(列幅):0cm;2.551cm ・コントロールソース:SELECT T_食材名.食材名ID, T_食材名.食材名 FROM T_食材名 [2段目コンボボックスの設定] ・コンボボックス名:素材名(参照テーブル名:T_食材名) ・クエリビルダ設定フィールド:「素材名ID、素材名、食材名ID(抽出条件:[Forms]![F_食材管理]![食材名])」 ・プロパティーの書式(列数):3 ・プロパティーの書式(列幅):0cm;2.551cm;0cm ・コントロールソース:SELECT T_素材名.素材名ID, T_素材名.素材名, T_素材名.食材名ID FROM T_素材名 WHERE (((T_素材名.食材名ID)=[Forms]![F_食材管理]![食材名])); 説明にだらだらの羅列感をお感じになられるもしれませんが、簡潔に説明ができず申し訳ございません。宜しくお願いします。
- ベストアンサー
- Access(アクセス)
- Access VBAで自動連番を振るには
【テーブル名】T_株券管理 【フォーム名】F_株主入力 【フィールド名】株主ID(テキスト型)(主キー) フォームに入力する際にオートナンバーを使用せずに、 レコードが切り替わると「株主ID」が「00001」「00002」「00003」・・・・というように1づつ発番されるようにしたく、AccessVBAの本を読んだり、ネットでDmax等調べているのですが、必要な情報が探せずに困っています。 本当はオートナンバーでIDを振っても良いのですが、レコードの削除等行った時に歯抜けになってしまうので、うる覚えで申し訳ないのですが・・・確か、フォームのテキストボックスのプロパティ、コードビルダでVBを「レコードが移動した際に」→「株主IDが0の場合に”00001”を、0でない場合には既存の数値に+1した数値をテーブルT_株券管理の”株主ID”に入力する。」といった感じの記述がしてあったと思います。VB初心者なので、説明が上手くできずにすみません。 このような記述方法はありますでしょうか?
- 締切済み
- Visual Basic
- アクセス2000でデータ抽出できない
アクセス2000でデータ抽出できない サブフォーム上でコンボリストを使用して入力し、その条件にあったものだけを別のコンボボックスに表示したい。 フォーム:[取引名][種別][資材名] ※全てコンボリスト 取引先を選択し、種別を選択し、その2つの条件を満たすものだけテーブルから抽出し、資材名のリストに表示したいのですが、どうしたらできるかわかりません。
- ベストアンサー
- その他(業務ソフトウェア)
- アクセス初心者です。(クエリについて)
クエリでテーブルとテーブルをくっつけたいと思います。 T_MAIN→商品コード、商品一連番号、管理部門、統括責任者、マネージャー、担当者、保管場所、保管方法とあります。管理部門、保管場所、保管方法については小テーブルを作りました。それを元にT_MAINにてコンボボックスで項目一覧から選べるように作りました。統括マネージャ、マネージャー、担当者についてはT_名簿からこれも同様にコンボボックスで選べるように作りました。一つのフォーム内に非連結のテキストボックス(入力画面)と参照画面みたいな感じで、T_MAINに入っている情報一覧を並べて表示したいのです。T_MAINはコードで管理している部分が多いのでリストに表示する内容はクエリから引っ張ってくるようにしました。コンボボックスで表示がされるように、リストボックスの中に列幅2cm;3.808cm;3.808cm;2.508cm;4cm;2.503cm;等と指定して、値集合タイプにテーブル/クエリ、値集合ソースにクエリ名として表示するようにしました。管理部門、保管場所、保管方法はT_MAINと各小テーブルでリレーションを結びました。統括責任者、マネージャー、担当者については、一つのテーブルT_名簿とリレーションと結ぶと、クエリの内に入っているデータが消えてしまいます。リレーションをはずすと、3件しか入れていないものが、123、123、123と件数が増えていきます。解決策はないのでしょうか??宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- アクセス初心者です。
アクセスのフォームを作成しています。入力パターンが限られているので、コンボボックスで作成しました。コンボボックスのプロパティーでデータ⇒値集合タイプ”AAA”;”BBB”;”ccc”といれて、入力チェックをはい。リスト行数を3にして、作ったのですが、フォーム画面にしたときに、 AAA BBB CCC となっていないのです。”AAA”;”BBB”;”ccc”のまま選択リストにでてきます。なにがいけないのでしょうか??
- ベストアンサー
- オフィス系ソフト
- Access VBAで自動連番を振るには
Access2000で株主管理DBを作成中です。 【テーブル名】T_株券管理 【フォーム名】F_株主入力 【フィールド名】株主ID(テキスト型)(主キー) フォームに入力する際にオートナンバーを使用せずに、 レコードが切り替わると「株主ID」が「00001」「00002」「00003」・・・・というように1づつ発番されるようにしたく、AccessVBAの本を読んだり、ネットでDmax等調べているのですが、必要な情報が探せずに困っています。お手数ですが教えて頂けますでしょうか。よろしくお願い致します。
- 締切済み
- Visual Basic
お礼
回答有り難うございます。 当方の不手際で、列幅を修正するのを忘れていました。申し訳ございませんm(__)m これを修正したところ思ったとおりの動作致しました。 何度も丁寧な解説、ご指導ありがとうございました。