Hoi daar,
Ik loop tegen problemen aan waar ik niet uitkom, Ik snap dit niet,
Ik heb een for each lus lopen die zo vaak draait als er acteurs gekozen
zijn in een keuzelijst, (Listbox)
Deze FOR doet een INSERT in een tussentabel waar de acteur aan de film
gekoppeld wordt,
Ik neem als test steeds dezelfde acteurs:
Maar op een een of andere manier doet de for each steeds iets wat ik niet snap:
Als je de bovenstaande acteurs selecteerd (ID dus 38,39,40), dan voert deze
36,37,38 in de tabel.
Als ik een debug.print doe binnen de For each:
Geeft deze:
De juiste waarden dus.
De complete For each: (varItem is een Variant)
De Debug.Print "In SQL Acteur" & " " & varItem
Geeft de volgende waardes:
[code]
In SQL Acteur 35
In SQL Acteur 36
In SQL Acteur 37
[code]
En dit is ook wat er naar de tabel: Tsn_Tbl_Acteur_Film
wordt weggeschreven. En is dus fout.
De waarde van de keuzelijst worden goed doorgegeven.
Als ik een apparte For each doe op alleen die waardes:
Krijg ik de waardes die ik nodig heb, deze kloppen dus wel.
Ergens in het SQL statement gaat er iets fout is mijn conclusie
maar ik snap dus niet wat. En weet het niet zeker.
Ik loop tegen problemen aan waar ik niet uitkom, Ik snap dit niet,
Ik heb een for each lus lopen die zo vaak draait als er acteurs gekozen
zijn in een keuzelijst, (Listbox)
Deze FOR doet een INSERT in een tussentabel waar de acteur aan de film
gekoppeld wordt,
Ik neem als test steeds dezelfde acteurs:
code:
1
2
3
4
| tbl_acteurs helen hunt ID: 38 marlon brando ID: 39 martin sheen ID: 40 |
Maar op een een of andere manier doet de for each steeds iets wat ik niet snap:
Als je de bovenstaande acteurs selecteerd (ID dus 38,39,40), dan voert deze
36,37,38 in de tabel.
Als ik een debug.print doe binnen de For each:
code:
1
| Debug.Print "eerste check" & kzlijstActeur.ItemData(varItem) |
Geeft deze:
code:
1
2
3
| eerste check38 eerste check39 eerste check40 |
De juiste waarden dus.
De complete For each: (varItem is een Variant)
code:
1
2
3
4
5
6
7
8
9
10
11
| For Each varItem In kzlijstActeur.ItemsSelected
QSaveActeurs = "INSERT INTO Tsn_Tbl_Acteur_Film" _
& "(FilmID,ActeurID)" _
& " VALUES (" & MaxRow & "," & kzlijstActeur.ItemData(varItem) & ");"
Debug.Print "eerste check" & kzlijstActeur.ItemData(varItem)
Debug.Print "In SQL Acteur" & " " & varItem
DoCmd.RunSQL QSaveActeurs
Next varItem |
De Debug.Print "In SQL Acteur" & " " & varItem
Geeft de volgende waardes:
[code]
In SQL Acteur 35
In SQL Acteur 36
In SQL Acteur 37
[code]
En dit is ook wat er naar de tabel: Tsn_Tbl_Acteur_Film
wordt weggeschreven. En is dus fout.
De waarde van de keuzelijst worden goed doorgegeven.
Als ik een apparte For each doe op alleen die waardes:
code:
1
2
3
4
| Dim varItem As Variant
For Each varItem In kzlijstActeur.ItemsSelected
Debug.Print kzlijstActeur.ItemData(varItem)
Next varItem |
Krijg ik de waardes die ik nodig heb, deze kloppen dus wel.
Ergens in het SQL statement gaat er iets fout is mijn conclusie
maar ik snap dus niet wat. En weet het niet zeker.
Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.