Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Baldur am Juli 07, 2011, 13:37:14

Titel: Abfrage eines Zahlenwertes aus einem Textfeld
Beitrag von: Baldur am Juli 07, 2011, 13:37:14
Hallo erstmal ;-) das hier ist mein erster Post hier.
Ich habe folgendes Problemchen ich habe einen neuen Job angefangen und will mir da einiges erleichtern. Ich vermute aber das das nur mit einer Abfrage mit hilfe von VBA funktioniert.

Ich habe eine Spalte wo Das hier drin stehen kann "Rang, F1. Sitz-ID: 111111; rechts;" Die zusammenstellung der box könnte auch anderst aussehen was immer gleich ist ist dieser ausdruck Sitz-ID: 111111;. Ich will aber nur den reinen Zahlenwert in einer neuen Tabelle stehen haben also "111111". Und wenn kein Zahlenwert existiert mache eine Additionsabfrage und schreibe hinter jeden Kommentar in der spalte ein x. Zu bearbeiten wären so um die 5000 Datensätze.

Da ich ein ziemlicher anfänger bin mit Access wäre es schön wenn mir wer helfen könnte. Es handelt sich hierbei um Access 2007.

MFG Baldur
Titel: Re: Abfrage eines Zahlenwertes aus einem Textfeld
Beitrag von: DF6GL am Juli 07, 2011, 13:44:50
Hallo,

mhmmm,  ich befürchte, Du dokterst an Symptomen herum, statt das Übel zu beseitigen oder am "Orignalschauplatz" zu forschen. 

Es wäre von Vorteil, wenn Du die Gesamtumgebung der DB beschreiben würdest und auch, was Du mit der extrahierten Zahl anfangen willst ("neue Tabelle" ??? ).

Natürlich könnte man per VBA die Ziffern aus dem Text extrahieren, aber vermutlich gibt es die schon irgendwo in der DB.
Titel: Re: Abfrage eines Zahlenwertes aus einem Textfeld
Beitrag von: database am Juli 07, 2011, 14:13:58
Hallo,

ZitatIch habe eine Spalte wo Das hier drin stehen kann

...würde ich dann gleich mal als Horror bezeichnen.
Abgesehen davon dass das Datenmodell einen - und ich vermute nach diesem Beispiel - mehrere katastrophale Fehler aufweist,
ist es nicht trivial deine Wünsche in geordnete Bahnen zu lenken, wenn die Aussage oben tatsächlich zutrifft.

Was das mit dem Datenmodell auf sich hat?

Wen du in deiner Tabelle ein Feld führst dass den von dir beschriebenen Inhalt hat, ist diese Tabelle nicht normalisiert und somit ständig ein Grund für gröbere Probleme.

Natürlich ist es grundsätzlich möglich den Zahlenwert per VBA aus diesem Feldinhalt zu extrahieren - sinnvoll ist es jedoch nur dann, wenn im Zuge dessen das Datenmodell gleich in einem Zug mit berichtigt wird. Unabhängig davon - den Zahlenwert des Feldeintrages in eine neue Tabelle zu schreiben macht nur dann Sinn, wenn in der neuen Tabelle bekannt gegeben wird aus welchem Datensatz der Zahlenwert entstammt!

Wobei ich jetzt aber schon stark damit rechne dass es sich tatsächlich um eine Access-Tabelle handelt und es NICHT etwa um Excel geht!?
Titel: Re: Abfrage eines Zahlenwertes aus einem Textfeld
Beitrag von: Baldur am Juli 07, 2011, 14:26:47
Also um es kurz zu beschreiben Da ich keine Orginal Datenbank hier reinstellen will wegen Firmendaten usw. Versuche ich mir hier einfach mal bissel zu helfen und zu umschreiben was daraus genau werden soll.

Ich habe ein Tabellenblatt mit allen Informationen. Und daraus will ich ein neues Tabellenblat mit informationen erstellen die nicht übereinstimmern.

Struktur sieht so aus.

Regalplatz_ID | LagerBox | Inhalt | Menge | Menge_2 | Kommentar

Regalplatz_ID :    Ist der primär Schlüssel und kommt nur einmal vor. Liegt in dem format vor "111111"
LagerBox :      ist die art der verwendeten Lagerbox Wert wird aus einer anderen tabelle abgefragt. Format 1,2 oder 3
Inhalt:         ist die verwendeten untergruppe Wert wird aus einer anderen tabelle abgefragt. Format 1,2 oder 3
Menge:              Ist die Aktuelle menge des Box inhaltes
Menge_2:              Ist nur ein Wert den man nur zur info braucht.
Kommentar:       Hier steht z.B. das drin "Rang, F1. Sitz-ID: 111111; rechts;" Wie soll ich es beschreiben in der Box sind Unterteilungen und ich will wissen ob die maximale Menge der box in der kommentar steht "Sitz-ID: 111111;" auch die Maximale Menge in der dazugehörigen Regalplatz_ID ist.

Also ich brauche die Zahl aus dem Kommentarfeld um sie der Regalbox_Id zuzuordnen und zu schauen das die Maximale menge übereinstimmt(Ich will nur die Menge vergleichen).
Das Problem hierbei ist das es mehrere Kommentarfelder mit der selben nummer geben kann und davon brauche ich immer nur den Maximal wert weil nur dieser mit der Rgalbox_id Übereinstimmern muss.
Das alles mit dem Handy zu tippen ist echt eine Qual ;-)

Regalplatz_ID   LagerBox   Inhalt   Menge   Menge_2          Kommentar
100000             1               0              48              147   
100001             1               2              65              138   
100002             2               0             65              138          F1.Sitz-ID: 100001;
100003             2               0               87              135   
100004             1               2              67              138   
100005             2               0              67              138          F1.Sitz-ID: 100004;
100006             2               0              36              174          grün;F1.Sitz-ID: 100004;braun
100007             1               2             36              174   
100008             1               2             24              176   
100009             2               0              22              178           F1.Sitz-ID: 100007;kraut;


Ich hoffe es ist verständlich was ich machen will.

1000 Dank Baldur
Titel: Re: Abfrage eines Zahlenwertes aus einem Textfeld
Beitrag von: daolix am Juli 07, 2011, 17:16:18
Hier mal ne simple funktion die dir die Zahlenwerte extrahiert. das ganze in ein Standardmodul, dann kanst du das auch inner abfrage verwenden.


Function GetSI(ByVal sKommentar As String) As Long
    If Len(sKommentar) = 0 Then Exit Function
    Const sSI = "Sitz-ID:"
    Const LenSI = 8 'Charlänge von "Sitz-ID:"
    Dim lStart As Long
    lStart = InStr(1, sKommentar, sSI)
    GetSI = Left(Mid(sKommentar, lStart + LenSI), InStr(lStart, sKommentar, ";") - lStart - LenSI)
End Function


Den Rest was du dann machen willst hab ich leider nicht gerafft.
Titel: Re: Abfrage eines Zahlenwertes aus einem Textfeld
Beitrag von: Baldur am Juli 08, 2011, 08:55:56
Erstmal Danke ;-) ich werd am WE mal versuchen das hnzubekommen und melde mich dann wieder.