Autosave van textbox probleem met de functie clear textbox.

Status
Niet open voor verdere reacties.

asenrene

Gebruiker
Lid geworden
15 jan 2017
Berichten
47
Geachte Lezer,
Ik heb een probleem met het volgende:
Ik heb een programma gemaakt voor een barcodescanner. (deze is radiografisch)
In dit programma wil ik graag de optie kunnen gebruiken met automatisch en handmatig.( dit omdat je dan gewoon kan door blijven scannen)
Nu wil ik ook graag dat als ik een product scan dat hij dan het veld van textbox 1 en 2 leegmaakt en dus gelijk verder gaat.
Nu is deze code op zich niet zo moeilijk zie hieronder:
Code:
tbxQty.Text = ""
tbxScannedBarCode.Text = ""
tbxQty.SetFocus

maar nu komt het probleem als ik deze optie onder mijn opdracht autosave zet in de userform gaat het dus fout.
De scanner leest te langzaam en of de code gaat te snel het is maar hoe je het bekijkt.
De textbox wordt wel leeggemaakt maar de laatste 4 cijfers van de barcode worden al weer gelijk ingelezen.
Tevens is de waarde die de autosave mode moet opslaan niet gebeurt omdat dit te snel veranderd.

Ik hoop dat ik een beetje duidelijk ben in de uitleg en hoop dat jullie mij kunnen helpen.

hieronder de code momenteel in mijn prog:
Code:
Private Sub tbxScannedBarCode_Change()
Const MinimumBarCodeLength As Long = 8

  If Len(Me.tbxScannedBarCode.Value) < MinimumBarCodeLength Then Exit Sub
    
  CompareDataShow
  
  If Me.optAutomatisch Then SaveData
 
 tbxQty.Text = ""
  tbxScannedBarCode.Text = ""
  tbxQty.SetFocus

End Sub
met vriendelijke groeten Rene
 
Met uw info denk ik op zoiets. (gokje)
Code:
Application.Wait(Now + TimeValue("00:00:01"))
Als ik dit lees:
Tevens is de waarde die de autosave mode moet opslaan niet gebeurt omdat dit te snel veranderd.
Denk ik zo:
Code:
If Me.optAutomatisch Then SaveData
 Application.Wait(Now + TimeValue("00:00:01"))
 tbxQty.Text = ""
 tbxScannedBarCode.Text = ""
 tbxQty.SetFocus
 
bedankt voor je hulp

beste Philiep,
Met je code ben ik een stuk wijzer geworden en kon goed zien waar het aan lag.
De code van het item dat ik scan was 13 characters.
Nu heb ik mijn userform de volgende code staan.
Code:
Private Sub tbxScannedBarCode_Change()
Const MinimumBarCodeLength As Long = 8

If Len(Me.tbxScannedBarCode.Value) < MinimumBarCodeLength Then Exit Sub
CompareDataShow
If Me.optAutomatisch Then
SaveData
Application.Wait (Now + TimeValue("00:00:01"))

tbxScannedBarCode.Text = ""
tbxQty.Text = ""
tbxQty.SetFocus

End If
End Sub

De lengte van het gescande item was 13 en hij springt dus na 8 characters weer naar de eerste tekstbox.
Nu wil het zo zijn dat sommige items maar 8 characters hebben is er een mogelijkheid om de code zo aan te passen dat hij ze allebei herkent?
met vriendelijke groeten,
Rene Roos en nogmaals bedankt voor je hulp
 
Vraagje
Als ik goed begrijp gaat het goed met codes van 8 char.
 
zowel 8 als 13 characters

Het gaat om zowel 8 en 13 characters.

Ik heb een autosave modus en een manual modus button gecreerd.

in de autosave modus is het dan makkelijk zodat je kan door blijven scannen zonder op de commandbutton te drukken.
 
sorry ja het gaat goed met 8 characters

Ja met 8 characters gaat het goed .alleen na het saven begint de setfocus in de verkeerde box namelijk in tbxScannedBarCode ipv tbxQty.
en dat terwijl de volgende code eronder staat.

tbxScannedBarCode.Text = ""
tbxQty.Text = ""
tbxQty.SetFocus
 
Laatst bewerkt:
Hoe wordt de data ingelezen? En is het niet makkelijker om daar eerst te bufferen en dan ineens de waarde te plaatsen in je textbox? Stuurt de scanner geen "EOF" code/teken mee als die klaar is? Veel scanners kunnen ook automatisch een "enter" meesturen als ze klaar zijn met de code, heb je zo'n optie?
 
Dank je wel voor je bericht,
De data wordt ingelezen via een radiografische barcode scanner.
Datalogic
De scanner werkt als volgt je geeft het aantal op wat je geteld hebt en dan scan je het item.
Best wel een duur apparaat en ja er zit een enter functie op heb dit geprobeerd te installeren want dan zou het probleem opgelost zijn.
maar op het moment van meesturen van de enter functie werd ook extra letters aan de scanner toegevoegd.waardoor de text niet meer overeenkwam met de zoekfunctie.
eerst vulde ik de scanner in zonder enter toevoeging en toen was het resultaat dit 1(dit was het aantal wat ik geteld had) dit was de barcode (87156423) Deze is ook de goede)
Daarna de optie te geselecteerd met enter en toen werd het dit (B1)het aantal en (F87156423) de barcode.
 
Los van de terechte opmerkingen van Wampier
kan je het zo eens proberen
Code:
Private Sub tbxScannedBarCode_AfterUpdate()
SaveData
tbxScannedBarCode.Text = ""
tbxQty.Text = ""
End Sub
Private Sub tbxScannedBarCode_Change()
Const MinimumBarCodeLength As Long = 8
Const MaximumBarCodeLength As Long = 13
If Len(Me.tbxScannedBarCode.Value) > MaximumBarCodeLength Or Len(Me.tbxScannedBarCode.Value) < MinimumBarCodeLength Then Exit Sub
CompareDataShow
If Len(Me.tbxScannedBarCode.Value) = MaximumBarCodeLength Or Len(Me.tbxScannedBarCode.Value) = MinimumBarCodeLength _
And optAutomatisch Then tbxQty.SetFocus
End Sub
 
Maar dat is toch nog steeds makkelijk te parsen? Gewoon de letter weglaten? Lijkt me een stuk makkelijker op te lossen dan random gedrag met de textbox_change event
 
ja maar weet dus niet hoe

Dank je wel wampier maar ik weet niet hoe.
Hij blijft dan de codes meesturen
 
code werkt ook niet

Na de verandering werkt de manual modes wel en haalt ook de tekst weg alleen de focus blijft op de verkeerde textbox
In manual mode doet de scanner nog geen goede oplossing met de 13 nummers.

enig idee?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan