Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Weergeven resultaten 1 tot 6 van 6

Onderwerp: Wat gaat hier niet goed

  1. #1
    Senior Member
    Geregistreerd
    26 augustus 2008
    Vraag is niet opgelost

    Wat gaat hier niet goed

    HTML Code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    
    Sub Comprimeren()
    gstr1 = "Deze functie maakt de huidige administratie kleiner, door de boekingen van elke rekening tot 1 regel terug te brengen."
    gstr1 = gstr1 + vbNewLine & "Daardoor geven de functies REKENINGKAARTEN weinig informatie meer."
    gstr1 = gstr1 + vbNewLine & "Wil je dit?"
    If MsgBox(gstr1, vbYesNo, "Comprimeren") = 7 Then Exit Sub
    jaar = Contact("Haal", "mmo", "SELECT * FROM H_Pointers WHERE id=2")
    If Val(jaar) < 2000 Then MsgBox "Ga eerst naar parameters en voer het huidig boekjaar in ": Exit Sub
        Set Tabel1 = CurrentDb.OpenRecordset("select * from t_grootboek where reknr<10000"): Gint2 = 0
        Tabel1.MoveFirst
        Do Until Tabel1.EOF
            gstr1 = "SELECT T_Boekingen.*, T_Grootboek.RekNr, T_Grootboek.Groepsrekening"
            gstr1 = gstr1 & " FROM T_Boekingen INNER JOIN T_Grootboek ON T_Boekingen.RekNr = T_Grootboek.RekNr WHERE (T_Grootboek.RekNr)=" & Tabel1!RekNr & ";"
            Set tabel2 = CurrentDb.OpenRecordset(gstr1):
            Set tabel3 = CurrentDb.OpenRecordset("T_Boekingen")
            If tabel2.RecordCount = 0 Then GoTo Verder
                Gcur1 = 0: tabel2.MoveFirst
                For Gint1 = 1 To tabel2.RecordCount
                    If tabel2!DC = "D" Then Gcur1 = Gcur1 + tabel2!Bedrag Else Gcur1 = Gcur1 - tabel2!Bedrag
                    gstr1 = "delete T_Boekingen.* From T_Boekingen WHERE T_Boekingen.RekNr = " & Tabel1!RekNr & " and T_Boekingen.boekstuk = " & fnInQuotes(tabel2!Boekstuk)
                    DoCmd.SetWarnings False
                    DoCmd.RunSQL gstr1
                    DoCmd.SetWarnings True
                    
                Next Gint1
     
                
                tabel3.AddNew
                If Gcur1 >= 0 Then tabel3!DC = "D": tabel3!Bedrag = Gcur1
                If Gcur1 < 0 Then tabel3!DC = "C": tabel3!Bedrag = Gcur1
                tabel3!Omschrijving = "Verdichte boeking"
                tabel3!Datum = "31-12-" & jaar
                tabel3!RekNr = Tabel1!RekNr
                Gcur1 = 0: Gint2 = Gint2 + 1
                tabel3.Update
                tabel2.Close
    Verder:
        Tabel1.MoveNext
        Loop
        Tabel1.Close
        If Gint2 > 0 Then
            
            
            MsgBox "Het aantal gecomprimeerde rekeningen is " & Gint2
        End If
     
     
    End Sub
    De bedoeling is om in de regels 19-22 een boekingsregel te verwijderen maar dat gebeurt niet!

  2. #2
    Senior Member NoellaG's avatar
    Geregistreerd
    10 april 2019
    Locatie
    Melsele
    na regel 12: gstr1 = .... kan je de regel debug.print gstr1 toevoegen. Stap voor stap de code uitvoeren en het resultaat uit de immediate pane kopiëren en in een query SQL venster plakken, uitvoeren en kijken of dit een resultaat geeft.
    Ik ken access SQL niet zo goed als T-SQL, maar normaal schrijf je een delete query als Delete from [tabelnaam] where [criteria] zonder de T_Boekingen.* tussen de delete en from instructies.

  3. #3
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Ik zie zat problemen; om te beginnen: je hebt de tabel t_Boekingen wel een paar keer opengezet. In de variabele gstr1 (gelinkt aan T_Grootboek), in tabel3... Nota bene heb je tabel3 ook in gebruik om nieuwe records toe te voegen; waarom gebruik je die recordset dan niet om het gekozen record te verwijderen? Lijkt mij een stuk simpeler.
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  4. #4
    Senior Member
    Geregistreerd
    26 augustus 2008
    Octafish zegt
    Code:
    waarom gebruik je die recordset dan niet om het gekozen record te verwijderen? Lijkt mij een stuk simpeler.
    Dat deed ik eerder al maar dat werkte ook niet.

  5. #5
    Giga Honourable Senior Member
    Geregistreerd
    2 maart 2013
    'Wat gaat hier niet goed' is nogal een pakkende titel. Code hoort tussen codetags. Je bent hier vandaag toch niet voor het eerst?
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  6. #6
    Senior Member
    Geregistreerd
    26 augustus 2008
    Ik heb het opgelost en wel op deze manier
    Code:
    Sub Comprimeren()
    gstr1 = "Deze functie maakt de huidige administratie kleiner, door de boekingen van elke rekening tot 1 regel terug te brengen."
    gstr1 = gstr1 + vbNewLine & "Daardoor geven de functies REKENINGKAARTEN weinig informatie meer."
    gstr1 = gstr1 + vbNewLine & "Wil je dit?"
    If MsgBox(gstr1, vbYesNo, "Comprimeren") = 7 Then Exit Sub
    jaar = Contact("Haal", "mmo", "SELECT * FROM H_Pointers WHERE id=2")
    If Val(jaar) < 2000 Then MsgBox "Ga eerst naar parameters en voer het huidig boekjaar in ": Exit Sub
        Set Tabel1 = CurrentDb.OpenRecordset("t_grootboek"): Gint2 = 0
        Tabel1.MoveFirst
        Do Until Tabel1.EOF
            gstr1 = "SELECT T_Boekingen.*, T_Grootboek.RekNr, T_Grootboek.Groepsrekening"
            gstr1 = gstr1 & " FROM T_Boekingen INNER JOIN T_Grootboek ON T_Boekingen.RekNr = T_Grootboek.RekNr WHERE (T_Grootboek.RekNr)=" & Tabel1!RekNr & ";"
            Set tabel2 = CurrentDb.OpenRecordset(gstr1):
            If tabel2.RecordCount > 0 Then tabel2.MoveLast
            If tabel2.RecordCount < 2 Then GoTo Verder
                Gcur1 = 0: tabel2.MoveFirst
                For Gint1 = 1 To tabel2.RecordCount
                If Gint1 > 1 Then tabel2.MoveNext
                    If tabel2!DC = "D" Then Gcur1 = Gcur1 + tabel2!Bedrag Else Gcur1 = Gcur1 - tabel2!Bedrag
                    tabel2.Edit: tabel2!Datum = 0: tabel2.Update
                Next Gint1
    
                tabel2.MoveFirst
                tabel2.Edit:
                If Gcur1 >= 0 Then tabel2!DC = "D": tabel2!Bedrag = Gcur1:
                If Gcur1 < 0 Then tabel2!DC = "C": tabel2!Bedrag = Gcur1
                tabel2!Omschrijving = "Verdichte boeking"
                tabel2!Datum = "31-12-" & jaar
                Gcur1 = 0: Gint2 = Gint2 + 1
                tabel2.Update
                tabel2.Close
    Verder:
        Tabel1.MoveNext
        Loop
        Tabel1.Close
        If Gint2 > 0 Then
            
            gstr1 = "DELETE FROM T_boekingen WHERE T_Boekingen!datum = 0; "
            DoCmd.SetWarnings False
            CurrentDb.Execute gstr1, dbFailOnError
            DoCmd.SetWarnings True
            MsgBox "Het aantal gecomprimeerde rekeningen is " & Gint2
        End If
    
    
    End Sub
    Iedereen bedankt voor het meedenken !
    Bart

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl

Regels
Help

Helpmij.nl en business

Partners
Sponsoren