PDA

Vollständige Version anzeigen : Zahl auf 4stellig erhöhen (Nullen davor)


Alexandra, die zweite
04.10.2002, 13:38
hi nochmal,

ich suche auch noch eine Möglichkeit folgendes zu realisieren...

aus

abc #456

soll

abc #0456

werden. Buchstaben und # müssen beibehalten werden und die Zahl soll auf 4 Stellen erhöht werden (in dem Nullen davorgesetzt werden). Es kann aber auch sein, dass die Zahl 1, 2 oder 4 Stellen hat

Weiß jemand wie ich das am einfachsten lösen kann?

Gruß,
Alex

A.S.
04.10.2002, 13:54
Hallo Alex,

in einer Aktualisierungsabfrage, welche auf der entsprechenden Tabelle basiert das entsprechende Feld in die erste Spalte (Zeile Feld) ziehen und in der Zeile Aktuaisieren folgendes eingeben

Links(Glätten([DeinFeld]);InStr(Glätten([DeinFeld]);"#")) & Format$(Wert(TeilStr(Glätten([DeinFeld]);InStr(Glätten([DeinFeld]);"#")+1)),"000000")

Dadurch sollte (nicht getestet) "asdf #456" zu "asdf #000456" werden.

MarkusS
04.10.2002, 13:54
Hallo zweiteAlexandra,
also auf Code-Ebene könnte das so gehen:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre>
<span class="TOKEN">Public Function</span> gibWert(alterWert <span class="TOKEN">As</span> <span class="TOKEN">String</span>) <span class="TOKEN">As</span> <span class="TOKEN">String</span>
gibWert = &quot;#0&quot; &amp; Mid(alterWert, 2)
<span class="TOKEN">End</span> <span class="TOKEN">Function</span>&nbsp;</pre>

Alexandra, die zweite
06.10.2002, 15:02
Hallo,

danke für eure Antworten.

@as
- funktioniert leider nicht. Access meckert das Komma vor "000000" an ...

@Markus
- kannst du mir noch sagen wie ich das auf mein Feld in der Tabelle anwenden kann?

Gruß,
Alex

A.S.
06.10.2002, 15:19
Hallo Alex,

dann tausche das Komma gegen ein Semikolon aus.

Gruß

Arno

rollo
06.10.2002, 16:10
Hallo Alex,

definiere doch mal folgende Funktion:
Private Function ersetzen(s As String)
Dim i As Integer
i = InStr(1, s, "#")
If (i <> 0) Then
text = Left(s, i) & Right("0000" & Right(s, Len(s) - i), 4)
Else
text = s
End If
End Function

Und Beim Verlassen des Textfeldes dann den Afruf:

Deinfeld = ersetzen(Deinfeld)

Viele Grüße
Ralf.

rollo
06.10.2002, 16:22
War noch ein Tipfehler in der Funktion. Also 2. Versuch:
Private Function ersetzen(s As String)
Dim i As Integer
i = InStr(1, s, "#")
If (i <> 0) Then
ersetzen = Left(s, i) & Right("0000" & Right(s, Len(s) - i), 4)
Else
ersetzen = s
End If
End Function

Ralf.