Probleem met nieuwe record na het toepassen van .Requery en .Bookmark

Status
Niet open voor verdere reacties.

gast0136

Gebruiker
Lid geworden
18 sep 2013
Berichten
11
Hoi mensen,

Ik probeer een VBA-code in elkaar te zetten die ervoor kan zorgen dat de database in dezelfde record blijft staan na requery (bij bestaande record). Maar als er een nieuwe record aangemaakt wordt, blijft de database hangen zonder naar een nieuwe record te springen. Zien jullie misschien een foutje? :confused:

Code:
Private Sub cmd_MRD_Add_Or_Mutate_Save_Click()
    Dim strBookmark As String
        strBookmark = Forms![frm_D_MRD]![fsub_MRD].Form.Bookmark
            With Forms![frm_D_MRD]![fsub_MRD].Form
                .Requery
                .Bookmark = strBookmark
            End With
End Sub

Als ik deze VBA-code probeer, werkt het helemaal niet. Want dan krijg ik een melding: Deze eigenschap of methode wordt niet ondersteund door dit object.

Code:
Private Sub cmd_MRD_Add_Or_Mutate_Save_Click()
    Dim strBookmark As String
        strBookmark = Forms![frm_D_MRD]![fsub_MRD].Form.Bookmark
            With Forms![frm_D_MRD]![fsub_MRD].Form
                If Me.Recordset.NewRecord Then
                    .Requery
                    .MoveLast
                Else
                    .Requery
                    .Bookmark = strBookmark
                End If
            End With
End Sub
 
Laatst bewerkt:
Een Bookmark haal je uit een Recordset, en is een Variant, geen String.
 
Hoi OctaFish,

Ja, dat zag ik overal op het internet na jouw informatie. Alleen lukt het mij alsmaar niet om het toe te passen (hopelijk goed toegepast) wat ik het jammer vind. Zie hieronder de VBA-code met Bookmark. Ik krijg een melding: Typen komen niet met elkaar overeen. Deze VBA-code is van een button op een ander formulier waarin alleen de wijzigingen aan de gegevens veranderd mogen worden. Het hoofdformulier "frm_D_MRD" is bedoeld om informatie te bekijken en verder niet. Wat doe ik verkeerd? :eek:

Code:
Private Sub cmd_MRD_Add_Or_Mutate_Save_Click()
    On Error GoTo Err_cmd_MRD_Add_Or_Mutate_Save_Click
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    Dim varBookmark As Variant
        Set varBookmark = Forms![frm_D_MRD]![fsub_MRD].Form.Recordset.Bookmark
            With Forms![frm_D_MRD]![fsub_MRD].Form
                .Requery
                .Recordset.Bookmark = varBookmark
            End With
Exit_cmd_MRD_Add_Or_Mutate_Save_Click:
    Exit Sub
Err_cmd_MRD_Add_Or_Mutate_Save_Click:
    MsgBox Err.Description
    Resume Exit_cmd_MRD_Add_Or_Mutate_Save_Click
End Sub

Daarom heb ik een andere (tijdelijke) oplossing gezocht voor mijn probleem en dat is deze VBA-code geworden:

Code:
Private Sub cmd_MRD_Add_Or_Mutate_Save_Click()
    On Error GoTo Err_cmd_MRD_Add_Or_Mutate_Save_Click
    With Forms![frm_D_MRD]![fsub_MRD].Form
        If Me.NewRecord Then
            DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
            .Requery
            .Recordset.MoveLast
        Else
            DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
        End If
    End With
Exit_cmd_MRD_Add_Or_Mutate_Save_Click:
    Exit Sub
Err_cmd_MRD_Add_Or_Mutate_Save_Click:
    MsgBox Err.Description
    Resume Exit_cmd_MRD_Add_Or_Mutate_Save_Click
End Sub
 
Laatst bewerkt:
Beetje ouderwetse manier van opslaan; gebruik liever
Code:
DoCmd.RunCommand acCmdSaveRecord
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan