[ACCESS & VBA] For each gaat fout met wegschrijven query

Pagina: 1
Acties:

  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01-2025

bluesbrother

Blues Rocks!!!

Topicstarter
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:
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.


  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 21-05-2024
Ik kan ernaast zitten, maar je verwisselt volgens mij de array ItemsSelected met ItemData.
De eerste uit ItemsSelected = 38, maar de eerste uit ItemData = 35 etc...
Maar nogmaals, ik kan het niet uitproberen hier, dus of mijn redenering klopt....

Vlinders moet je volgen, niet vangen...


  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01-2025

bluesbrother

Blues Rocks!!!

Topicstarter
Klopt. Bedankt.

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.