Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: VBADummie am Juni 06, 2024, 19:01:41

Titel: QR Code aufteilen
Beitrag von: VBADummie am Juni 06, 2024, 19:01:41
Hallo liebe Profis,


Ich habe ein sehr Großes Problem, je mehr ich versuche es zu lösen um so verwirrter und Dümmer komme ich mir vor.

ich habe zwei Tabellen und ein Formular mit einem Textfeld und ein Unter Formular mit drei Spalten NEO SMILE Leer.

in das Textfeld Scanne ich einen Multi QR-Code ein zum Beispiel:
 10709127|3A57719D8D||10709128|3A57709A2A||10709129|3A57709A33||10709130|3A57719DC3||10709131|3A57719D75||10709132|3A57719D54||10709133|3A57719DD6||10709134|3A57719DBA||10709135|3A57719D72||10709136|3A57719D57||10709137|3A57719D80||10709138|3A57719D7C||10709139|3A57719D97||10709140|3A57709A49||10709141|3A57719D6F||10709142|3A57719D69||10709143|3A57719DCA||10709144|3A57709A3A||10709145|3A57719D68||10709146|3A57719D77||

Diesen Text möchte ich mit der Split Funktion über eine Schaltfläche Aufteilen.es gelingt mir nicht den gesamten Code auf zu teilen, nach den ersten drei ist schluß. nach dem einlesen sollte der Code im Textfeld gelöscht werden und ein neuer wieder an die bestehende Tabelle angefügt werden.

ich füge mal ein Foto bei

Für eure Hilfe möchte ich mich schon jetzt bedanken.
eventuell ist meine Vorstellung auch gar nicht um zusetzten
Ich hoffe es ist alles verständlich für euch bin das erste mal in einem Forum habe auch lange überlegt ob ich den schritt wagen soll. aber ich komme einfach nicht weiter.
Titel: Re: QR Code aufteilen
Beitrag von: MzKlMu am Juni 06, 2024, 19:30:52
Hallo,
mir ist nicht ganz klar, was Du aufteilen willst in welche Felder ?

Was ist denn das Trennzeichen?
Es fällt auf, dass es | und || als Trennung gibt.

Zitatein neuer wieder an die bestehende Tabelle angefügt werden.
Das verstehe ich auch nicht.

Titel: Re: QR Code aufteilen
Beitrag von: andyfau am Juni 06, 2024, 20:29:45
Die Splitfunktion liefert immer ein Array zurück, welches man dann über seine obere und untere Grenze auslesen und so einzelnen Variablen/Feldern zuordnen kann:

Public Sub QRaufteilen(QR As String)
 Dim Teilstring As String
 Dim i As Integer
 Dim QRarray() As String

   QRarray = Split(QR, "|")
   For i = LBound(QRarray, 1) To UBound(QRarray, 1) ' Index i wird von 1 bis zum Ende des Arrays duchgezählt
     Teilstring = QRarray(i)
     Debug.Print Teilstring  'Zeigt die Teilstrings der Reihe nach im Direktfenster
   Next
End Sub

Sub AufrufQRTeilen()
    QRaufteilen ("10709127|3A57719D8D||10709128|3A57709A2A||10709129|3A57709A33||10709130|3A57719DC3||10709131|3A57719D75||10709132|3A57719D54||10709133|3A57719DD6||10709134|3A57719DBA||10709135|3A57719D72||10709136|3A57719D57||10709137|3A57719D80||10709138|3A57719D7C||10709139|3A57719D97||10709140|3A57709A49||10709141|3A57719D6F||10709142|3A57719D69||10709143|3A57719DCA||10709144|3A57709A3A||10709145|3A57719D68||10709146|3A57719D77||")

End Sub
Titel: Re: QR Code aufteilen
Beitrag von: VBADummie am Juni 07, 2024, 07:41:33
Hallo MzKlMu
Danke für die schnelle Antwort.

das Trennzeichen ist | aufteilen möchte ich den QR code wie Beispiel.

Ich werde heute mal den Code von andyfau probieren.

natürlich vielen Dank an andyfau für den super Code werde ich gleich mal testen ob ich damit weiter komme.
Vielen Dank schon mal für die Erklärung
Titel: Re: QR Code aufteilen
Beitrag von: ebs17 am Juni 07, 2024, 09:26:43
Private Sub cmdButton_Click()
    SplitQR Me.txtQRString
    Me.ufrmXY.Form.Requery     ' Tabelleninhalt ins Formular holen
    Me.txtQRString = Null
End Sub

Sub SplitQR(QRString As String)
    Dim sArrRecord() As String
    Dim rs As DAO.Recordset
    Dim i As Long
   
    Set rs = CurrentDb.OpenRecordset("SELECT VA_Nummer, NEO, SMILE FROM TableX WHERE False", dbOpenDynaset)
    sArrRecord = Split(QRString, "||")
    With rs
        For i = 0 To UBound(sArrRecord)
            If Len(sArrRecord(i)) = 0 Then Exit For
            .AddNew
            .Fields("VA_Nummer") = Me.txtVA_Nummer
            .Fields("NEO") = Split(sArrRecord(i), "|")(0)     ' evtl. CLng(Split(sArrRecord(i), "|")(0))
            .Fields("SMILE") = Split(sArrRecord(i), "|")(1)
            .Update
        Next
        .Close
    End With
End Sub
Titel: Re: QR Code aufteilen
Beitrag von: VBADummie am Juni 08, 2024, 06:00:49
Hallo Eberhard habe deinen Code ergänzt mit Tabellennamen,
er läuft jetzt durch aber die einzelnen daten verschwinden ins nichts,
könntest du mir bitte noch mal helfen?

Private Sub cmdSplitt_Click()
    SplitQR Me.SCAN
    Me.Lager_Scan_Ufrm.Form.Requery   ' Tabelleninhalt ins Formular holen
    Me.SCAN = Null
End Sub

Sub SplitQR(SCAN As String)
    Dim sArrRecord() As String
    Dim rs As DAO.Recordset
    Dim i As Long
   
    Set rs = CurrentDb.OpenRecordset("SELECT VA_Nummer, NEO, SMILE FROM tblLager_Scan WHERE False", dbOpenDynaset)
    sArrRecord = Split(QRString, "||")
    With rs
        For i = 0 To UBound(sArrRecord)
            If Len(sArrRecord(i)) = 0 Then Exit For
            .AddNew
            .Fields("VA_Nummer") = Me.VA_Nummer
            .Fields("NEO") = Split(sArrRecord(i), "|")(0)     ' evtl. CLng(Split(sArrRecord(i), "|")(0))
            .Fields("SMILE") = Split(sArrRecord(i), "|")(1)
            .Update
        Next
        .Close
    End With
End Sub

So wie er jetzt ist läuft er ohne Fehler durch nur die Daten verschwinden im Nirvana

Danke schon mal im voraus
Titel: Re: QR Code aufteilen
Beitrag von: ebs17 am Juni 08, 2024, 10:11:58
Zitatnur die Daten verschwinden im Nirvana
Heißt das Nirwana tblLager_Scan (aktualisierte Ansicht nach Anfügen)?

Daneben sollte man den verwendeten QRCode betrachten: Die Prüfung "If Len(sArrRecord(i)) = 0 Then Exit For" wurde eingeführt, weil der gezeigte Code mit einem "||" endet und somit das letzte Element von Split nichts auswertbares ergibt.
Wenn der QRCode nun aber mit einem doppelten Pipe beginnt, erfolgt so keine Tabelleneintragung.
Das hieße also: Mit anderen Ausgangsbedingungen müsste man Änderungen am Code vornehmen.
Titel: Re: QR Code aufteilen
Beitrag von: Beaker s.a. am Juni 08, 2024, 11:08:01
Hallo,

Die Trennung mit "||" halte ich für falsch.
Für mich deutet die doppelte Pipe darauf hin, dass hier ein Feld
ohne Inhalt vorhanden ist, wie es bei einer importierten .csv auch
vorkommt.

gruss ekkehard
Titel: Re: QR Code aufteilen
Beitrag von: MzKlMu am Juni 08, 2024, 11:19:47
Hallo,
ZitatDie Trennung mit "||" halte ich für falsch.
Das denke ich auch. Sieht man auch im Bild in #1. Das 3. Feld wird als Leer bezeichnet.

Was natürlich für den Code keine Rolle spielt, es muss nur der Parameter von "||" in "|" geändert werden.
Titel: Re: QR Code aufteilen
Beitrag von: VBADummie am Juni 08, 2024, 20:12:09
ich bin euch sehr dankbar für eure Hilfe
ich kann euch gerne meine DB senden, der Ansatz von Eberhard ist schon richtig denke ich.
leider bin ich wirklich noch ein absoluter Dummie was vba betrifft.
ich habe im Anhang die DB als ZIP mal rein getan. danke euch allen für euer Interesse und Hilfe.
eventuell bin ich auch auf den komplett falschen weg?
Titel: Re: QR Code aufteilen
Beitrag von: MzKlMu am Juni 09, 2024, 12:37:34
Hallo,

sollen nur die beiden Felder gefüllt werden, die im Formular zu sehen sind ?
Titel: Re: QR Code aufteilen
Beitrag von: Beaker s.a. am Juni 09, 2024, 15:31:17
Hallo,
So funzt es.
Das mit den doppelten Pipes ist richtig. Es wird einmal damit gesplittet und
anschliessend in der Schleife die einzelnen Felder des Arrays nochmal mit der
einfachen. Daraus ergeben sich mit dem gezeigten Beispielscan 20 DS mit
jeweils zwei Feldern mit der VA_Nummer aus dem Feld im Form.

Beim Split wurde der Parameter als "SCAN" übergeben, ausgewertet wurde aber
"QRString", der vom Himmel fiel, - geändert.

Auf "VA_Nummer" wurde ein eindeutigen Index gelegt, da funzt der Code nur für
den ersten DS dann kommt der Indexfehler. Diesen Index in einen Mehrfelder-
Index über alle Felder (3) geändert. Den Daten nach würde wohl auch ein Index
auf das Feld "NEO" reichen, - hab ich aber nicht getestet.

HFo und Feld VA_Nummer "entbunden" und Verknüpfung von/nach "NEO" gelöscht.
Die VA_Nummer kann somit manuell eingegeben werden. Oder man wandelt es in
ein Kombi um.

gruss ekkehard
Titel: Re: QR Code aufteilen
Beitrag von: VBADummie am Juni 09, 2024, 22:12:51
Hallo Ekkehard, tausend Danke es funktioniert super.