No.5ベストアンサー
- 回答日時:
同じテーブルからリストを取得する為には、一度レコードを保存する以外ないようです。
そのため今まで設定した「データ入力のチェック」を"いいえ"に戻し、「リスト外入力時」のボックスから"[イベントプロジージャ]"の文字を消したうえで、「更新後処理」に設定したモジュールの中身を下記のように置き換えます。' レコードを保存し、コンボボックスのリストを再作成します。
DoCmd.RunCommand acCmdSaveRecord
Me![(コンボボックス名)].Requery
(*)例によって同じフォーム内に、同じテーブル(クエリー)からリストを作っているコンボボックスがあるなら、その分も上記とまったく同じ構文で行を作成します。
あまり綺麗な方法ではないですが、これが一番現実的な方法のようです。
No.4
- 回答日時:
回答が何回にも分かれてしまってすみません。
たしかにクエリーを元にしている場合など、おっしゃる通りの手順を踏まないとリストが更新されないみたいですね。
コンボボックスのプロパティを開き、「更新後処理」から開いたモジュール作成画面で、"Private Sub~"の行と"End Sub"の行の間に、
Me![(コンボボックス名)].Requery
という行を作成してみてください。
同じフォーム内に、同じテーブル(クエリー)からリストを作っているコンボボックスがあるなら、その分も上記とまったく同じ構文で行を作成してみてください。
これで、おそらくコンボボックス更新後にすぐ反映されます。
この回答への補足
すみません。そもそもフォームプロパティの入力チェックの項目を「はい」に変更する操作を行っていませんでした。結果問題なく動作しました。ありがとうございました。ところで、この方法はコンボボックスの値の取得元(例えばテーブルB)がフォームを作成する元になったもの(例えばテーブルA)と別な場合にうまくいきますが、私がやりたい方法としてはコンボボックスの値の取得元が同じテーブルAである場合です。もちろんそのまま取得すると様々な重複した値がそのままコンボボックスの内容になりしますので、重複したデータを自動的に1個にするクエリAを作成して(これは問題なくできました)そのクエリAをコンボボックスの値の取得元にしてみましたが、次のレコードへ移動する前にエラーが表示され、モジュール文の.AddNewのところでとまってしまうようです。そこでフォームプロパティの入力チェックの項目を「いいえ」に変更したところ、次のレコードへ移動しましたが、“更新”に匹敵する操作を行わない限りコンボボックスの値に反映されませんでした。いろいろと文句ばかり言うようで、もうしわけありませんが、上記の内容を解消できる術がありましたらご教示ください。
補足日時:2001/03/15 18:50No.3
- 回答日時:
再検証してみたのですが、先に紹介したモジュールではやはりフォームでの入力直後にリスト追加されるようですけれど、お使いの環境ではうまくいっていないのでしょうか?
もう一度確認してみてください。
それと、下記のモジュールに一点修正個所があります。
「.Update」の行と「End With」の行の間に一行、
.Close
というrecordset終了行が抜けていました。下記のモジュールをコピーしていた場合、追加しておいてください(なくても動作上不具合はないようですが)。
モジュールに抜けている行があり、すみませんでした。
この回答への補足
フォームプロパティの入力チェックの項目を「はい」に変更する操作を行っていませんでした。結果問題なく動作しました。ありがとうございました。ところで、この方法はコンボボックスの値の取得元(例えばテーブルB)がフォームを作成する元になったもの(例えばテーブルA)と別な場合にうまくいきますが、私がやりたい方法としてはコンボボックスの値の取得元が同じテーブルAである場合です。もちろんそのまま取得すると様々な重複した値がそのままコンボボックスの内容になりしますので、重複したデータを自動的に1個にするクエリAを作成して(これは問題なくできました)そのクエリAをコンボボックスの値の取得元にしてみましたが、次のレコードへ移動する前にモジュール文の.AddNewのところでとまってしまうようです。そこでフォームプロパティの入力チェックの項目を「いいえ」に変更したところ、次のレコードへ移動しましたが、“更新”に匹敵する操作を行わない限りコンボボックスの値に反映されませんでした。いろいろと文句ばかり言うようで、もうしわけありませんが、上記の内容を解消できる術がありましたらご教示ください。
補足日時:2001/03/15 18:46No.2
- 回答日時:
Ms Accessではテーブル(クエリー)を元にしたコンボボックスコントロールへリスト外入力を行う事があり、なおかつそれをリストに加えたいという場合、フォームを使用します。
そのため、まずは「コンボボックスから選んでデータを入力したい」テーブルに関連付けたフォームを作成します。いろいろとフォームには作成手順があるのですが、今回のご質問のケースの場合、テーブルに直接入力する事を考えられていたわけですからウィザードを使用して「データシート」で作成してもいいと思います。
次に作成したフォームをデザイン画面(編集画面)で開き、目的のコンボボックスを右クリックして「プロパティ」を開きます。そして開いたダイアログの表示を「イベント」のページに切り替え、ストの中の「リスト外入力時」を選択し、右側に現れた「…」ボタンを押します。するともう一枚ダイアログが表示されると思いますのでその中から「コードビルダ」を選択してください。これで、モジュール作成画面が開くはずです。
そして、画面が切り替わり、モジュール作成画面んが開いたら、"Private Sub~"の行と"End Sub"の行の間に、下記のサンプルを貼り付けてみてください。
ただし、これはあくまでサンプルですので、このままでは動きません。
(テーブル名)の部分はリストのもとになっているテーブル名へ、
(フィールド名)の部分はそのテーブル内のリストが格納されているフィールド名へ、
それぞれ変更してください。
それが終了したらモジュールを保存して作成画面を閉じ、フォームのデザイン画面でまだ開いているはずのコンボボックスのプロパティのページを「データ」に切り替え「入力チェック」の項目を「はい」に切り替えてフォームを保存するだけです。
下記のモジュールの動作確認は済んでいますのでおそらくそれでご希望の機能が動くと思います。
---
Response = acDataErrAdded
Dim rst As Recordset
Dim mydb As Database
Dim crnttbl As String
'現在のリスト一覧をテーブル(クエリー)から取得します。
Set mydb = CurrentDb
crnttbl = "(テーブル名)"
Set rst = mydb.OpenRecordset(crnttbl)
'リストに新規レコードを入力し、取得元テーブルを更新します。
With rst
.AddNew
![(フィールド名)] = NewData
.Update
End With
この回答への補足
細かな所まで説明して頂いて非常に助かりました。実際に試してみましたが、データシートビューのフォームではツールメニューの”レコード”→”更新”を実行して新しい値がコンボボックスに反映されるようです。欲をいって申し訳ありませんが、別のフィールド(レコード)へ移動したらすぐに反映されるようにしたいのですが、無理でしょうか。
補足日時:2001/03/15 14:56お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Visual Basic(VBA) Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。 6 2023/03/21 16:12
- Excel(エクセル) コンボボックス及びリストボックスを5段階連動させる方法をご存知の方ご教授頂きたいです。 Excelで 3 2022/04/03 21:43
- Excel(エクセル) Power Query でのデータの一括修正について 2 2022/05/10 02:00
このQ&Aを見た人はこんなQ&Aも見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
とっておきの「まかない飯」を教えて下さい!
飲食店で働く方だけが食べられる、とっておきの「まかない飯」。 働いてらっしゃる方がSNSなどにアップしているのを見ると、表のメニューには出てこない秘密感もあって、「食べたい!!」と毎回思ってしまいます。
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
[エクセルVBA] コンボボックスのリストの更新方法について
Excel(エクセル)
-
Accessのコンボボックスの値が消える
Excel(エクセル)
-
-
4
VBAコンボボックスの内容が反映されない
その他(プログラミング・Web制作)
-
5
ACCESSのコンボボックスで入力した値がTABLEに反映されずに数字がでます
Access(アクセス)
-
6
Access サブフォームでの選択行の取得
その他(データベース)
-
7
Access フォーム上でコンボボックスの値を更新したときにレコードセットは更新できないと表示される
その他(データベース)
-
8
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
9
コンボボックスにリストが表示されません・・・
Excel(エクセル)
-
10
VBAをつかってクエリの情報を抽出するには??
Visual Basic(VBA)
-
11
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
12
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
13
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
14
Access終了時にマクロまたはVBAの実行したい
その他(Microsoft Office)
-
15
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
16
ACCESSのフォームで次のレコードに移動しない方法を教えてください
その他(データベース)
-
17
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
18
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
19
ACCESSにて
Access(アクセス)
-
20
Accessのコンボボックスでリストが選択できない
Word(ワード)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでデータを更新したらそ...
-
入力した値をコンボボックスに...
-
前のレコードの値を自動で入れたい
-
インデックスまたは主キーにはn...
-
AccessVBAの値によっ...
-
Accessで、最後(更新)にエラ...
-
「バリアント型でない変数に Nu...
-
access別のテーブルを参照して...
-
Accessフォームが入力できません。
-
Accessでフォームに自動入力し...
-
Accessのフォームでデータ入力...
-
テキスト型のフィールドでハイ...
-
Accessのフォーム入力をしても...
-
ACCESS フォームで入力データ...
-
エクセルで、抽出したデータだ...
-
Access サブフォームでの選択行...
-
ACCESS 複数のフォームから同一...
-
ExcelのComboboxでマウスのスク...
-
PDFファイル/抽出許可され...
-
AccessでIDを入力したら他の項...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
前のレコードの値を自動で入れたい
-
access別のテーブルを参照して...
-
Accessフォームが入力できません。
-
インデックスまたは主キーにはn...
-
Accessでデータを更新したらそ...
-
AccessVBAの値によっ...
-
入力した値をコンボボックスに...
-
ACCESSでフォームのチェックボ...
-
ACCESS フォームで入力データ...
-
アクセスでコードを入れると名...
-
「バリアント型でない変数に Nu...
-
テキスト型のフィールドでハイ...
-
アクセスで自動でレコードを増やす
-
Accessでフォームに自動入力し...
-
アクセスのフォームの必須項目...
-
Accessで、最後(更新)にエラ...
-
Accessフォーム上の値を条件と...
-
access ダブリ登録を防止したい
-
ACCESS2003で、テーブルの更新...
-
Accessで時間外管理の作成について
おすすめ情報