Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Text aus Tabellenfeld auslesen und Tabelle aktualisieren

Begonnen von Heinz_Access, Februar 25, 2024, 14:45:48

⏪ vorheriges - nächstes ⏩

Heinz_Access

Hallo in die Runde,
Ich hoffe irgendeiner kann mir bei meinem Problem helfen. Ich habe 2 Tabellen, Tbl_Auftrag und Tbl_Monteur. In der Tabelle Auftrag gibt es ein Feld Auftragskurzbeschreibung und ein leeres Feld Namen. In das Feld Auftragskurzbeschreibung schreibt der jeweilige Monteur seine Tätigkeiten und irgendwo im Feld auch sein Namenskürzel. Dieses Namenskürzel steht aber weder am Anfang, noch am Ende der Auftragskurzbeschreibung. In der Tabelle Monteur gibt es die Felder Namenskürzel, Name, Telefonnummer usw. Nun möchte ich, dass die Abfrage nach dem Namenskürzel in der Auftragskurzbeschreibung der Tbl_Auftrag sucht und und den Namen aus der Tbl_Monteur in das leere Feld Namen in die Tbl_Auftrag schreibt.
Ich bin noch releativ am Anfang meiner Access-Kenntnisse und hoffe, Ihr könnt mir helfen.
Vorneweg schon mal vielen Dank für Euer bemühen.

MzKlMu

Hallo,
die Tabelle für den Monteur sollte ein Feld für den Primärschlüssel bekommen. Dazu nimmt man am Besten einen Autowert. Die Tabelle mit dem Auftrag braucht dann ein Fremdschlüsselfeld (Zahl, Long).
Der Monteur sollte dann seinen Namen per Kombifeld auswählen und nicht irgendwo in ein Feld schreiben.
So wie Du das jetzt vorhast, ist das für eine Datenbank untauglich.

Es muss auch zwischen den beiden Tabellen eine Beziehung eingerichtet sein.
Können an einem Auftrag auch mehrere Monteure beteilgt sein ?
Und/oder kann der gleiche Monteur für den gleichen Auftrag auch mehrere Beschreibungen anlegen ?
Musst Du nicht erfassen, für wen der Auftrag durchzuführen ist (Kunde)?
Gruß Klaus

PhilS

Zitat von: Heinz_Access am Februar 25, 2024, 14:45:48In das Feld Auftragskurzbeschreibung schreibt der jeweilige Monteur seine Tätigkeiten und irgendwo im Feld auch sein Namenskürzel.
Deine Problemstellung erscheint völlig künstlich erzeugt. Warum kann der Monteur nicht seine Kennung/Namen einfach in einem separaten Feld eingeben/auswählen? Evtl. könnte man den Monteur sogar einfach über seinen Windows-Benutzernamen identifizieren und diesen speichern.

Deine Idee, das Namenskürzel "irgendwie" aus der Auftragsbeschreibung zu extrahieren, wäre nur dann möglich, wenn es als solches selbst schon klar zu erkennen wäre. - Da du dazu nichts erwähnst, sehe ich keinen erfolgversprechenden Ansatz das umzusetzen.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Heinz_Access

Danke für die schnellen Antworten. Mein Problem besteht darin, das ich die Daten aus einer anderen Anwendung auslese in der es kein Feld für den Namen des Monteurs gibt. Es gibt pro Auftrag nur einen Monteur und auch die Auftragskurzbeschreibung wird nur einmal eingegeben. Das Namenskürzel beginnt aber immer gleich mit "~~~"und dann das Kürzel. z.b. ~~~AUGF oder ~~~KULT.
Danke nochmal

ebs17

#4
ZitatEs gibt pro Auftrag nur einen Monteur
Irgendwo muss es ja eine Zuordnung vom Mitarbeiter zu Auftrag geben, sonst wird ja der MA für Luft bezahlt, oder eben nicht. Also vielleicht qualifiziert und vollständig exportieren/importieren.

~~~AUGFSo etwas kann man per Mustersuche finden und interessierende Informationen isolieren (wenn man es von der Umgebung unterscheiden kann). In diesem Sinne sollte man also Varianten vom Gesamttext in allen denkbaren Variationen, insbesondere grenzwertigen, zeigen. Aus nur "~~~AUGF" finde ich ganz leicht "~~~AUGF".

Ansatz:
RegExReplace(AnyString, ".*(~~~[A-Z]{4}).*", "$1")"Intelligente" Textanalyse

ZitatAuftragskurzbeschreibung wird ... eingegeben
Bei Vertippern wird es noch etwas komplexer.
Primär sollte man also die Eingabe qualifizieren => MA-Kennung per Auswahl aus Liste (ComboBox) in eigenes Feld.

Was nicht auswertbar ist, wird nicht abgerechnet und bezahlt - das sollte als erzieherische Androhung ausreichen.
Mit freundlichem Glück Auf!

Eberhard

Heinz_Access

Danke Ebs17
Ich denke, mit deinem Code werden die nächsten 4 Zeichen nach ~~~ ausgelesen. Da ich in Access noch nicht so Fit bin, wo muss ich den Code einfügen und wie bekomme ich dann den Ausgabewert in das leere Feld meiner Tabelle. Tabelle Auftrag besteht mit den Feldern "Auftragskurzbeschreibung" (in dem Steht das ~~~Kürzel),  das Ergebnis der Auswertung soll in das leere Feld "Monteur" in der gleichen Tabelle.
Danke schon mal

MzKlMu

#6
Hallo,
es ist mir immer wieder ein Rätsel wieso man etwas beschreibt (zu dem man Hilfe haben will) das dann mit der Realität nichts zu tun hat.
Zitat von: Heinz_AccessIn das Feld Auftragskurzbeschreibung schreibt der jeweilige Monteur seine Tätigkeiten und irgendwo im Feld auch sein Namenskürzel.

Nach Vorschlägen und Rückfragen schreibst Du:
Zitat von: Heinz_AccessMein Problem besteht darin, das ich die Daten aus einer anderen Anwendung auslese in der es kein Feld für den Namen des Monteurs gibt.

Das entspricht doch in keiner Weise Deiner ursprünglichen Schilderung.
Gruß Klaus

Heinz_Access