Neuigkeiten:

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

Mobiles Hauptmenü

Aus einer Spalte drei machen

Begonnen von perluna, Juli 13, 2010, 09:52:47

⏪ vorheriges - nächstes ⏩

perluna

Hallo @ all,

ich habe in einer Spallte einen Messrange zu stehen z.B.
0 ...100%
0...0,6 bag(g)
35 ... 1700 m³/h

und die Daten würde ich gerne in 3 Spalten aufteilen. In einer den Min Wert, Max Wert und in der 3.Unit
Min Max    Unit
0     100    %
0     0,6     bar(g)
35   1700  m³/h

Ich hoffe ihr habt vielleicht eine Idee und könnt mir weiterhelfen.


Danke schonmal

Perluna

MzKlMu

Hallo,
das ist nicht so einfach wie es aussieht. Man muss versuchen eine eindeutige Regel zu erkennen, die die Trennung korrekt erkennt.
Währe % auch eine Einheit?
Sind die Punkte zwischen Min und Max immer vorhanden?
Ist vor der Einheit immer ein Leerzeichen?

Immer ist wörtlich zu nehmen und bedeutet ausnahmlos !
Gruß Klaus

Stapi

Hallo

Da du die Messwerte wahrscheinlich über eine Schnittstelle bekommst, ist meine Frage warum du sie nicht gleich beim einlesen entsprechend in die Spalten schreiben läst. Wichtig ist hier schon zu wissen wie MzKiMu angedeutet hat wie die Regel aussieht. Es ist möglich mit den Funktionen " MID " Left " Right " und der Angabe der Stelle geziehlt Werte beim Einlesen aus der Schnittstelle in eine Spalte zu schreiben.

Gruß Stefan
Grüße aus dem schönen NRW
Stefan

perluna

Hallo,

also eine Regel gibt es nicht. Es ist leider auch nicht immer gegeben das vor der Unit ein Leerzeichen steht.
% wäre in dem Fall auch eine Unit.

Meine Idee wäre das man vllt in einer Abfrage alle Leerzeichen rausnimmt, so hätte man dann zumindest eine Art Struktur. Bis zum 1.Punkt der Min-Wert nach dem letzten Punkt der Max-Wert mit Unit.

Gibt es in Access eine Funktion mit der man nach Punkten suchen kann?

Dann müsste jetzt nur noch irgendwie der Max-Wert von der Unit getrennt werden.


Ich kann es leider nicht einzelnd einlesen, da ich die Daten nur so vom "Kunden" erhalten.

bahasu

Hallo

Anbei eine Datenbank, bei der mittels Abfrage (mid, left, ersetzen, Wert-Funktionen wurden eingesetzt) die Daten auf Spalten aufgeteilt werden.

Vielleicht liefert das eine Anregung.

Harald


[Anhang gelöscht durch Administrator]
Servus

T417

Ich hatte ein ähnliches Problem, jedoch mit Kosten die ich auf Jahre verteilen sollte.
http://www.access-o-mania.de/forum/index.php?topic=12677.msg70520#msg70520

Du könntest in dieses Zusammenhang auch nach Min(Wert) oder Max(Wert) anpassen.
Mit der Einheit/Unit hab ich spontan jedoch kein Idee.

Vielleicht bringt dich das dennoch auf eine Lösung.

Gruß
T.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

DF6GL

Hallo,

Luftcode (ohne Fehlerbehandlung und ungetestet), wenn es sich immer um 3 zusammenstehende Punkte handelt...



Public Function fktSplitRange(strValue As String, strPart As String)
Dim strTemp As String, strTemp1 As String, a, i As Long, i1 As Long, Zeichen As String

strTemp = Replace(strValue, "%", "Proz")
strTemp = Replace(Replace(strTemp, "  ", ""), " ", "")
strTemp = Replace(strTemp, "...", "|")
strTemp = Replace(strTemp, ",", ".")

For i = 1 To Len(strTemp)
Zeichen = Mid(strTemp, i, 1)
If IsNumeric(Zeichen) Or Zeichen = "." Or Zeichen = "|" Then
strTemp1 = strTemp1 & Zeichen
Else
strTemp1 = strTemp1 & "|"
Exit For
End If
Next

For i1 = i To Len(strTemp)
Zeichen = Mid(strTemp, i1, 1)
strTemp1 = strTemp1 & Zeichen
Next

a = Split(strTemp1, "|")
If UBound(a) = 2 Then
Select Case strPart
Case "Min"
fktSplitRange = Val(a(0))

Case "Max"
fktSplitRange = Val(a(1))

Case "unit"

fktSplitRange = Replace(a(2), "Proz", "%")

Case Else
fktSplitRange = Null

End Select
Else
fktSplitRange = Null
End If


End Function



und Aufruf z. B. in einer Abfrage:

Select *, fktSplitRange([Messrange],"Min") as MinWert,  fktSplitRange([Messrange],"Max") as MaxWert, fktSplitRange([Messrange],"Min") as Einheit  from Tabelle