Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Left, Regex, Tabellen vergleichen

Begonnen von walker950, März 31, 2020, 17:59:59

⏪ vorheriges - nächstes ⏩

walker950

@ ebs17
Liege ich mit meiner Vermutung richtig, dass du mich auf Debug.Print aufmerksam machen wolltest?
ZitatDa müsste man vor dem Code-Weiterschreiben einen Denkvorgang vorschalten und dafür die Würfel wegwerfen:
Dann erklär mir doch bitte wie der aussehen soll, was hat das mit den Würfel wegwerfen zu tun?
Im verwendeten Code kommt niregends Debug-Print vor. Oder ich sehe es nicht.
Private Sub Text16_AfterUpdate()
' da jetzt ein gebundenes Formular zum Einsatz kommt, muss darauf geachtet werden,
'dass nur neue DS erfasst werden. Ein bestehender DS würde sonst überschrieben.
    If Me.NewRecord Then
        ansatz_trennen (Me.Text16)
    End If
End Sub

Sub ansatz_trennen(cQR As String)
' Steht auch im Formularmodul. Falls du das später evtl. auch an anderer
' Stelle benötigst müsste die Prozedur in ein allgem. Modul verlagert und
' entsprechend angepasst werden (Formularbezug Me.)
    Dim sArr() As String
    Dim ia As Long

    sArr = Split(cQR, "_")
    ia = UBound(sArr)

    ' Das Schreiben kann von Formulartextfeld zu Formulartextfeldern erfolgen
    ' ist hier umgesetzt in gebundenem Formular
    ' oder auch aus einem Recordsetfeld in weitere Recordsetfelder
    With Me
        .txtProjektNr1 = Val(Split(sArr(0), ".")(0))
        .txtProjektNr2 = Val(Split(sArr(0), ".")(1))
        .txtID1 = Val(sArr(1))
        Select Case ia
        Case 4
            .txtKurzzeichen = sArr(2)
            .txtOrt = sArr(3)
        Case 5
            .txtID2 = Val(sArr(2))
            .txtKurzzeichen = sArr(3)
            .txtOrt = sArr(4)
        End Select
' Aktualisierung einer Anzeige aller Scans (siehe unten)
        ' mit einem UFo
        '.NameUFoControl.Form.Requery
        ' mit einem Listfeld
         .Liste50.Requery
    End With
End Sub

Meines Erachtens sagt die Variable aus, welche Felder definiert sind? Lasse mich gern belehren.
Grüsse
walker950
Grüsse
walker950

ebs17

ZitatMeines Erachtens ...
Die Bedeutung von Anweisungen sollte man nicht erachten, sondern bei Unwissen oder Zweifel in der Hilfe nachschlagen. UBound gibt die Anzahl der Array-Elemente, die durch Split entstehen, 0-basiert wieder.

05400.400_0005_0012_ABCD_Musterstadt
0         1    2    3    4

Das ist nach Wissen der längstmögliche Ausdruck. UBound kann also maximal 4 sein. Die Variable nimmt diesen Wert auf, damit er nur einmal ermittelt werden muss trotz doppelter Verwendung.

ZitatIm verwendeten Code kommt niregends Debug-Print vor
Nun, das würde man kurzfristig mal einfügen, um sich ansehen zu können, was ungeachtet des Erachtens und Denkens real für ein Wert geliefert wird. Entwickler machen so etwas, also prüfen, womit man es wirklich zu tun hat.

Eine nachfolgende Prüfung auf 5 im Select Case bei maximal möglich 4 hat dann andere als erwartete Wirkungen (die kann man im Code auch nachvollziehen), und die 5 entstammt nicht einer nachvollziehbaren Logik, sondern einer zufälligen "Eingebung", was die Würfel versinnlichen sollen.

Für mich war das jetzt genügend Volksschule bei zu wenig Sichtbarkeit  von eigener Initiative und von Fortschritt.
Ich wünsche viel Erfolg auf dem Weg.
Mit freundlichem Glück Auf!

Eberhard

Beaker s.a.

Hallo Eberhard,
ZitatEine nachfolgende Prüfung auf 5 im Select Case bei maximal möglich 4
Das war aber mein Fehler; peinlich immer diese Aussetzer.

@walker950
Mit Eberhards deutlicher Erläuterung solltest du den Code aber anpassen können.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

walker950

Hallo ekkehard
ZitatMit Eberhards deutlicher Erläuterung solltest du den Code aber anpassen können.
Ich werde es versuchen, will das ja auch verstehen.
Gruss
walker950
Grüsse
walker950

walker950

Hallo zusammen
@ekkehard
ZitatMit Eberhards deutlicher Erläuterung solltest du den Code aber anpassen können.
Habes zu Stande gebracht. Wenn es maximal 4 sein können, dann ist die 5 nicht korrekt.
Case 4 angepasst zu Case 3
Case 5 angepasst zu Case 4


Für die Zukunft nehme ich mit, Funktion markieren und F1 drücken hilft einem schon viel weiter. Wenn es dann immer noch unklar ist fragen.
Die nächsten Fragen kommen bestimmt....
Allen die Hilfestellung gegeben haben ein herzliches Dankeschön und schöne Ostern.
Grüsse
walker950
Grüsse
walker950

ebs17

Case 4 angepasst zu Case 3
Ich fand den Code für das verwendete Beispiel stimmig. Offen blieben dagegen  andere Beispiele.
Mit freundlichem Glück Auf!

Eberhard

walker950

Guten Abend Eberhard

Kurze Nachfrage, wie hättest du es gelöst? Gibts es noch einen anderen Weg?
Grüsse
walker950
Grüsse
walker950

ebs17

Genau gesagt hatte ich noch die Case 4-Variante aus meinem Ansatz im Kopf, und dann die Umsetzung nicht mehr wirklich angesehen wegen dieser 5.

Entscheidend ist doch der Praxistest an realen Werten, und weniger was sich der eine oder andere noch so denkt.

Wie auch: Bei Ansätzen und Vorschlägen, die ja vor allem eine Idee transportieren, darf man nicht zwingend davon ausgehen, dass da alles bis auf den letzten Punkt superrichtig ist. Wenn man drei, vier Dinge zusammenbaut, dann regelmäßig noch abstrakt, also allein aus der Vorstellung heraus und ohne explizites Testen, dann ist es schnell möglich, dass eine fünfte Sache fehlerhaft ankommt.
Der Nachfragende darf solche kleinen Dinge gerne selber bereinigen, das zeugt dann auch von einem Mitdenken und Verstehen gegenüber einem gedankenlosen bloßen Kopierens.
Es könnte sogar sein, dass da eine "Sollbruchstelle" eingefügt wurde zum Test, ob die Gegenseite wach ist oder schläft.

ZitatGibts es noch einen anderen Weg?
Ja, sogar ganz anders. Die ursprüngliche Idee der Verwendung von RegEx war schon eine praktikable. Bei den nunmehr nur zwei übersichtlichen QRCode-Varianten wäre sie sehr gut gangbar, ich hatte aber ursprünglich mit mehr Varianten und mehr Varianz darin gerechnet, und dann wäre es recht komplex geworden. Da ist das Trennen per Split doch ein ganz einfacher Fall und besser pflegbar, wenn die Herausforderungen steigen.
Mit freundlichem Glück Auf!

Eberhard

walker950

Guten Tag zusammen
Eine Frage zu den Formularen.
Ich erstelle ein Hauptformular mit allen Feldern aus der Tabelle, zusätzlich ein ungebundenes Feld um den QR Code zu scannen. Dort sehe ich dann was gescannt wurde und ergänze die anderen Information manuell.
Das UFO erstelle ich in dem Hauptformular mit den gleichen Feldern, dies dient der Übersicht alle DS. Nun meine Frage kann ich das auch in den Formularfuss einfügen oder muss das im Hauptformular sein?
Müssen die Felder vom Hauptformular mit dem UFO verknüpft werden?
Grüsse
walker950
Grüsse
walker950

DF6GL

Hallo,

bzgl. HFO/UFO:

vielleicht solltest Du für eine solche Vorgabe ein "Geteiltes Formular" einsetzen...

Ein UFO an die gleiche Tabelle wie das HFO zu binden, kann schnell zu Sperrkonflikten führen, wenn man keine anderweitigen Vorsichtsmaßnahmen ergreift.

Als Übersichtsanzeige wäre vermutlich ein Listenfeld auch (besser) geeignet.

"Verknüpft" werden ist nur dann erforderlich, wenn das UFO den/die Datensätze anzeigen soll, die durch die Verknüpfungsfelder (Primär-/Fremdschlüssel) definiert sind.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

walker950

Hallo DF6GL
Danke für deinen Hinweis.
In meinem Beispiel ist vermutlich sowas wie Speerkonflikt passiert. Im ufo Test sollten eigentlich alle DS angezeigt werden, jedoch funktioniert das auf einmal nicht mehr.
Das ufo würde mir insoweit bessere Gestaltung Möglichkeiten bringen siehe Beispiel. Finde den Fehler einfach nicht raus an was es liegt.
Zitatwenn man keine anderweitigen Vorsichtsmaßnahmen ergreift.
Wie könnten diese Massnahmen aussehen?
Grüsse
walker950
Grüsse
walker950

DF6GL

Hallo,

Zitatjedoch funktioniert das auf einmal nicht mehr.

Entferne die Einträge in den UFO-Steuerelement-Eigenschaften "Verknüpfen von/nach"    ("ID")
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

walker950

Grüsse
walker950