0

これはとても簡単なはずですが、何らかの理由で新しいレコードとして 2 番目のフォームを開き続けます! 私は何年もデータベースを作成しておらず、それ以来 2 人の子供をもうけました。

これは、ウィザードのように毎回新しいウィンドウで質問の各セクションを実行したい事故報告データベースです。最初のセクションでは、新しいインシデントを報告するか、その他のナビゲーション オプションを選択するかを尋ねられます。新しいインシデントを報告するコマンドは問題ありませんでした。マクロ ビルダー、openform、フォーム名: 影響を受けた人物について 02、データ モードを「追加」に設定します。毎回新しい記録に入る。これまでのところすべて順調です。

名前、住所などを入力すると、フォーム ID 自動番号が生成され、次のセクションをクリックするボタンがあります。ID は既に入力されており、そのレコードはテーブルに作成されているため、コマンド ボタンを設定してフォームを開いて ID に基づいてフィルター処理すると、次のフォームに表示されると想定しました (ID フィールドは表示されます)。すべてのフォームの上隅にあります) が、何らかの理由でフィルタリングされず、各セクションで毎回新しいレコードが表示されるだけです。各セクションは、独自のレコードとして個別に保存されます。

マクロ ビルダーを介してフィルター処理を試みました (これらの後続のフォームのデータ モードを「編集」に設定)。コマンド ボタン ウィザードに従って 2 つをリンクしようとしましたが、関係は存在し、最初のフォームはまだ開いています。この時点で、他のマクロが開いたときにマクロを閉じるように設定すると、ルックアップするデータがなくなるのではないかと思っていましたか?ストローをつかんで動作させようとしていますが、私はこの種のことを何度も行ってきましたが、この問題は一度もありません!!

どんな助けや提案も大歓迎です、ありがとう!

4

2 に答える 2

0

私はそこにたどり着いたと思います...たくさんの欲求不満の後!! 他の誰かがこの問題の解決策を探している場合、Albert D. Kallal は正しかったです。データを保存していましたが、最初に新しいフォームを開いてから、前のフォームを閉じたときにデータを保存していたので、それが表示されました。私のテーブルにはありましたが、次のフォームに引き抜かれるためにまだ存在していませんでした。簡単な修正で、マクロのコマンドの順序が変更されました。彼が提案したコードは、赤ちゃんの脳に深刻な問題を抱えている人の手に渡っていなければ、うまく機能していただろうと思います...

于 2016-07-28T13:09:36.320 に答える
0

自動番号が作成されたという事実は、レコードが作成されたことを意味するものでも、レコードが保存されたことを意味するものでもありません。ユーザーが元に戻して終了すると、データは保存されず、実際には自動番号はスキップされ、使用されません。これは、削除が行われていないときに自動番号にギャップが見られる理由を説明しています。

簡単な解決策は、他の/次のフォームを起動する前に、現在のフォームのデータがテーブルに書き込まれるようにすることです。次のコードは、この目標を達成します。

If me.dirty = true then me.dirty = false

Docmd.OpenForm "Form2",,,"id = " & me!id

したがって、最初の行はレコードの保存を強制し、コードの 2 行目は 2 番目のフォームを現在の同じレコードに対して起動します。

于 2016-07-26T17:34:20.147 に答える