1

データシートビューにサブフォーム「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

私はあなたが提供できるどんな助けにも感謝します!

4

1 に答える 1

2

DoCmd.OpenFormステートメントの構文を理解する必要があります。あなたはここでそれについて読むことができます。簡単に言うと、DataModeパラメータをに設定する必要がありますacFormEdit

于 2013-02-15T04:00:03.283 に答える