Supportnet / Forum / Datenbanken
Teilstring bei Zahlen
Frage
Hallo Supportnet,
ich suche nach einer Möglichkeit einen substring von zahlen auszulesen. bei texten einfach mit funktion "teilstr" wie lautet die funktion für Zahlen ?
Vielen Danke
Horst
Antwort 1 von FrankieH
Ähem - das müsstes Du etwas genauer erläutern.
Du hast eine Zeichenkette mit Zahlen? Sind da mehrere Zahlen in einer Zeichenkette? Wenn es nur eine ist, dann kannst Du CInt bzw CDbl nehmen - allerdings musst Du aufpassen, dass keine anderen Zeichen ausser Zahlen und Dezimalzeichen vorkommen.
Ansonsten - bei mehreren Zahlen in einer Zeichenkette müssen die ja irgendwie getrennt voneinander sein, entweder mit Blank oder mit Semicolon oder ....
Dann ist TeilStr richtig - und zwar in Verbindung mit InStr.
HTH,
Frankie
Du hast eine Zeichenkette mit Zahlen? Sind da mehrere Zahlen in einer Zeichenkette? Wenn es nur eine ist, dann kannst Du CInt bzw CDbl nehmen - allerdings musst Du aufpassen, dass keine anderen Zeichen ausser Zahlen und Dezimalzeichen vorkommen.
Ansonsten - bei mehreren Zahlen in einer Zeichenkette müssen die ja irgendwie getrennt voneinander sein, entweder mit Blank oder mit Semicolon oder ....
Dann ist TeilStr richtig - und zwar in Verbindung mit InStr.
HTH,
Frankie
Antwort 2 von michael oberley
hi alle
ich kenn mich zwar nicht aus mit acces aber vb ist dort auch ,die schritte einer integerwandlung und zurueck !
rem wandlung in einen string
a1$=str$(zahl1%)
rem falls noetig die laenge feststellen lassen
b1%=len(a1$)
rem string bearbeiten mit mid$ befehl !
z.b. liest ab der ersten pos fuenf zeichen und uebrgibt sie a2$
a2$=mid$(a1$,1,5)
rem jetzt koennte man den teilstring wieder zurueckverwandeln mit dem val befehl z.b.
b2%=val(a2$)
gruss nighty
ich kenn mich zwar nicht aus mit acces aber vb ist dort auch ,die schritte einer integerwandlung und zurueck !
rem wandlung in einen string
a1$=str$(zahl1%)
rem falls noetig die laenge feststellen lassen
b1%=len(a1$)
rem string bearbeiten mit mid$ befehl !
z.b. liest ab der ersten pos fuenf zeichen und uebrgibt sie a2$
a2$=mid$(a1$,1,5)
rem jetzt koennte man den teilstring wieder zurueckverwandeln mit dem val befehl z.b.
b2%=val(a2$)
gruss nighty
Antwort 3 von michael oberley
hi alle nochmal schniff (was vergessen)
bei einer hin und her wandlung von integer zu string und zurueck gibt es
ueble fehler auf jedenfall konntrollmechanismen in der entwicklungsphase einbauen.
gruss nighty
bei einer hin und her wandlung von integer zu string und zurueck gibt es
ueble fehler auf jedenfall konntrollmechanismen in der entwicklungsphase einbauen.
gruss nighty
Antwort 4 von Horst Müller
also:
in einer spalte befinden sich daten im format: zahl
12344558
nun möchte ich daraus die zeichen 5 und 6 ausgelesen haben.
TeilStr([spalte];5;2)
funktioniert nicht da die daten kein text sind. nun suche ich die funktion um dies bei zahlen zutun.
Horst
in einer spalte befinden sich daten im format: zahl
12344558
nun möchte ich daraus die zeichen 5 und 6 ausgelesen haben.
TeilStr([spalte];5;2)
funktioniert nicht da die daten kein text sind. nun suche ich die funktion um dies bei zahlen zutun.
Horst
Antwort 5 von MixMax
bin nicht so der access freak aber da es was ähnliches ist wie bei asp ... versuche mal
TeilStr(cstr([spalte]);5;2)
TeilStr(cstr([spalte]);5;2)
Antwort 6 von michael oberley
hi franki
was heisst HTH bitteeeeee grummel.
gruss nighty
p.s.
hallo horst du musst die integer in einen string verwandeln und zurueck nicht vergessen.
was heisst HTH bitteeeeee grummel.
gruss nighty
p.s.
hallo horst du musst die integer in einen string verwandeln und zurueck nicht vergessen.
Antwort 7 von michael oberley
hi mixmax
sein problem ist die integer die muss doch erst noch ein string werden grrrrr.
gruss nighty
sein problem ist die integer die muss doch erst noch ein string werden grrrrr.
gruss nighty
Antwort 8 von Marie
Also habt Ihr's bald oder muss ich meinen Senf auch noch dazugeben :-)))
Dim zahl As Double
Dim text As String
zahl = 12345678
text = Str$(zahl)
msgbox Mid$(Trim$(Str$(zahl)), 5, 2)
liefert mir einwandfrei die Ziffern 5 und 6. War es das, was Du gesucht hast?
Also wenn Du diese Ziffern doch nur auslesen willst, dann musst Du doch nix verwandeln und zurückverwandeln, da musst Du nur die Zahl als String auslesen und darauf achten, dass str$ ein führendes Leerzeichen setzt, also nicht vergessen Trim$ oder LTrim$ auszulesen.
Gruß Marie
Dim zahl As Double
Dim text As String
zahl = 12345678
text = Str$(zahl)
msgbox Mid$(Trim$(Str$(zahl)), 5, 2)
liefert mir einwandfrei die Ziffern 5 und 6. War es das, was Du gesucht hast?
Also wenn Du diese Ziffern doch nur auslesen willst, dann musst Du doch nix verwandeln und zurückverwandeln, da musst Du nur die Zahl als String auslesen und darauf achten, dass str$ ein führendes Leerzeichen setzt, also nicht vergessen Trim$ oder LTrim$ auszulesen.
Gruß Marie
Antwort 9 von Marie
Hallo Michael,
was für üble Fehler soll es da geben?? Natürlich kannst Du eine 8stellige Zahl nicht als Integer dimensioniert haben, das liegt aber dann nicht an der Umwandlung, dass Du da Fehler bekommst.
Gruß Marie
was für üble Fehler soll es da geben?? Natürlich kannst Du eine 8stellige Zahl nicht als Integer dimensioniert haben, das liegt aber dann nicht an der Umwandlung, dass Du da Fehler bekommst.
Gruß Marie
Antwort 10 von _gau_
Oder so:
In einer Abfrage wäre es der Ausdruck
Teil(Str([Spalte]);5;2)
In VBA wäre es
= Mid(CStr([Zahl]), 5, 2)
[gau]
In einer Abfrage wäre es der Ausdruck
Teil(Str([Spalte]);5;2)
In VBA wäre es
= Mid(CStr([Zahl]), 5, 2)
[gau]
Antwort 11 von _gau_
Halt ähnlich wie bei Marie ;-)
[gau]
[gau]
Antwort 12 von Marie
ja okay, cstr verhindert die führende Leerspalte, sorry, alte Gewohnheit aus Anfängerzeiten. :-)
Antwort 13 von MixMax
marie - jo, das ist das dann unter Basic...
also ich würde sagen er soll es einfach mal mit cstr und str$ ausprobieren.
bin übrigens zuversichtlich das er mit cstr(Zahl) eine automatische typenumwandlung macht.
(kennt access an der stelle cstr ? wenn nicht halte ich besser nun meine klappe)
also ich würde sagen er soll es einfach mal mit cstr und str$ ausprobieren.
bin übrigens zuversichtlich das er mit cstr(Zahl) eine automatische typenumwandlung macht.
(kennt access an der stelle cstr ? wenn nicht halte ich besser nun meine klappe)
Antwort 14 von _gau_
Hmm, Maries Hinweis bringt mich darauf, daß es dann in einer Abfrage eigentlich
Teil(ZString([Spalte]);5;2)
heißen muß ;-)
Auch wegen dem führenden Leerzeichen.
[gau]
Teil(ZString([Spalte]);5;2)
heißen muß ;-)
Auch wegen dem führenden Leerzeichen.
[gau]
Antwort 15 von michael oberley
hi marie
hier ein kleines beispiel wo ist der fehler ???!!!
Sub Makro1()
b = 1.123456
Range("a2") = Str$(b)
Range("a3") = Val(Range("a2"))
End Sub
ergibt nun in a3 eine 1 sollte aber 1,123456 sein.
gruss nighty
hier ein kleines beispiel wo ist der fehler ???!!!
Sub Makro1()
b = 1.123456
Range("a2") = Str$(b)
Range("a3") = Val(Range("a2"))
End Sub
ergibt nun in a3 eine 1 sollte aber 1,123456 sein.
gruss nighty
Antwort 16 von _gau_
@nighty
Hier geht's eigentlich um Access. Deine Frage wäre doch in der Excel-Rubrik besser aufgehoben, oder?
Wenn du in eine Zelle schreibst, wird aus dem Punkt ein Komma. Val erkennt das Komma nicht als Bestandteil einer Zahl und bricht an der Stelle ab.
Zufrieden?
PS: Was soll das eigentlich?
[gau]
Hier geht's eigentlich um Access. Deine Frage wäre doch in der Excel-Rubrik besser aufgehoben, oder?
Wenn du in eine Zelle schreibst, wird aus dem Punkt ein Komma. Val erkennt das Komma nicht als Bestandteil einer Zahl und bricht an der Stelle ab.
Zufrieden?
PS: Was soll das eigentlich?
[gau]
Antwort 17 von michael oberley
hi gau
ich dachte weils vb ist und wandlung integer string war ja das thema ,war nur so nebenbei gedacht sorry wenns nicht so recht reinpasste.
gruss nighty
ich dachte weils vb ist und wandlung integer string war ja das thema ,war nur so nebenbei gedacht sorry wenns nicht so recht reinpasste.
gruss nighty
Antwort 18 von _gau_
Naja, bei mir kam die Frage so an, als wolltest du uns etwas "hinterlistig" testen ;-)
[gau]
[gau]

