record opzoeken en dupliceren

Status
Niet open voor verdere reacties.

J.-L.

Gebruiker
Lid geworden
15 aug 2005
Berichten
52
Ik maakte een formulier aan, waarbij ik een record wil kunnen dupliceren.
Dit werkt perfect, en doe die met volgende code:

Code:
Private Sub cmdLesdupliceren_Click()
On Error GoTo Err_cmdLesdupliceren_Click


    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append

Exit_cmdLesdupliceren_Click:
    Exit Sub

Err_cmdLesdupliceren_Click:
    MsgBox Err.Description
    Resume Exit_cmdLesdupliceren_Click
    
End Sub

Nu voegde ik ook een keuzelijst toe, om zo een record te tonen uit de keuzelijst.
Dit deed ik met volgende standaard-code:

Code:
Private Sub Keuzelijst_met_invoervak39_AfterUpdate()
    ' De record zoeken die overeenkomt met het besturingselement
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[LesID] = " & Str(Nz(Me![Keuzelijst met invoervak39], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

En hier komt het probleem:
Als ik in de keuzelijst een record heb geselecteerd, wordt dit record wel getoond, maar krijg ik een foutmelding bij het dupliceren: "Me.Bookmark = rs.Bookmark"

Kan iemand me verder helpen? Ik ben nog 'teveel beginner', en weet niet hoe ik hiermee verder moet.
 
De constructie die je gebruikt komt mij niet echt herkenbaar over. Voorzover ik weet kun je de gekozen waarde van de keuzelijst met een Me.? ophalen en deze gebruiken als filter in een query.

Je krijgt dan iets als :

sql = "SELECT * FROM tabel WHERE id='" & Me.? &"'"
set rs = openrecordset .......

Voor een juiste definitie voor het bouwen van een query staan er duidelijke voorbeelden in de help van VBA.
 
De constructie die ik gebruikt heb, is deze die automatisch gevormd wordt wanneer ik de keuzelijst en de knop (met dupliceerfunctie) op het formulier heb geplaatst.

De filter voor de query werkt ook zonder problemen.

Het enige dat nu niet meer werkt, is het dupliceren, waarbij ik dus de aangegeven foutmelding krijg.

Ik ben jammer genoeg nog te veel 'leek' om je antwoord verder te begrijpen, dus als je me nog een beetje verder op weg wil helpen...
 
Code:
If ... Then Me.Bookmark = rs.Bookmark

Hier mist sowieso een End If.
 
Heb je nog ergens een losse End If staan ? ( nog van het kopieren van de code voor de Keuzelijst )
 
Ik heb het probleem op een andere manier kunnen oplossen.
Ik heb een apart formulier gemaakt met de keuzelijst.
Op dit nieuwe formulier staat een knop om het oorspronkelijke formulier terug te openen, met de record die ik in de keuzelijst heb bepaalt.

Het dupliceren geeft nu ook geen problemen meer.

Op deze manier werkt mijn database nog 'handiger' dan eerst bedoelt,
toch bedankt voor alle hulp.

(blijkbaar was er dus een conflict tussen de keuzelijst en het dupliceren, wat nu dus opgelost is)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan