よろしくお願いします。
おそらく非常に基本的なことだと思いますが、ご指導をお願いいたします。
テーブルでidと氏名はすでに入力されています。他にフィールドがたくさんあり、フォームを使って入力したいのです。次のようにしたいのですが行き詰っています。ご指導お願いします。
やりたいこと:「フォームで氏名のボックスをドロップ式(リスト式?)にして、三角マークをクリックすると氏名が表示され、そこで氏名を選んでレコード移動をし、他のフィールドにデータ入力をしたい。」
よろしくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
すみません。
えっと、ある程度理解できる前提で貼り付けてますので、説明は省いてました。
Private Sub Ctl選択肢_AfterUpdate()
' コントロールの値と一致するレコードを検索する
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[氏名] = '" & Me![Ctl選択肢] & "'"
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
Set rs = Nothing
End Sub
フォームに既存のレコード表示コントロールが配置されている前提です。現在氏名に使ってるコントロールでもよいのですが、コントロール名はフィールド名と重ならないように変更してください。
そこから、コントロールのコントロールソースを削除して、VBAの方を以下の2箇所変更してください。
> rs.FindFirst "[氏名] = '" & Me![Ctl選択肢] & "'"
[氏名]の部分は、フォームのレコードソースの氏名に当たるフィールド名に変更してください。[Ctl選択肢]は、氏名を選択するコンボボックスまたはリストボックスのフォーム上のコントロール名です。
コンボボックスまたはリストボックスは、[氏名]に当たるフィールドの値を取得するように設定ください。
後、気になっているのですがコンボボックスを使用するって・・・検索結果なしだと新規レコードに自動的に飛ぶってルーチン不要なのかな?
下手を打つと、違うデータの上に上書きしちゃったって無いです?
No.2
- 回答日時:
フォームにコンボボックスを作ります。
ツールでコンボボックスをフォームに配置するとウィザードが開きテーブルまたはクエリの値をコンボボックスに表示するを選びid・氏名等があるテーブルを指定し順次進め必要なフィールドは全てコンボボックスに表示するようにして作ります。(ここまでは出来ているのですよね)
例えば作ったコンボボックス名をCmb1としてidに保存するとしてコンボボックスの列をid・氏名・住所・電話番号としてフォームの氏名・住所・電話番号の各コントロールにコンボボックスで選択されたレコードの値を代入するようにします。
コンボボックスのフィールドの並びがid・氏名・住所・電話番号とした場合。コンボボックスのプロパティを開きイベントの更新後処理にコードビルダで
Private Sub Cmb1_AfterUpdate()
氏名 = Cmb1.Column(1) '←この部分を記述します
住所 = Cmb1.Column(2) '←
電話番号 = Cmb1.Column(3) '←
End Sub
上記のように記述します。そしてフォームを保存して出来上がりです。
フォームを開きコンボボックスでidを選択するとそのレコードの値を氏名・住所・電話番号の各コントロールに表示します。
これが一番簡単な方法です。
ただしフォームのidを選択して代入したいフィールドを全て値集合ソースとしてコンボボックスに表示するようにしないと出来ないのでフォーム上の代入するコントロールが多いとコンボの幅が長くなってしまいます。短くするために見せなくて良いところは幅0の列にすれば表示上見えなくなります。
例えばid・氏名・住所・電話番号とコンボで表示する場合は列数 4 で列幅2cm;2cm;2cm;2cm リスト幅8cm の様になっているのでこれを列数4で列幅2cm;2cm;0cm;0cm リスト幅4cmの様にするとid・氏名のコンボの表示になりますが0cmの幅で住所・電話番号の値を持っているので同様な処理が出来ます。
氏名 = Cmb1.Column(1)の(1)の数字ですがコンボボックスのフィールドはid・氏名・住所・電話番号と並んでいても0・1・2・3という数字で取得するので氏名は2番目ですが1のところの値を取得するということです。
試してみてください。
この回答への補足
ご回答ありがとうございます。お礼が遅くなってごめんなさい。初心者とはいえ理解しがたく、今勉強しながらご指導内容を把握しようとしています。あらためて御礼申し上げます。
補足日時:2005/12/16 15:15お礼が大変、大変遅くなりました。大変参考になりました。またこれからも勉強してご指導内容をすぐ理解できるレベルに達するようにがんばりたいと思います。ありがとうございました。
No.1
- 回答日時:
えっと、例えばのサンプルとして見て下さい。
リストボックスのコントロールソースなしで作成後、更新後処理に
Private Sub Ctl選択肢_AfterUpdate()
' コントロールの値と一致するレコードを検索する
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[氏名] = '" & Me![Ctl選択肢] & "'"
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
Set rs = Nothing
End Sub
と記述してやれば、レコードの移動します。
えっと、かなり昔に作成したものなので、なぜ、一回Cloneを使用して移動を指定しているのか忘れました。
この回答への補足
ご回答ありがとうございます。
アクセス初心者でVBAになるとまだよくわかりません。
ご指導内容の理解不足かと思いますがお許しください。下記のようにやってみましたが、できませんでした。
コンボボックス(ウィザードOFF)⇒プロパティ⇒イベント⇒更新後処理⇒コードビルダ へ「Pribate sub・・・End Sub」まですべて貼りつけてみました。
まったく無反応なのです。続けてご指導お願いいたします。アクセスはXPです。よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) Accessフォームで複数条件でフィールドの値を表示する方法 4 2022/07/21 10:47
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
腕を見たら黄色くなってる部分...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
精子が黄色?
-
口の中に黒い血の塊
-
白血球が多いとどんな心配があ...
-
尿検査前日に自慰行為した時の...
-
中出しをするとお腹が痛い・・・。
-
精子に血が・・・
-
これって喉仏ですか? 私は女性...
-
爪が紫色?
-
納豆食べた後の尿の納豆臭は何故?
-
筋トレするとチンコが縮んじゃ...
-
射精をして1週間以内に尿検査を...
-
尿検査の前日は自慰控えたほう...
-
EXCELで式からグラフを描くには?
-
excelでsin二乗のやり方を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報