If Prüfung wird nicht abgeschlossen. springt gleich in Else...

  • VB.NET

Es gibt 32 Antworten in diesem Thema. Der letzte Beitrag () ist von FAtheone.

    If Prüfung wird nicht abgeschlossen. springt gleich in Else...

    Ich scanne einen Barcode ein, der wird direkt in eine Textbox geschrieben.

    VB.NET-Quellcode

    1. If TextBox_barcode_fond.Textlength = ("11") and
    2. TextBox_barcode_fond.Text.EndsWith ("465") = true or
    3. TextBox_barcode_fond.Text.EndsWith ("466") = true or
    4. TextBox_barcode_fond.Text.EndsWith ("467") = true Then
    5. typ_komfort_fond.Visible = True
    6. Me.Hide()
    7. Else
    8. Barcode_Fehler.Visible = True
    9. TextBox_barcode_fond.Clear()
    10. End If


    Das Problem:

    sobald der Barcodescanner das erste Zeichen reinschreibt, springt er zum Else Befehl (Fehlerfenster)
    Der Barcodescanner schreibt den Code ja nicht auf einmal rein wie im vergleich Strg+V.

    Ich hoffe ich hab mein Problem gut beschrieben.
    Habe extra oben die Abfrage reingemacht mit der TextLength, dabei dachte ich mir... okay, erst wenn 11 zeichen geschrieben sind (so lang ist der Barcode immer) soll er prüfen ob der Barcode mit 465 466 oder 467 endet.

    wär Klasse wenn ihr mir ne Lösung habt.

    gruß
    ahoi,

    also dein problem ist also das der barcode noch nicht vollständig eingelesen ist ...
    deine bafrage sollte funktionieren hab es grad mal getestet,
    du solltest den barcode vielleicht erst vollständig einlesen lassen oder deine if in einer schleife laufen lassen

    ersteres wäre sinvoller da du einen else zweig hast der sonst ständig angezeigt werden würde
    und deinen barcode immer wieder cleart und er dadurch natürlich nie auf die 11 zeichen kommen wird
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    du solltest den barcode vielleicht erst vollständig einlesen lassen
    genau, das ist mein Problem :) wie könnte ich das realisieren? Kenn die Befehle noch nicht so ganz ...
    Dachte das ich das mit dem "

    VB.NET-Quellcode

    1. TextBox_barcode_fond.Textlength = ("11")
    realisier, aber brachte ja nichts..

    gruß andy
    nein textlength funktioniert ...

    na du müsstest doch von deiner maschine den barcode bekommen ...
    mit irgendeinem kommando wirst du doch den barcode schritt für schritt in eine textbox ... string ... etc lesen ?
    wie du das genau machst mit welchen befehlen kann ich dir nicht helfen habe mich mit barcode scannern noch nicht beschäftigt
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    bist du dir sicher das es 11 zeichen sind? sobald es nemlich mehr oder weniger als 11 zeichen sind haste pech gehabt dann springt er in den else

    EDIT: Manü ja du hattest recht textlength geht auch ... kannte bis jetzt immer nur Text.Length *peinlich* für mich xD :cursing:
    lg
    Ja, ich bin sicher das es nur 11 Zeichen sind.
    Du musst dich mit Barcodescannern nicht auskennen...
    Stell dir einfach vor, du gibts in eine TextBox per tastatur (barcodescanner macht nix anderes) eine 11stellige zahlen folge, welche auch buchstaben beinhalten kann. ERST wenn 11 zeichen eingegeben worden sind, soll er in die IF schleife einsteigen.


    EDIT
    zum Beispiel so ungefähr.... (so kenn ichs vom steuerungen programmieren)

    VB.NET-Quellcode

    1. when text.length = 11 continue
    2. if TextBox_barcode_basis.Text.EndsWith("315") = true ........
    versuchs mal damit... der code funktioniert ich habe ihn getestet der fehler liegt an der textbox bei dir...




    VB.NET-Quellcode

    1. Label1.text = TextBox_barcode_fond.Text.length
    2. If TextBox_barcode_fond.TextLength = 11 And _
    3. TextBox_barcode_fond.Text.EndsWith("465") = True Or _
    4. TextBox_barcode_fond.Text.EndsWith("466") = True Or _
    5. TextBox_barcode_fond.Text.EndsWith("467") = True Then
    6. typ_komfort_fond.Visible = True
    7. Me.Hide()
    8. Else
    9. Barcode_Fehler.Visible = True
    10. TextBox_barcode_fond.Clear()
    11. End If
    12. End Sub


    nutz den label um zu sehen wieviel zeichen dir der textlength wiedergibt

    wichtig letzten drei zeichen müssen 465 oder 466 oder 467 sein in der textbox....



    EDIT @ VB King des ist mir nur mal ganz neu das length bei 0 anfängt...
    habe ich jetzt übernacht programmieren verlernt?
    lg
    das mit dem Label funktioniert nicht... weis auch nicht was das für meine funktion bringen soll.

    oh man, ich geb grad auf... was soll den das? :( kenn ich garnicht von mir.
    gibt es den keinen WHEN befehl, oder sowas in der art? dann wär doch meine idee realisier bar

    steige erst in die IF schleife ein, wenn 11zeichen in der textbox geschrieben?!

    EDIT für datsspeed: er schreib in das Label "0" rein, warum?
    dann zauber ich dir sowas hin wenn du sowas willst....



    VB.NET-Quellcode

    1. Public Class Form1
    2. Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Do
    5. If TextBox_barcode_fond.Text.Length = ("11") Then
    6. If TextBox_barcode_fond.Text.Length = ("11") And _
    7. TextBox_barcode_fond.Text.EndsWith("465") = True Or _
    8. TextBox_barcode_fond.Text.EndsWith("466") = True Or _
    9. TextBox_barcode_fond.Text.EndsWith("467") = True Then
    10. typ_komfort_fond.Visible = True
    11. Me.Hide()
    12. Exit Do
    13. Else
    14. Barcode_Fehler.Visible = True
    15. TextBox_barcode_fond.Clear()
    16. Exit Do
    17. End If
    18. Else
    19. Delay(1000) 'Pause in Millisekunden...
    20. End If
    21. Loop
    22. End Sub
    23. Private Sub Delay(ByVal Zeit As Integer)
    24. Dim Zeit1 As Integer = System.Environment.TickCount
    25. While (System.Environment.TickCount - Zeit1) < Zeit
    26. Call Sleep(100) ' Sleep()
    27. Application.DoEvents()
    28. End While
    29. End Sub
    30. End Class



    so " sie wünschen wir spielen " ^^

    eins noch beachte das manche barcode leser am ende ihres eingelesen codes einfach ein leerzeichen reinhauen


    Edit: @ a.setzer wenn er 0 reingeschrieben hat weil deine textbox 0 zeichen hatte... zu dem zeitpunkt...

    bist du sicher das du den richtigen namen hast was die textbox angeht?


    lg
    Erstmal vielen dank, jedoch hab ich es noch nicht getestet, erstmal eine Frage..

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


    welcher Button soll das sein? ich habe keinen Button auf dieser Seite...
    mein Barcode scanner macht kein leerzeichen, nur ein Enter-befehl sendet er mit, welches mir aber nichts ausmacht.
    dann habe ich genau des richtige für dich versucha mal des ....

    VB.NET-Quellcode

    1. Private Sub TextBox_barcode_fond_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox_barcode_fond.TextChanged
    2. If TextBox_barcode_fond.Text.Length = ("11") Then
    3. If TextBox_barcode_fond.Text.Length = ("11") And _
    4. TextBox_barcode_fond.Text.EndsWith("465") = True Or _
    5. TextBox_barcode_fond.Text.EndsWith("466") = True Or _
    6. TextBox_barcode_fond.Text.EndsWith("467") = True Then
    7. typ_komfort_fond.Visible = True
    8. Me.Hide()
    9. Else
    10. Barcode_Fehler.Visible = True
    11. TextBox_barcode_fond.Clear()
    12. End If
    13. End If
    14. End Sub



    jedesmal wenn ein zeichen sich in der textbox verändert springt er nu in diese funktion deine ifabfrage findet aber erst statt wenn mindestens 11 zeichen in der box sind ^^

    lg ^^
    dann nimm aber die clear methode raus sonst wird das nix ;)

    VB.NET-Quellcode

    1. TextBox_barcode_fond.Clear()
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    funktioniert der code? xD habe ihn noch nich getestet ^^

    hoffe ich konnte weiter helfen ^^

    eines tages kannste mir ja evtl. au mal helfen *g*

    nichts zu danken ^^

    liebe grüße datsspeed :thumbsup:

    EDIT @ Manü warum passt doch ? wenn der barcode falsch ist soller gleich den ganzen barcode rausöschen... vllt will er das ja so ^^ war ja von anfang an schon drinen *g* lg ^^