データシートビューにサブフォーム「ActivitiesSubform」を持つアクセスフォーム「DailyItemsTracked」があります。「ActivitiesSubform」でレコードをダブルクリックすると、「ActivityEntry」というフォームが開いてレコードが編集されます。
ダブルクリックすると、編集したいレコードの正しいIDが表示されます。ただし、新しいフォームは常に開いて、既存のレコードを編集するのではなく、新しいレコードを追加します。(既存のすべてのレコードが除外されます)。私はこの問題を1時間以上グーグルで検索しましたが、解決策はありません。
ポップアップフォームのidフィールドとidコントロールソースの名前は両方とも「id」です。
フォームを開こうとした方法は次のとおりです。
MsgBox (Me![id]) 'It is getting the correct id for the selected record
DoCmd.OpenForm "ActivityEntry", , , "ID=" & Me.id
DoCmd.OpenForm "ActivityEntry", , , "[id]=" & Me![id]
DoCmd.OpenForm "ActivityEntry", , , "[id]=" & Form_ActivitiesSubform.id
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "ActivityEntry"
stLinkCriteria = "[id]=" & Me![id]
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "ActivityEntry"
stLinkCriteria = "ActivityEntryEdit.[id]= " & Me![id]
IDを明示的に記述しても、新しいレコードが開かれています。
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "ActivityEntry"
stLinkCriteria = "ActivityEntry.[id]= " & 69
また、開封後にレコードを選択することもできません
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "ActivityEntry"
stLinkCriteria = "ActivityEntryEdit.[id]= " & Me![id]
DoCmd.OpenForm stDocName, , , stLinkCriteria
Forms(stDocName).Recordset.FindFirst "id = " & Me!id
私はあなたが提供できるどんな助けにも感謝します!