• 締切済み

アクセス:フォームで氏名をドロップ式で選んでレコード移動

Dxakの回答

  • Dxak
  • ベストアンサー率34% (510/1465)
回答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選択肢]は、氏名を選択するコンボボックスまたはリストボックスのフォーム上のコントロール名です。 コンボボックスまたはリストボックスは、[氏名]に当たるフィールドの値を取得するように設定ください。 後、気になっているのですがコンボボックスを使用するって・・・検索結果なしだと新規レコードに自動的に飛ぶってルーチン不要なのかな? 下手を打つと、違うデータの上に上書きしちゃったって無いです?

関連するQ&A

  • アクセス:フォームでVBAを使わず氏名をリスト式で選んでレコード移動

    アクセス初心者です。よろしくお願いいたします。No.1834440で質問したものですが、私の質問の表現不足のせいと理解不足のせいで、いただいたご回答をいまだに研究しています(現在進行中)が、なかなか把握することができません。ご迷惑をおかけして申し訳ありません。 【やりたいこと】: ★フォームでフィールド名《氏名》をリスト式で選びたい。右済の▼マークを押すと氏名が表示され、それを選ぶことで氏名入力済のレコードに移動し、他のたくさんある未入力のフィールドにデータを入力したいのです。 ★フォームの《氏名》の上で双眼鏡マークの検索(例:「山*」)をして選んで、レコード移動するイメージに近いのですが、上記のことにこだわりたいのは、私が異動でいなくなっても後任者(もっともっとアクセス超初心者)に引き継げるように便利でシンプルなものにしたいのです。 ★そこで、今回、できればVBAを使わずにそのようなことが可能なのかどうか、可能ならどのようにすればよいのかをご指導お願いいたします。 よろしくお願いいたします。前回ご回答くださった方含めて広くご指導いただけましたら幸甚です。

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

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

  • Accessのフォームで…

    Access 2010のフォームのリストボックスで、あるテーブルのフィールドの値を選択した場合に、同じテーブルの同じレコードにある違うフィールドの値を、テキストボックスに読み込みたいのですが、どうすれば出来ますでしょうか? VBAのサンプルソース等でも構いません。回答お願いしますm(_ _)m

  • Accessのフォームとテーブルについて教えてください。

    Access2003を使用しています。 既存のフォームAにフィールド3個を増やしました。 フォームAはテーブル(1)と連動していました。 追加したフィールドはテーブル(6)のものです。 ところがフォーム上で追加フィールドに入力が出来なくなりました。3フィールドのうち、ひとつはコンボボックスです。表示はされますが確定ができません。 フォームAのSQLステートメントではテーブル(1)・(6)以外にテーブル(2)・(3)・(4)・(5)が結合されています。 フォームAからするとテーブル(2)・(3)・(4)・(5)のデータはIDの名称を見るための参照用です。 テーブル(6)は、追加フィールドのコンボボックスが参照用で、他の2追加フィールドは、フォームから入力してテーブル(6)に反映させたいものです。 テーブル(6)の画面では入力できます。 フォーム上からは入力できません。 設定が何か欠けているからでしょうか? 他の質問では2つのテーブルをひとつのフォームにする場合は、クエリを別に設けた方がいいとなっています。フォームが出来上がっているので、できればクエリを設けずに行いたいのですが、よくない方法でしょうか? 手順なども踏まえて教えていただけると助かります。 よろしくお願いいたします。

  • アクセスのフォームでのレコード移動ができません。

    アクセスのフォームでのレコード移動ができません。A(管理番号)B(会社ID)C(部品ID)D(担当者ID)のフィールドがあるのですが、A~Dの全てに入力した場合はレコード移動ができます。でもCとDを空欄にしたままでは移動できません。リレーションシップをCとDともはずしても変わりませんでした。どこがおかしいのか良きアドバイスをよろしくお願いいたします。

  • Accessのフォームで

    教えてください。下のようなテーブルがあり、これを元にフォームを作成したいのですがいい方法が見つかりません。 【テーブル】  品物テーブル(品物ID、品物、製作所)  社員テーブル(品物ID、社員コード、氏名) このテーブルを元にして下のようなフォームを作りたいのです。 【フォーム】  品物ID [テキストボックス]  品物 [テキストボックス]  製作所 [テキストボックス]  社員コード [テキストボックス]  氏名 [テキストボックス]  社員コード [テキストボックス]  氏名 [テキストボックス]  社員コード [テキストボックス]  氏名 [テキストボックス] ※社員コード、氏名が3つあるのは、同じ品物を3人が作成することがあるため。(この部分で悩んでいます) このようなフォームを作ることは可能でしょうか? また参考になるようなサイトなどあれば教えてください。 よろしくお願いします。

  • ACCESS フォーム設計

    ACCESS2003を使用して、基本情報と明細のテーブルとフォーム設計をしています。基本テーブルに担当者IDと氏名があり、明細テーブルにも担当者IDと氏名があります。明細のフォームで、担当者IDを入力したら、基本情報にある担当者名を自動表示し、明細テーブルに書き込みたいのですが、=DLookup("[氏名]", "[基本情報]", "[担当者ID] = " & Forms("明細")("[担当者ID]")) を指定しても、うまく動作しません。明細フォームの氏名のコントロールソースを空白にしても、テーブルとリンクしてもだめです。 又、明細の更新フォームとして、担当者IDを入力したら、該当レコードの内容を全て表示し、変更内容を入力後、同一主キーでUPDATEモードで書き込む方法も教えてください。

  • access フォーム 頭文字でドロップダウン

    accessを勉強中です。 2003で動かします。 テーブルは、 ID 生徒コード 頭文字 生徒名 委員会 行事名 出欠 というフィールドです。 これをフォームで      ID 生徒コード 生徒名   委員会 行事名 (○出席 ○欠席)←オプショングループ という形にしました。 このとき、頭文字を入力すると、その頭文字の生徒名がドロップダウンで表示され、生徒名を選択すると、上のフォームにその生徒のデータが表示されるように、サブフォームをつくりたいのです。   (テキストボックス)  (頭文字)     (生徒名)        ↑         ↑         ↑    ここに「あ」といれたら、ここが「あ」になり、頭文字フィールドが「あ」の生徒名をドロップダウンで表示する。    さらに、生徒名をクリックしたら、フォームにクリックされた生徒名のデータを表示する。 サブフォームの生徒名はテーブルと連結していますが、vbaとフォームのドロップダウンを結びつけることができません。 どなたか、ご教授お願いいたします。

  • ACCESSのフォームについて

    ACCESSのフォームを使ってデータを入力できるものを作っているのですが 、その中で『リストボックス』を使うのですが、例えば 1.Aタイプ 2.Bタイプ 3.その他() の様にしたいのですが、『3.その他』のところで()の中に文字を入力したいのですがどのようにしたらいいですか? 普通にリストボックスを作ってしまうと選択のみで文字の入力が出来ません。 ちなみにフォームで入力したデータはテーブルに入力されるようになっています。

  • Access2000でのレコードの削除と移動

    ccess2000で テーブルがA と Bあり テーブルAは一時保存用で最終的にBに保存しようとしてます。 まず、データをフィールド1が空欄でAに保存して、後にそのデータをフォームで呼び出し、フィールド2を入力後テーブルBに保存その呼び出したカレントレコードのみ削除したいのですが、どうすればいいのでしょうか> フォームは連結されていません。 可能であればサンプルコードをいただくと助かります。 お願い致します。