Missende nummers in reeks

Status
Niet open voor verdere reacties.

Mathve

Gebruiker
Lid geworden
20 nov 2009
Berichten
6
Heb een reeks van ruim 50000 records ingevoerd maar als ik de telling er op los laat zegt hij dat er ruim minder zijn. Nu is het via excel wel te achter halen maar dit moet toch ook mogelijk zijn in Acces?

Bijvoorbeeld

Hier mist nummer 4.
Nu wil ik dus dat hij niet de nummers die wel aanwezig zijn in het systeem maar juist de nummers niet in het systeem voor komen (het is een 7 schijverig nummer in het echt).

Alvast bedankt voor de moeite.

(ik kon deze vraag niet terug vinden in het forum)
 
Dit kun je bijvoorbeeld doen met de onderstaande procedure:

Code:
Public Sub OntbrekendeNummers()
    Dim lngWaarde As Long
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("SELECT testnr FROM tblNummers")
    'doeltabel leegmaken
    DoCmd.SetWarnings False
    DoCmd.RunSQL "DELETE FROM tblOntbrekendeNummers"
    DoCmd.SetWarnings True
    lngWaarde = 0
    Do Until rst.EOF
        Do Until rst!testnr = lngWaarde + 1
            lngWaarde = lngWaarde + 1
            DoCmd.SetWarnings False
            DoCmd.RunSQL "INSERT INTO tblOntbrekendeNummers VALUES(" & lngWaarde & ")"
            DoCmd.SetWarnings True
        Loop
        lngWaarde = rst!testnr
        rst.MoveNext
    Loop
    rst.Close
    Set rst = Nothing
End Sub

Bij deze procedure wordt de nummering uitgelezen uit de tblNummers en de ontbrekende nummers worden weggeschreven in de tblOntbrekendeNummers.

Rebmog
 
En hoe moet ik hier dan een reeks in toevoegen van 1 t/m 10 ofzo dat hij daar tussen moet gaan zoeken?
 
Wat wil je precies bereiken? Wil je een overzicht van ontbrekende nummers, of juist ontbrekende nummers kunnen toevoegen? En is het veld wel een Autonummerveld? Want dan gaat het zowiezo niet lukken...
 
Wat wil je precies bereiken? Wil je een overzicht van ontbrekende nummers, of juist ontbrekende nummers kunnen toevoegen? En is het veld wel een Autonummerveld? Want dan gaat het zowiezo niet lukken...


Ja wil graag een lijst met ontbrekende nummers en neen het is geen autonummerveld.

De nummers worden handmatig ingevoerd en zouden eigenlijk opvolgend moeten zijn aangezien ik deze nummers niet opvolgend aangeleverd krijg, Mis ik een aantal nummers deze nummers wil ik dus zien. Maar de reeks van nummers bereid zich iedere dag uit.

Dus daarom wil ook een criterium in kunnen geven zodat hij daar tussen gaat zoeken en welke nummers hij dan mist.

Alvast bedankt voor de moeite zo ver!
 
Met deze aanpassing moet het lukken:

Code:
Private Sub OntbrekendeNummers_Click()
    
    Dim lngWaarde As Long, iBegin As Long, iEind As Long
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("SELECT testnr FROM tblNummers")
    
    'doeltabel leegmaken
    DoCmd.SetWarnings False
    On Error Resume Next
    DoCmd.RunSQL "DELETE FROM tblOntbrekendeNummers"
    DoCmd.SetWarnings True
    ' De tijdelijke tabel vullen met ingestelde waarden
    
[COLOR="Blue"][B]EersteWaarde:
    iBegin = Null
    iBegin = InputBox("Typ de beginwaarde:", "Beginwaarde", 1)
    If Not IsNumeric(iBegin) Then GoTo EersteWaarde

LaatsteWaarde:
    iEind = Null
    iEind = InputBox("Typ de eindwaarde:", "Eindwaarde", 9999)
    If Not IsNumeric(iEind) Then GoTo LaatsteWaarde[/B][/COLOR]
    
    lngWaarde = 0
    DoCmd.SetWarnings False
    Do Until rst.EOF
        Do Until rst!testnr = lngWaarde + 1
            lngWaarde = lngWaarde + 1
[B][COLOR="blue"]            If lngWaarde >= iBegin And lngWaarde <= iEind Then[/COLOR][/B]
                DoCmd.RunSQL "INSERT INTO tblOntbrekendeNummers VALUES(" & lngWaarde & ")"
[B][COLOR="blue"]            End If[/COLOR][/B]
        Loop
        lngWaarde = rst!testnr
        rst.MoveNext
    Loop
    rst.Close
    Set rst = Nothing
    DoCmd.SetWarnings True

End Sub
 
Top dit gaan we dadelijk even testen eerst nog een beetje wakker worden!:thumb:
 
Wat doe je om 6.00 achter je computer ;)
 
Ja half 6 gaat de wekker om te gaan werken. en hij stond nog aan maar heb nog geen tijd gehad vanmorgen om te testen.

Dat heb je als je om 7 uur moet beginnen. ;)
 
Met een paar kleine aanpassing werkt het top bedankt voor jullie hulp! :thumb:
 
Beste Octafish, ik heb een soortgelijke vraag, maar dan voor excel.

Ik heb een lijst met veel nummers in kolom A.. alleen deze nummers zijn niet compleet 1 2 3 5 6 etc.) en ik wil graag de nummers toevoegen die ontbreken, dus in het geval van het voorbeeld, '4' op A4.

Hoop dat je me ook kan helpen?

Vr. groet,
Bert
 
Da's een vraag die je eigenlijk in het Excel forum moet stellen; In Access kun je bijvoorbeeld prima een nieuwe recordset maken; de gegevens staan niet fysiek op een plaats. In Excel zul je toch rijen etc. moeten toevoegen voor de ontbrekende gegevens. En ik wil het forum uiteraard niet vervuilen met verkeerde onderwerpen ;)
 
Mag ik even inbreken op deze "niet opgeloste" vraag omdat ik de functie van Octafish zou willen gebruiken maar ik krijg ze niet aan de praat. Ik maak momenteel gebruik van een niet-gerelateerde gegevens query tussen een tabel "personeelsfiche" waar er tot 1500 personeelsnummers in zitten maar er ontbreken er een 120-tal (waarschijnlijk verwijderd of zo) en om nieuwe personeelsnummers aan te maken zoeken we de oude verwijderde op en gebruiken we die. Hiervoor heb ik echter een Tbl_Nummers moeten aanmaken om een en ander te vergelijken. dit systeem is wel niet zo dynamisch (je moet die tabel ver genoeg op voorhand van data voorzien en het neemt geheugen in, etc...) maar 't werkt wel. De functie van Octafish omzetten brengt bij mij de DB in een oneindige loop en telt gewoon cijfers op. Hoe zou het wel moeten in dit concreet voorbeeld?
Even mijn voorbeeld bijgevoegd
 

Bijlagen

Voortschrijdend inzicht (we zijn niet voor niks 4 jaar verder....) een oplossing m.b.v. een virtuele dataset. Die wordt zowel voor een formulier, als voor een keuzelijst gebruikt. Beide varianten hebben dus geen extra tabel meer nodig. De toevoegknop gebruikt de virtuele keuzelijst. Er zit geen check op dubbele nummers op, maar daar gaat het hier ook niet om :)
 

Bijlagen

Daarmee sluiten we de topic. Indien er nog vragen zijn, gaarne een eigen topic openen. Eventueel kan men naar dit topic verwijzen met een link.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan