Record kopiëren

Status
Niet open voor verdere reacties.

josenlieke

Gebruiker
Lid geworden
3 apr 2006
Berichten
33
Beste mensen,

Ik ben pas enkele weken bezig met access 2007.
Al dagen loop ik tegen het zelfde probleem aan en kom niet verder.:(
Ik heb een aantal tabellen die ik met relaties aan elkaar verbonden heb.
Nu heb ik een formulier gemaakt waarmee de gewenste (sub)tabellen ingevuld worden.
Tot zover gaat het goed.
Ik heb ook een gegevenstabel met standaard keuzes.
Ik heb in het formulier een keuzelijst gemaakt waarmee ik verschillende velden (via veldkeuze "optie") van een record uit de gevenstabel in het subtabel wil kopiëren via het formulier. De veldnamen die ik gekopiëerd wil hebben komen in de tabellen overeen.
Bij "Opbouwfunktie voor programmacode" heb ik de volgende formule opgegeven;

Option Compare Database

Private Sub Keuzelijst_met_invoervak23_Click()
Dim keuze As String
keuze = Me.Keuzelijst_met_invoervak23
Me.RecordsetClone.FindFirst "[optie]='" & keuze & "'"
Me.Bookmark = Me.RecordsetClone.Bookmark
End Sub

Als ik deze funktie uitvoer, krijg ik steeds de volgende code:
Fout 3021 tijdens uitvoering.
Bij de foutopsporing wordt dan de volgende regel in het geel weergegeven.
Me.Bookmark = Me.RecordsetClone.Bookmark

Wat doe ik hier fout.

Graag jullie reactie.
Alvast bedankt voor de medewerking en jullie tijd.

Groeten, Jos Hoogervorst
 
Ik weet niet wat je in je combobox 'Keuzelijst_met_invoervak23' hebt staan, maar error 3021 is 'no current record', m.a.w. geen record kunnen vinden. De waarde van 'keuze' zal dus niet te vinden zijn in het veld optie van de RecordSetClone.
 
Als Optie een getalveld is, moet je filteren met deze string:
"[optie]=" & keuze
Het maakt overigens niet uit of je Keuze als String definieert; in de Filtering moet je kijken naar de Veldeigenschap van het Tabelveld. Is dat numeriek, dan moet je een getal meegeven met het filter. Is het tekst, dan zet je er quootjes voor.
 
Alvast bedankt voor de moeite die jullie gedaan hebben om mijn te helpen. Het werkt nog niet. Van VBA heb ik nog niet veel kennis maar probeer het wel te begrijpen.
Ik heb vandaag weer de hele dag op internet lopen struinen, maar niets passend kunnen vinden.
Ook met het voorbeeldbestand Noordenwind kom ik niet verder.
Ik heb mijn (uitgeklede) bestand maar even bijgevoegd. Het is nog een ruwe diamant die nog verder aangewerkt moet worden, maar het zal jullie wel verder wel duidelijk zijn.

De bedoeling is dat ik met het formulier "frmInvoeren" de gegevens in de subtabellen kan plaatsen. Dit wil ik o.a. doen met een keuzelijst met invoervak (btnOptie) in het onderste gedeelte. Als ik hier op klik dan komen de optiecodes in beeld uit de tabel "Standaard lijst". Dan is het de bedoeling dat enkele velden van dat record uit de tabel "StandaardLijst" worden gekopiëerd in het subtabel die valt onder Kopersgegevens>Offertenemen>Koperskeuzes.

Ik wil niet de induk wekken dat jullie alles voor mijn moeten doen. Ik zou al heel blij zijn als ik een voorbeeld zou krijgen van een goede code of een alternatief.
Alvast bedankt voor jullie medewerking.

Groeten, Jos Hoogervorst
 

Bijlagen

Laatst bewerkt:
Als je de db in 2003 formaat kunt opslaan, kan ik er ook naar kijken...
 
Zal er dit weekend naar kijken!
 
Zal er dit weekend naar kijken!

Kan er soms iets gedaan worden met de volgende formulles??



Dim RSC recordset, RS als recordset
set RSC = me.recordsetclone set RSC = me.recordsetclone
Set RS = currentdb().Openrecordset("TableName",vbOpenDynaset) Set RS = CurrentDb (). OpenRecordset ( "TableName", vbOpenDynaset)
While Not RSC.EOF Terwijl Niet RSC.EOF
RS.AddNew RS.AddNew
RS![Field1]=RSC![Field1] RS! [Veld1] = RSC! [Veld1]
RS![Field2]=RSC![Field2] RS! [Veld2] = RSC! [Veld2]
etc. enz.
RS.Update RS.Update
RSC.MoveNext RSC.MoveNext
WEnd Wend
RS.Close RS.Close
RSC.Close RSC.Close

Set rst = RecordsetClone
rst.FindFirst "Key = " & iiSourceKey rst.FindFirst "Key =" & iiSourceKey
strSQL = "UPDATE myTableName SET " _ strSQL = "UPDATE myTableName SET" _
& " Field1 = " & rst!Field1 & _ & "Veld1 =" & rst! Veld1 & _
& ", Field2 = " & rst!Field2 & _ & ", Veld2 =" & rst! Veld2 & _
... ...
& " WHERE Key = " & iiTargetKey & "WHERE Key =" & iiTargetKey

Ik hoor graag van jullie.
Alvast bedankt voor de moeite.

Groeten, Jos Hoogervorst
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan