tabel blijft leeg

Status
Niet open voor verdere reacties.

ronnie123

Gebruiker
Lid geworden
21 nov 2007
Berichten
628
beste forum leden
als ik op de knop druk met de volgende code moet toch de tabel toernooi2010_alles gevuld worden?
Code:
Private Sub Knop48_Click()
 Dim dbSleutelregistratie As Database
Dim rcdtoernooi2010_alles_tbv_rooster As Recordset
Dim rcdtoernooi2010_alles As Recordset
Dim rcdspelers As Recordset
Set dbSleutelregistratie = CurrentDb()


DoCmd.CopyObject , "rcdtoernooi2010_alles_tbv_rooster", acTable, "toernooi2010_alles"

Set rcdtoernooi2010_alles_tbv_rooster = dbSleutelregistratie.OpenRecordset("rcdtoernooi2010_alles_tbv_rooster")
Set rcdtoernooi2010_alles = dbSleutelregistratie.OpenRecordset("toernooi2010_alles")


    '''''kopieren alles 2010
    
     
    
    
    
    
    rcdtoernooi2010_alles_tbv_rooster.MoveFirst
    Do While Not rcdtoernooi2010_alles_tbv_rooster.EOF
    
    If rcdtoernooi2010_alles_tbv_rooster![Beurten] > 0 Then
    
    '''lege velden maken
    rcdtoernooi2010_alles_tbv_rooster.Edit
    rcdtoernooi2010_alles_tbv_rooster![VoornaamA] = "Gespeeld"
    rcdtoernooi2010_alles_tbv_rooster![VoornaamB] = ""
    rcdtoernooi2010_alles_tbv_rooster![CarambolesA] = Empty
    rcdtoernooi2010_alles_tbv_rooster![CarambolesB] = Empty
    rcdtoernooi2010_alles_tbv_rooster![Partijsoort] = ""
   
   
    rcdtoernooi2010_alles_tbv_rooster.Update
    End If
    
    rcdtoernooi2010_alles_tbv_rooster.MoveNext
    Loop
    
    
    Dim stDocName As String

    stDocName = "rooster vervolg"
    DoCmd.OpenReport stDocName, acPreview

End Sub
maar ik krijg de melding
fout 3021 tijdens uitvoering
geen huidige record.
kan iemand zien wat er fout gaat
bvd ronnie
 
Laten we bij het begin beginnen: krijg je wel een kopie van je tabel? En zo ja: krijg je de foutmelding bij de eerste keer aanmaken (als hij er dus nog niet is) of bij de tweede en volgende keren, als je de tabel dus probeert te overschrijven?
 
hallo michel
het is een vaste tabel en de melding krijg ik gelijk in het begin.
Code:
Private Sub alles_resetten_Click()
Dim dbSleutelregistratie As Database
Dim rcdspelers As Recordset

On Error GoTo Err_Alles_resetten_Click


Code = InputBox("Geef code [####] ", "Code")

If Code <> "0000" Then GoTo niet





'If Me.Dirty Then Me.Dirty = False

Dim rcdtoernooi As Recordset


Set dbSleutelregistratie = CurrentDb()
Set rcdspelers = dbSleutelregistratie.OpenRecordset("spelers")
Set rcdtoernooi = dbSleutelregistratie.OpenRecordset("toernooi")
Set rcdtellijst = dbSleutelregistratie.OpenRecordset("tellijst")
Set rcdtellijst1 = dbSleutelregistratie.OpenRecordset("tellijst1")

nummer = MsgBox("Weet je het zeker? ", vbYesNo)

If nummer = 6 Then



rcdspelers.MoveFirst
Do While Not rcdspelers.EOF
            
    rcdspelers.Edit
    rcdspelers![totcar] = 0
    rcdspelers![totbrt] = 0
    rcdspelers![aantalwedstr] = 0
    rcdspelers![nieuwecar] = 0
    
    rcdspelers.Update
rcdspelers.MoveNext
Loop

'''verwijder gegevens tabel toernooi
If rcdtoernooi.RecordCount > 0 Then

    rcdtoernooi.MoveFirst
    Do While Not rcdtoernooi.EOF
        rcdtoernooi.Delete
        rcdtoernooi.MoveNext
    
    Loop

'''verwijder gegevens tabel tellijst
If rcdtellijst.RecordCount > 0 Then

    rcdtellijst.MoveFirst
    Do While Not rcdtellijst.EOF
        rcdtellijst.Delete
        rcdtellijst.MoveNext
    
    Loop
End If

'''verwijder gegevens tabel tellijst1
If rcdtellijst1.RecordCount > 0 Then

    rcdtellijst1.MoveFirst
    Do While Not rcdtellijst1.EOF
        rcdtellijst1.Delete
        rcdtellijst1.MoveNext
    
    Loop
End If

MsgBox "Gegevens verwijderd", vbQuestion
End If

Else
niet:
MsgBox "Gegevens niet verwijderd", vbQuestion
End If

Exit_Alles_resetten_Click:
    Exit Sub


Err_Alles_resetten_Click:
    MsgBox Err.Description
    Resume Exit_Alles_resetten_Click
End Sub
deze code gebruik ik om de oude gegevens te verwijderen (van het vorige toernooi ) en de andere om weer een nieuw toernooi te starten.
hoop dat het een beetje duidelijk is.
grt ronnie
 
Waarom gebruik je niet een paar Verwijderqueries om de tabellen leeg te maken? Het is behoorlijk omslachtig om dat met recordsets te doen. Mijn motto: als het met één regel kan, dan doe ik het met één...
Maar ik heb al gezien dat je van een beetje typwerk niet vies bent; als je bereid bent om een noodzakelijke string langer te maken dan noodzakelijk is, dan ben je niet lui ;)
Ik bedoel dan uiteraard de regels:
Set rst1 = CurrentDB.OpenRecordset("spelers"), waar jij dit van maakt:
Set rcdspelers = dbSleutelregistratie.OpenRecordset("spelers")

Maar waar het om gaat is natuurlijk, dat je e.e.a. een stuk slimmer kan doen, met 3 verwijderqueries, en een bijwerkquery voor de tabel [Spelers].
 
hallo michel
heb dit gemaakt met de hulp van internet en andere.
maar komt de fout dan ook door al dat vele type werk (dat zou jammer zijn ).
zou je me willen helpen om het eenvoudiger te maken?
grt ronnie
 
Je kunt de hele mikmak volgens mij met deze queries doen:

Code:
Dim strSQL As String
    DoCmd.SetWarnings False
    strSQL = "UPDATE spelers SET totcar = 0, totbrt = 0, aantalwedstr = 0, nieuwecar = 0"
    DoCmd.RunSQL strSQL
    strSQL = "DELETE * FROM toernooi"
    DoCmd.RunSQL strSQL
    strSQL = "DELETE * FROM tellijst"
    DoCmd.RunSQL strSQL
    strSQL = "DELETE * FROM tellijst1"
    DoCmd.RunSQL strSQL
    DoCmd.SetWarnings True
 
hallo michel
dit is gelukt code is aardig ingekort.
maar het probleem van vraag 1 blijft, zie je daar nog een fout in?
grt ronnie
 
Je hebt op mijn wedervraag nog niet helemaal volledig beantwoord. Krijg je de foutmelding ook als je de tabel opnieuw aanmaakt?
 
En hoe luidt die foutmelding? En bij welke regel stopt de Debugger?
 
fout 3021 tijdens uitvoering geen huidige record.
Code:
 rcdtoernooi2010_alles_tbv_rooster.MoveFirst
    Do While Not rcdtoernooi2010_alles_tbv_rooster.EOF
de bovenste regel is geel gemarkeerd.
grt ronnie
 
Ik zie deze regels niet terug in je code.... ik kan zo dus ook niet zien wat er fout aan is. Misschien moet je de code nog eens posten...
 
hier is de code, heb de letters rood gemaakt
Code:
Private Sub Knop48_Click()
 Dim dbSleutelregistratie As Database
Dim rcdtoernooi2010_alles_tbv_rooster As Recordset
Dim rcdtoernooi2010_alles As Recordset
Dim rcdspelers As Recordset
Set dbSleutelregistratie = CurrentDb()


DoCmd.CopyObject , "rcdtoernooi2010_alles_tbv_rooster", acTable, "toernooi2010_alles"

Set rcdtoernooi2010_alles_tbv_rooster = dbSleutelregistratie.OpenRecordset("rcdtoernooi2010_alles_tbv_rooster")
Set rcdtoernooi2010_alles = dbSleutelregistratie.OpenRecordset("toernooi2010_alles")


    '''''kopieren alles 2010
    
     
    
    
    
    
   [COLOR="red"] rcdtoernooi2010_alles_tbv_rooster.MoveFirst
    Do While Not rcdtoernooi2010_alles_tbv_rooster.EOF[/COLOR]    
    If rcdtoernooi2010_alles_tbv_rooster![Beurten] > 0 Then
    
    '''lege velden maken
    rcdtoernooi2010_alles_tbv_rooster.Edit
    rcdtoernooi2010_alles_tbv_rooster![VoornaamA] = "Gespeeld"
    rcdtoernooi2010_alles_tbv_rooster![VoornaamB] = ""
    rcdtoernooi2010_alles_tbv_rooster![CarambolesA] = Empty
    rcdtoernooi2010_alles_tbv_rooster![CarambolesB] = Empty
    rcdtoernooi2010_alles_tbv_rooster![Partijsoort] = ""
   
   
    rcdtoernooi2010_alles_tbv_rooster.Update
    End If
    
    rcdtoernooi2010_alles_tbv_rooster.MoveNext
    Loop
    
    
    Dim stDocName As String

    stDocName = "rooster vervolg"
    DoCmd.OpenReport stDocName, acPreview

End Sub
 
hallo michel
ben er bijna uit, ik miste een paar regels.
Code:
DoCmd.SetWarnings False

DoCmd.CopyObject , "rcdtoernooi_tbv_rooster", acTable, "toernooi"
dit gebruik ik nu
Code:
Private Sub Knop48_Click()
 Dim dbSleutelregistratie As Database
Dim rcdtoernooi_tbv_rooster As Recordset
Dim rcdtoernooi As Recordset
Dim rcdtellijst As Recordset
Dim rcdspelers As Recordset
Set dbSleutelregistratie = CurrentDb()

 DoCmd.SetWarnings False

DoCmd.CopyObject , "rcdtoernooi_tbv_rooster", acTable, "toernooi"



Set rcdtoernooi_tbv_rooster = dbSleutelregistratie.OpenRecordset("rcdtoernooi_tbv_rooster")
Set rcdtoernooi = dbSleutelregistratie.OpenRecordset("toernooi")
Set rcdtelljist = dbSleutelregistratie.OpenRecordset("tellijst")

    
    '''''kopieren alles 2010
    
     
    
    
    
    
    rcdtoernooi_tbv_rooster.MoveFirst
    Do While Not rcdtoernooi_tbv_rooster.EOF
    
    If rcdtoernooi_tbv_rooster![BeurtenA] > 0 Then
    
    '''lege velden maken
    rcdtoernooi_tbv_rooster.Edit
    rcdtoernooi_tbv_rooster![VoornaamA] = "Gespeeld"
    rcdtoernooi_tbv_rooster![VoornaamB] = ""
    rcdtoernooi_tbv_rooster![CarambolesA] = Empty
    rcdtoernooi_tbv_rooster![CarambolesB] = Empty
    rcdtoernooi_tbv_rooster![Partijsoort] = ""
   
   
    rcdtoernooi_tbv_rooster.Update
    End If
    
    rcdtoernooi_tbv_rooster.MoveNext
    Loop
    
    If rapportnee = 0 Then
    
    Else
    Dim stDocName As String

    stDocName = "rooster_vervolg"
    DoCmd.OpenReport stDocName, acPreview
    End If


End Sub
krijg alleen het afdruk voorbeeld niet te zien weet jij waarom niet?
grt ronnie
 
Krijg je wel een rapport als je het rechtstreeks opent? En heb je gecontroleerd of de voorwaarde (If rapportnee <> 0 Then) wel klopt?
 
ik zet de vraag op opgelost
maar hij is niet opgelost
ga de db opnieuw maken
grt ronnie
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan