Ik ben weer onderhoud aan het plegen aan een oud programma wat ik geschreven heb in VB6, hoewel ik me ondertussen schaam voor wat voor code ik toen geschreven heb werkt het programma al een tijdje erg goed, maar er werdt gevraagd om een nieuwe functie.
In het volgende stukje code probeer ik op een lelijke manier 2 lijsten met elkaar te vergelijken.
In de lijsten zitten de volgende stukjes data
"Achternaam, Voornaam (idnummer)" dus: list1.additem(sAchternaam & ", " & sVoornaam & "(" & iID & ")" )
In beide lijsten is dit op exact dezelfde manier gedaan.
Nu bevat de ene lijst niet altijd dezelfde personen als de andere lijst, ik wil dat als er op 1 lijst geklikt wordt dat er door de volgende lijst heen ge-itereerd wordt en gekeken wordt of het zelfde id voorkomt.
Nu heb ik dat gedaan met het volgende stukje code:
[code=vb]
For z = 0 To z = frm_Hoofdscherm.lst_Jeugdigen.ListCount - 1
frm_Hoofdscherm.lst_Jeugdigen.ListIndex = z
nBegin = InStr(frm_Hoofdscherm.lst_Jeugdigen.text, "(") + 1
nEind = InStr(frm_Hoofdscherm.lst_Jeugdigen.text, ")") - nBegin
ZoekID = Mid$(frm_Hoofdscherm.lst_Jeugdigen.text, nBegin, nEind)
If ZoekID = NieuwID Then
frm_Hoofdscherm.lst_Jeugdigen.ListIndex = z
Call cmd_Refresh_Click
GoTo Uitloop
End If
Next z
Uitloop:
[/code]
Dit lijkt allemaal redelijk simpel, hij loopt door de lijst heen en haalt het stukje tussen haakjes uit de string van de list.text (list.text geeft altijd huidige geselecteerde itemtext weer) daarna controleerd hij of dit gevonden stukje (ZoekID) overeenkomt met een ander ID (NieuwID) als dat zo is, zet de lijst dan permanent op die listindex Z called een refresh en springt uit de loop.
Dit is iig wat ik verwacht van dit stuk code, het idiote is dat als ik debug de code netjes doorloopt tot de regel 6 (if ZoekID = Nieuw ID then) dit is de eerste keer nog niet waar dus hij springt naar de End if van regel 10, daarna gaat hij vrolijk voor naar regel 11 (next z) en springt uit de loop naar regel 12 en verder
ik heb gecontroleerd, z was echt nog 0 elke keer, en de To wordt ook elke keer goed ingevuld als 5-1, ik snap dus echt niet hoe die er nu uit kan ontsnappen
Ik heb echt het idee dat ik achterlijk ben geworden... de syntax van de loop klopt toch gewoon?!
AARGGGG to i = 5 moet natuurlijk to 5 zijn!! Ik zit al een uur naar die code te staren en nu zie ik het pas, Modjes please gooi dit topic weg om mij verdere schande te besparen!
*ratje heeft zichzelf even gereport
In het volgende stukje code probeer ik op een lelijke manier 2 lijsten met elkaar te vergelijken.
In de lijsten zitten de volgende stukjes data
"Achternaam, Voornaam (idnummer)" dus: list1.additem(sAchternaam & ", " & sVoornaam & "(" & iID & ")" )
In beide lijsten is dit op exact dezelfde manier gedaan.
Nu bevat de ene lijst niet altijd dezelfde personen als de andere lijst, ik wil dat als er op 1 lijst geklikt wordt dat er door de volgende lijst heen ge-itereerd wordt en gekeken wordt of het zelfde id voorkomt.
Nu heb ik dat gedaan met het volgende stukje code:
[code=vb]
For z = 0 To z = frm_Hoofdscherm.lst_Jeugdigen.ListCount - 1
frm_Hoofdscherm.lst_Jeugdigen.ListIndex = z
nBegin = InStr(frm_Hoofdscherm.lst_Jeugdigen.text, "(") + 1
nEind = InStr(frm_Hoofdscherm.lst_Jeugdigen.text, ")") - nBegin
ZoekID = Mid$(frm_Hoofdscherm.lst_Jeugdigen.text, nBegin, nEind)
If ZoekID = NieuwID Then
frm_Hoofdscherm.lst_Jeugdigen.ListIndex = z
Call cmd_Refresh_Click
GoTo Uitloop
End If
Next z
Uitloop:
[/code]
Dit lijkt allemaal redelijk simpel, hij loopt door de lijst heen en haalt het stukje tussen haakjes uit de string van de list.text (list.text geeft altijd huidige geselecteerde itemtext weer) daarna controleerd hij of dit gevonden stukje (ZoekID) overeenkomt met een ander ID (NieuwID) als dat zo is, zet de lijst dan permanent op die listindex Z called een refresh en springt uit de loop.
Dit is iig wat ik verwacht van dit stuk code, het idiote is dat als ik debug de code netjes doorloopt tot de regel 6 (if ZoekID = Nieuw ID then) dit is de eerste keer nog niet waar dus hij springt naar de End if van regel 10, daarna gaat hij vrolijk voor naar regel 11 (next z) en springt uit de loop naar regel 12 en verder
ik heb gecontroleerd, z was echt nog 0 elke keer, en de To wordt ook elke keer goed ingevuld als 5-1, ik snap dus echt niet hoe die er nu uit kan ontsnappen
AARGGGG to i = 5 moet natuurlijk to 5 zijn!! Ik zit al een uur naar die code te staren en nu zie ik het pas, Modjes please gooi dit topic weg om mij verdere schande te besparen!
*ratje heeft zichzelf even gereport
[ Voor 6% gewijzigd door roy-t op 19-09-2007 18:47 ]