Supportnet / Forum / Datenbanken
Aus Textfeld mit Text und Zahlen eine Summe bilden?
Frage
Frage: Wie kann man in Acces ein Textfeld wo Text und Zahlen enthalten sind
im Bericht eine Summe bilden?
[code][/code][i]Artikel "Access"[/i] editiert 14.2, 23h52
Antwort 1 von Thomas B.
Hi,
Ist, soweit ich weiß, Bei einem Textfeld nicht möglich. Ein Text-Feld ist ein "alphanumerisches" Feld. Das heißt, in ein solches Feld können sowohl Buchstaben, Sonderzeichen und Zahlen eingegeben werden. Um eine Summe aus dem Inhalt eines Datensatzes zu bilden, muß aber dieses Feld als "numerisches" Zahlen-Feld (z.B integer, oder double) definiert sein.
mfg
Thomas B.
Ist, soweit ich weiß, Bei einem Textfeld nicht möglich. Ein Text-Feld ist ein "alphanumerisches" Feld. Das heißt, in ein solches Feld können sowohl Buchstaben, Sonderzeichen und Zahlen eingegeben werden. Um eine Summe aus dem Inhalt eines Datensatzes zu bilden, muß aber dieses Feld als "numerisches" Zahlen-Feld (z.B integer, oder double) definiert sein.
mfg
Thomas B.
Antwort 2 von piano
Hi,
Ich würde hier eine Abfrage erzeugen, wo ein neues Feld den numerischen Anteil des Textfeldes enthält, z.B:
und mit diesem NumFeld den Bericht erstellen.
Gruß piano
Ich würde hier eine Abfrage erzeugen, wo ein neues Feld den numerischen Anteil des Textfeldes enthält, z.B:
NumFeld: val([TextFeld])und mit diesem NumFeld den Bericht erstellen.
Gruß piano
Antwort 3 von Roadrunner90
@piano
das funktioniert leider nur, wenn sich der numerische Teil am Anfang des Feldes befindet.
Gruß Rudolf
das funktioniert leider nur, wenn sich der numerische Teil am Anfang des Feldes befindet.
Gruß Rudolf
Antwort 4 von piano
Hi
Dann filtern wir die nicht-numerischen Anteile mit einer VBA-Funktion in beliebigem Modul heraus:
Die Abfrage-Eintragung lautet dann:
NumAnteil: NumWert([Textfeld])
Dann filtern wir die nicht-numerischen Anteile mit einer VBA-Funktion in beliebigem Modul heraus:
Public Function NumWert(Text)
Dim i As Integer, i1 As Integer
For i = 1 To Len(Text)
If InStr(1, "0123456789,", Mid(Text, i, 1)) > 0 Then
NumWert = NumWert & Mid(Text, i, 1)
End If
Next i
' Leerstring -> 0
If IsEmpty(NumWert) Then
NumWert = 0
End If
End Function
Die Abfrage-Eintragung lautet dann:
NumAnteil: NumWert([Textfeld])

