Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
992to996
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datenbank-Abfrage: Kann int-Spalte nicht summieren

Datenbank-Abfrage: Kann int-Spalte nicht summieren
11.07.2008 15:36:49
Florian
Hallo Leutz,
ich bin am verzweifeln. In meinem Makro baue ich mir eine Mysql-Abfrage per ADODB zusammen und sende sie an die Datenbank. Es werden in dieser Abfrage mehrere Spalten summiert (Anzahl, Gewicht, Umsatz je Kunde). Leider stellte ich fest, dass kein Ergebnis aus der DB zurückgeliefert wurde. Nach einiger Zeit konnte ich dass Problem auf 2 Spalten eingrenzen. Und zwar kann scheinbar VBA die beiden Gewichtsspalten nicht summieren. Einzelnd ausgeben lassen sich die Spalten, aber dass summieren wird nicht zugelassen. Richte ich genau dieselbe Abfrage direkt an die Datenbank (ohne VBA & Excel) so funktioniert sie ohne Probleme. Aufgefallen ist mir noch, dass die beiden Gewichtsspalten im Gegensatz zu den anderen summierten Spalten (die vom Typ DOUBLE sind), den Datentyp INT in der DB haben.
Habe das Ganze sogar nochmal mit reinem VBScript (ohne Excel) getestet, ebenfalls ohne Erfolg.
Um auszuschliessen, dass irgendwelche falschen Werte (z.B. Buchstaben) in den Gewichtsspalten der DB auftauchen, habe ich die Abfrage weit eingegrenzt, auf zwei Zeilen, wo ich weis dass die Daten korrekte Zahlen sind.
Kann mir irgendjemand sagen, warum die beiden INT-Spalten unter VBA nicht summiert werden können?
Bin echt am Verzweifeln, da ich ohne die DB-Abfrage nicht weiterkomme.
Grüße Flow

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenbank-Abfrage: Kann int-Spalte nicht summieren
11.07.2008 16:09:00
Yal
Hallo Flow,
ev. hast Du ein Overflow: 2 Int summiert, die eine Wert ergeben, die ausserhalb des Int-Definitionsbereich liegt. Da ist VBA restriktiver als ein DB-Engine.
Probiere die Abfrage als Pass-Through zu übergeben. Die Auführung wird von dem MySql-Server durchgeführt. Da Du sagst, dass die Abfrage direkt auf der DB funktioniert, solltest es somit auch funktionieren.
Viel erfolg
Yal

AW: Datenbank-Abfrage: Kann int-Spalte nicht summieren
11.07.2008 16:28:08
Florian
Funktioniert dieses Pass-Through auch in Excel-VBA? Bei google steht ständig was von Access. Weist du vielleicht eine gute Hilfe-Seite für das bauen von Pass-Through-Abfragen, habe damit noch nie gearbeitet.
Vielen Dank soweit für deine schnelle Antwort.
Grüße Flow

Anzeige
AW: Datenbank-Abfrage: Kann int-Spalte nicht summieren
11.07.2008 17:01:48
Yal
Hallo,
das kein sein, dass diese Pass-Through nur Access-tauglich ist.
Es ist in meinen Büchern nur im Zusammenhang mit Access und vor allem DAO zu finden. Ob eine Abfrage durch ADODB systematisch Pass-Through ist? Sollte so sein, da in VBA keine Tabelle-Verknüpfung aufgebaut werden können (eigentlich schon, aber da wollen wir nicht ins Detail gehen, der Weg ist ziemlich mühsam).
Es bleibt nur übrig, der Versuch ein Typcasting zu forzieren. Und da weiss ich nicht wie MySql tickt. Es könnte so aussehen:
rs.open "select TO_LONG(Gewicht1 + Gewicht2) as Gewicht from MeinTabelle", dbCon
oder
rs.open "select TO_LONG(Gewicht1) + TO_LONG(Gewicht2) as Gewicht from MeinTabelle", dbCon
i dät's mal versucha.
Viel Erfolg
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige