Wisselknop doet niet wat ik wil

Status
Niet open voor verdere reacties.

Stubbe57

Gebruiker
Lid geworden
15 apr 2012
Berichten
113
Goede dag allen,

Ik heb een vraag met betrekking tot de werking van de wisselknop functie
Bij het opzetten heb ik knop 140 en 141
Knop 140 moet een 1 zetten in de het veld ontvangen_per in tb kassa_01
Knop 141 moet een 2 zetten in de het veld ontvangen_per in tb kassa_01
In de kassabon staat een iif functie 1=kas en 2 is pin dat werkt verder prima

De onderstaande routine zit onder knop 140. Bij het indrukken wordt er een kassabon geprint maar de 1 wordt niet in het veld ontvangen_per gezet, deze blijft blanco totdat ik het record verlaat.
Op het moment dat ik er weer terug ben staat de 1 er wel.
Hoe kan ik er voor zorgen dat on onderstaande routine de 1 wel wordt geplaatst voordat de kassabon geprint wordt, zodat mijn iif functie wel goed op de kassabon komt
Bij het aanmaken van de wisselknoppen heb ik precies aangegeven wat en waar de 1 of 2 geplaatst moet worden. Maar de printopdracht wordt uitgevoerd voordat de 1 of 2 geplaatst is



Private Sub Wisselknop140_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error GoTo Err_Wisselknop140_MouseDown

Dim stDocName As String

DoCmd.RefreshRecord
DoCmd.OpenReport "rp kassabon_klant_EPSON_formaat", acPrintPreview, , "Verkoop_ID = " & Me.verkoop_id

Exit_Wisselknop140_MouseDown:
Exit Sub

Err_Wisselknop140_MouseDown:
MsgBox Err.Description
Resume Exit_Wisselknop140_MouseDown


End Sub
 
Ik zie geen regel waarmee je de waarde 1 in een veld zet.
 
Daar was ik ook al naar op zoek,

Maar bij het aanmaken van de 2 wisselknoppen kun je aangeven welke naam je de knop wil geven en welke waarde waar geplaatst moet worden.

Uiteindelijk doet hij het wel maar dan moet je eerst het record verlaten , en als je dan in je tabel kijkt staat er de 1 of 2 afhankelijk van welke knop je gekozen hebt.

Ik kan nergens vinden waar die opdracht wordt uitgevoerd
 
Je doet een RefreshRecord die ik niet snap, en niet: Me.ontvangen_per = 1, wat ik dan wél zou snappen :).
 
Omdat ik zeker wil weten dat ik alle producten op de bon krijg..

Maar ik jouw optie proberen,
 
Je werkt met een gekoppeld formulier, dus je data staat er echt wel in. Eventueel kun je, als je velden met VBA vult, het record opslaan met:
Code:
If Me.Dirty = True Then Me.Dirty = False
 
Ik kom er toch niet uit, waar in de routine moet ik dat plaatsen.
Ga ervanuit dat onderstaande niet correct is daar het niet werkt.
Kun jij me een eindje op weg helpen

Ik heb refresh regel weggehaald en jouw regel geplaatst werkt niet en in de comand line werkt het ook niet.

Private Sub Wisselknop140_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error GoTo Err_Wisselknop140_MouseDown

Dim stDocName As String

DoCmd.OpenReport "rp kassabon_klant_EPSON_formaat", acPrintPreview, , "ontvangen_per = " & Me.ontvangen_per = 1, "Verkoop_ID = " & Me.verkoop_id

Exit_Wisselknop140_MouseDown:
Exit Sub

Err_Wisselknop140_MouseDown:
MsgBox Err.Description
Resume Exit_Wisselknop140_MouseDown

End Sub
 
Mijn kennis van VBA is heel beperkt , en ik krijg het niet aan de gang waar moet ik dan de regel
If Me.Dirty = True Then Me.Dirty = False zetten.

Ik ben nu het spoor kwijt.
 
Eerst vul je je velden met gegevens. Op dat moment is je record van status verandert (Dirty). Dus als laatste sla je het record op.
 
Hallo Octafish,

Het is misschien geen elegante oplossing maar hij werkt wel.
Ik heb nu 2 losse printknoppen gemaakt ( kas en Pin ) en nu krijg ik wel hetgeen ik zocht, dankzij jou hulp.

Zie onder mijn oplossing

Private Sub Knop142_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error GoTo Err_Knop142_Click

Dim stDocName As String

Me.ontvangen_per = 1
DoCmd.RefreshRecord
DoCmd.OpenReport "rp kassabon_klant_EPSON_formaat", acPrintPreview, , "Verkoop_ID = " & Me.verkoop_id

Exit_Knop142_Click:
Exit Sub

Err_Knop142_Click:
MsgBox Err.Description
Resume Exit_Knop142_Click

End Sub
 
Nu nog leren om je code op te maken met de CODE knop :).
 
Hij werkt, als ik kas druk komt er een 1 in het veld ontvangen_per en print netjes de kassabon met de werkend iif functie op de bon met de mededeling Contant en de andere knop geeft mij een 2 en dan op de bon Pin betaling

Gewoon 2 losse knoppen aangemaakt.

Maar wat bedoel jij dan met code knop
 
Je hoort code op te maken als CODE door ofwel de code in code tags te zetten met de knop CODE ( #) of, doe ik zelf, de code tag [ code ] vóór de code, en de tag [/ code ] ná de code te typen. Tag overigens zonder de spatie, maar anders zie je niet wat je moet typen. Code ziet er dan zo uit:
Code:
Me.ontvangen_per = 1
If Me.Dirty Then Me.Dirty = False
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan