0

2つのコンボボックスと2つのボタンがあるフォームがあります。ボタンの1つ(「ロールオーバー」と呼ばれます)は、前年のデータをロールオーバーするためのものです。クリックすると、前年のデータを取得して、翌年のフォームに挿入できるはずです。

コードを記述しましたが、ボタンをクリックしてもデータが挿入されず、フォームを1回開いた後にデータが挿入されます。

例:[ロールオーバー]をクリックしてからフォームをクリックすると、フォームが開きますが、データがありません。フォームを閉じます。もう一度「ロールオーバー」をクリックします。フォームをもう一度開くと、データが挿入されています。

フォームを少なくとも1回開かないと、データを挿入できない理由がわかりません。

私のコードは次のようになります。

Form_1_Test.Text10 = DLookup("Legal_Name", "1_Test", "[Program_Name] = '" & Replace([Combo2], "'", "''") & "' And [BudgetYear] = " & ([Combo0] - 1))
4

1 に答える 1

1

データを挿入した後、おそらくフォームを再クエリする必要があります。MyButton_Click()コードの最後(つまり、新しいレコードを挿入するコードの後に​​)に次の行を追加します。

Me.Requery

「フォームに」レコードを挿入していないことに注意してください。むしろ、フォームの基になっている基になるテーブルにレコードを挿入しています。

また、Accessフォームは、ロードされたレコード*の変更されたデータを自動的に更新しますが、新しく作成されたレコードの存在をポーリングしません。Requeryフォームのメソッドを介してフォームにそれを強制する必要があります。

*デフォルトのRecordsetTypeプロパティを「Dynaset」から変更していないことを前提としています

于 2012-06-25T16:33:52.767 に答える