1.
free
16.03.2009 00:42:38 Peter de Maas Lesen/Editieren
Antworten Rechnen mit Texten Da hätt ich noch mind. eine Frage, für die ich keine LÖsung finde. In einer Tabelle hab ich das Feld kihalt, welches die Anzahl der Kinder eines Klienten enthält. Dummerweise erhalte ich beim Versuch die Kinder in der Tabellenspalte der Klienttabelle mit count zu zählen eine Fehlermeldung. Warum wurde mir klar, denn das Feld kihalt ist ein Textfeld. Gibt es nun eine Funktion, die vor Auswerten des Feldes mit count den Inhalt noch in eine Zahl wandeln kann. In Vb gibts zur Variablenumwandlung 'Val(ZahlalsStringvariable)' nur nützt mir das ja in der SQLAbfrage nichts. Vielen Dank für eine Antwort. Gruß Peter 2.
free
16.03.2009 15:20:10 Jürgen Auer Lesen/Editieren
Antworten Re: Rechnen mit Texten > Dummerweise erhalte ich beim Versuch die Kinder in der Tabellenspalte der Klienttabelle mit count zu zählen eine Fehlermeldung.
Das ist dann aber ein anderes Problem.
Count läßt sich per definitionem entweder auf alle Zeilen (Count(*) zählt alle Zeilen) oder auf die nicht leeren Einträge in einer Spalte (Count(kihalt) zählt alle nicht leeren Einträge der Spalte kihalt) anwenden.
Posten Sie mal den Sql-Code. 3.
free
21.03.2009 17:29:42 Peter de Maas Lesen/Editieren
Antworten Rechnen mit Texten Vielleicht habe ich mich falsch ausgedrückt. Die Tabellenspalte enthält jeweils die Anzahl der Kinder (aber Zahl als Text eben) und ich will die Summe der Kinder, nicht die Einträge zählen. KOnnte mich wegen Headcrash leider jetzt erst wieder melden. Gruß Peter 4.
free
22.03.2009 14:51:16 Jürgen Auer Lesen/Editieren
Antworten Re: Rechnen > Die Tabellenspalte enthält jeweils die Anzahl der Kinder (aber Zahl als Text eben)
dann ist der Datentyp der Spalte falsch, das sollte auf Integer geändert werden.
Ansonsten läßt sich das konvertieren:
Sum(Cast(Spalte as int))
Aber das crasht, wenn in einer Zelle doch Text drinsteht - deshalb ist die Anpassung des Spaltendatentyps der bessere Weg. 5.
free
23.03.2009 14:07:25 Peter de Maas Lesen/Editieren
Antworten Rechnen mit Texten Ich verstehe das schon richtig, es crasht wenn die "Text-zahl" eins drinn stehen würde, nicht aber, wenn "1" als string darainsteht? Bei der Eingabe wird allerdings bereits darauf geprüft, deshalb ist es wohl kein Problem. Dennoch komme ich da nicht weiter, mein SQL String sieht betreffend dieses Problems so aus:
SELECT Sum(cast([kahalt]as int)) AS Summevonkahalt From tbleroot WHERE (((tbleroot.id) In (SELECT.....
Beim Aufruf in VB erhalte ich dann folgende Fehlermeldung:
Laufzeitfehler (VB Fehler oder SQL ?) 3075: Syntaxfehler (fehlender Operator) in Abfrageausdruck Sum(cast([kahalt]) as int)).
Was ist denn da noch gefragt? Gruß Peter 6.
free
23.03.2009 17:09:08 Jürgen Auer Lesen/Editieren
Antworten Re: Rechnen mit Texten > Laufzeitfehler (VB Fehler oder SQL ?) 3075: Syntaxfehler (fehlender Operator) in Abfrageausdruck Sum(cast([kahalt]) as int))
Da ist eine Klammer nach der Spalte zu viel. Die Syntax von Cast ist
Cast(Spalte as int)
Oben sind das zwei öffnende und drei schließende Klammern. Da das 'as' fehlt, wird der 'fehlende Operator' bemängelt. 7.
free
23.03.2009 19:46:46 Peter de Maas Lesen/Editieren
Antworten Auswertungsabfrage Leider ist es das nicht. Die Fehlermeldung habe ich wohl fehlerhaft abgeschrieben, die Klammer existiert an dieser stelle gar nicht, nur die eckige. Der Ausdruck über der Fehlermeldung in meinem Post war kopiert und entspricht dem Originalcode. Ich habe aber auch mal die eckige klammer weggelassen, immer erhalte ich die gleiche Fehlermeldung. Peter 8.
free
23.03.2009 20:18:29 Jürgen Auer Lesen/Editieren
Antworten Re: Rechnen mit Texten Da oben so viele Klammmern drin sind?
Ist das der MS-SqlServer oder ist das Access? Access kennt wohl diese Funktion nicht. Da wird es aber ebenfalls eine Konvertierungsfunktion geben.
Auswendig weiß ich die auch nicht. 9.
free
23.03.2009 23:20:37 Peter de Maas Lesen/Editieren
Antworten Auswertungsabfrage Weder noch. Ich glaube das ist die jet-engine von VB. ABer das Problem habe ich wohl gelöst. Habe intuitiv das cast komplett weggelassen und obwohl in der mdb die Felder als text deklariert sind, scheint es innerhalb der jet-engine eine automatische Konvertierung zu geben, denn ich erhalte weder eine Fehlermeldung, aber ein offensichtlich korrektes sum-Ergebnis. Trotzdem vielen Dank für die Hilfe und viele Grüße Peter