私はMS Accessでフォームを開いた状態で実行するこのVBAコードを以下に示します。このコードは、いくつかのテーブルからすべてのレコードを削除し、保存された追加クエリ(かなり複雑です)を実行して、毎回新鮮なデータを使用してこれらのテーブルを再度入力します。"delete" SQL文字列とクエリの追加を実行する際のVBAの問題
コードシーケンス(PDSForecast)で更新された最後のテーブルに基づいてフォームが開き、そのテーブルの追加クエリが機能し、正しいデータがロードされることが確認されました。
問題は、そのテーブルに基づいたフォームを開いたとき(このコードが最初に実行される)、何らかの理由ですべてのレコードが#Deletedとして表示されるということです。このフォームが基づいているテーブルは、フォームが開く前に実行されるコードの最後の部分であり、動作します。誰かが私がここで間違っていることを理解するのを助けることができますか?
ありがとうございます!
Private Sub Form_Open(Cancel As Integer)
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE FROM ECIInventTransIntentDim"
DoCmd.RunSQL "DELETE FROM CurrentOH"
DoCmd.RunSQL "DELETE FROM CurrentOO"
DoCmd.RunSQL "DELETE FROM RequirementsAXAPTA"
DoCmd.RunSQL "DELETE FROM AvgWeeklyUsage"
DoCmd.RunSQL "DELETE FROM PDSForecast"
DoCmd.OpenQuery "Query_ECIINVENTTRANSINVENTDIM"
DoCmd.OpenQuery "Query_CURRENTOH"
DoCmd.OpenQuery "Query_CURRENTOO"
DoCmd.OpenQuery "Query_REQUIREMENTSAXAPTA"
DoCmd.OpenQuery "Query_AVGWEEKLYUSAGE"
DoCmd.OpenQuery "Query_PDSFORECAST"
DoCmd.SetWarnings True
End Sub
追加クエリの後に 'Me.Form.Requery'という形を単純に再クエリーします。 – Parfait