Items switchen tussen 2 listboxes

Status
Niet open voor verdere reacties.

Disconnected999

Gebruiker
Lid geworden
30 aug 2007
Berichten
7
Beste mensen,

Ik heb 2 listboxes op mijn forum met de volgende gegevens:

Listbox 1 (links):

Naam: ListBeschikbareBetalingmethoden
Rijbron:
SELECT BB.Betalingmethoden FROM dbo_BeschikbareBetalingmethoden AS BB WHERE BB.Voorwerpnr=V.Voorwerpnr;

Uitleg: Deze listbox bevat de betalingsmethodes die voor een betreffend voorwerp beschikbaar zijn. Soms kan een voorwerp namelijk alleen via bank betaald worden en niet met PayPal bijvoorbeeld. De tabel dbo_BeschikbareBetalingmethoden bevat dus de betalingsmethodes voor elk voorwerp, dus:

Voorwerpnr: Betalingmethoden:
1 Contant
1 Rembours
2 PayPal vooraf
3 Bank vooraf
3 Bank achteraf
3 PayPal vooraf
etc.

Zie ook de afbeelding in de bijlage van de tabel dbo_BeschikbareBetalingmethoden.

Listbox 2 (rechts):

Naam: ListBetalingmethoden
Rijbron:
SELECT B.Betalingmethoden FROM dbo_Betalingmethoden AS B;

Uitleg: Deze listbox bevat alle mogelijke betalingsmethodes. Deze tabel (dbo_Betalingmethoden) is uiteraard gekoppeld met dbo_BeschikbareBetalingmethoden. De betalingmethoden zijn als volgt:

Contant
Rembours
PayPal vooraf
PayPal achteraf
Bank vooraf
Bank achteraf

Zie ook de afbeelding in de bijlage van deze tabel dbo_Betalingmethoden

Tussen de 2 listboxes staan 2 knoppen. Eentje heet 'CmdNaarLinks' en de andere heet 'CmdNaarRechts'.

Nou wil ik uit de rechter listbox betalingmethodes (rechts) toe kunnen voegen aan de beschikbare betalingsmethodes van het voorwerp (links). Ik heb wat VBA- code voor de knoppen CmdNaarLinks en CmdNaarRechts. Ik krijg het niet voor elkaar items aan elkaar lijsten toe te voegen. Dit is de vba- code voor de knoppen:



Code:
Private Sub CmdNaarRechts_Click()

Dim varItm As Variant

For Each varItm In ListBeschikbareBetalingmethoden.ItemsSelected

    CurrentDb.Execute "UPDATE dbo_Betalingmethoden SET Betalingmethoden =  ListBetalingmethoden.ItemData(varItm)"
    
    Next varItm
    
    ListBeschikbareBetalingmethoden.Requery
    ListBetalingmethoden.Requery

End Sub



Code:
Private Sub CmdNaarLinks_Click()

Dim varItm As Variant

For Each varItm In ListBetalingmethoden.ItemsSelected

    CurrentDb.Execute "UPDATE dbo_BeschikbareBetalingmethoden SET Betalingmethoden = ListBeschikbareBetalingmethoden.ItemData(varItm)"
    
    Next varItm
    
    ListBeschikbareBetalingmethoden.Requery
    ListBetalingmethoden.Requery

End Sub

Ik krijg bij het drukken op de knop CmdNaarLinks de error:

Fout 3085 tijdens uitvoering:

De expressie bevat een ongedefinieerde functie
ListBeschikbareBetalingmethoden.ItemData.

Ik krijg bij het drukken op de knop CmdNaarRechts de error:

Fout 3085 tijdens uitvoering:

De expressie bevat een ongedefinieerde functie
ListBetalingmethoden.ItemData.

Ik heb een screenshot van het formulier ingevoegd ter verduidelijking. Ik wil dus betalingmethodes kunnen toevoegen aan de lijst beschikbare betalingmethodes voor 't voorwerp.

Wie kan mij helpen met de VBA- code, zodat ik items tussen beide lijsten kan switchen.

Met vriendelijke groet,

Disconnected999

P.S. Alvast bedankt voor jullie hulp!
 

Bijlagen

  • Betalingmethodes.PNG
    Betalingmethodes.PNG
    37,5 KB · Weergaven: 26
  • BeschikbareBetalingmethoden.PNG
    BeschikbareBetalingmethoden.PNG
    26,6 KB · Weergaven: 30
  • Betalingmethoden.PNG
    Betalingmethoden.PNG
    6,7 KB · Weergaven: 14
Laatst bewerkt door een moderator:
Kijk eens in dit voorbeeldje naar de knop [Veel op veel relaties in een formulier].
 

Bijlagen

Hee OctaFish,

Bedankt voor je reactie! Ik zal het formulier eens goed bestuderen.
Vriendelijk bedankt!
 
[OPGELOST] - Items switchen tussen 2 keuzelijsten

Nog even de oplossing op het forum zetten, voor anderen die hiermee ook in de problemen zijn.

De betaalmethodes kunnen nu toegevoegd worden aan de beschikbare betaalmethodes voor een voorwerp. Dit is de knop naar links die daarvoor zorgt.

De beschikbare betaalmethodes voor een voorwerp kunnen ook verwijderd worden uit de beschikbare betaalmethodes voor een voorwerp. De knop naar rechts zorgt daarvoor.

Bovenstaande geldt ook voor de beschikbare verzendmethodes en verzendmethodes. De volgende VBA- code is voor de button naar links gebruikt:

Code:
Private Sub CmdVoegBetalingmethodenAanBeschikbareBetalingmethodenToe_Click()
'Dit is de button naar links voor betaalmethodes!

Dim varItm As Variant

For Each varItm In Me.ListBetalingmethoden.ItemsSelected

CurrentDb.Execute "INSERT INTO dbo_BeschikbareBetalingmethoden (Voorwerpnr, Betalingmethoden) VALUES (" & Me.Voorwerpnr & ",'" & Me.ListBetalingmethoden.Value & "')"

Next varItm
Me.ListBeschikbareBetalingmethoden.Requery

End Sub

De volgende code is voor de button naar rechts gebruikt:

Code:
Private Sub CmdVerwijderBeschikbareBetalingmethoden_Click()
'Dit is de button naar rechts voor betaalmethodes!

Dim varItm As Variant

For Each varItm In Me.ListBetalingmethoden.ItemsSelected

CurrentDb.Execute "DELETE FROM dbo_BeschikbareBetalingmethoden WHERE Betalingmethoden ='" & ListBeschikbareBetalingmethoden.ItemData(varItm) & "' AND Voorwerpnr =" & Me.Voorwerpnr & ""

Next varItm

Me.ListBeschikbareBetalingmethoden.Requery

End Sub

End Sub

Dezelfde code geldt voor de verzendmethodes.

Met vriendelijke groet,

Disconnected999
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan