royalsunday
Goto Top

Mit mysql rechnen in VBA (Excel)

Hallo zusammen

Zuzeit habe ich ein Script das alle Daten aus der Datenbank ausliesst. Nun sollte man aber zusätzlich noch Werte Rechnen.
z.B. Traffic * Calls.
Wie mache ich das?

Vielen Dank für die Hilfe

Sub Makro2()
'  
' Makro2 Makro  
' Makro am 16.09.2008 von tbaroma1 aufgezeichnet  
'  

'  
    With ActiveSheet.QueryTables.Add(Connection:= _
        "ODBC;DRIVER=SQL Server;SERVER=sch4058-2;UID=tbaroma1;APP=Microsoft Office 2003;WSID=U175891;DATABASE=TOC;Trusted_Connection=Yes" _  
        , Destination:=Range("A15"))  
        .CommandText = Array( _
        "SELECT CH_INT.Top_Level_Customer_Code, CH_INT.""Base_Offer_Level 3"", CH_INT.""Umsatz + VAT"", CH_INT.Traffic, CH_INT.Calls, CH_INT.Data_MBytes" & Chr(13) & "" & Chr(10) & "FROM TOC.dbo.CH_INT CH_INT" _  
        )
        .Name = "Abfrage von CH_INT"  
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
    ActiveWindow.SmallScroll Down:=-6
End Sub

Content-Key: 97062

Url: https://administrator.de/contentid/97062

Printed on: April 26, 2024 at 03:04 o'clock

Member: Raiment
Raiment Sep 16, 2008 at 14:03:06 (UTC)
Goto Top
Hallo

Du kannst die Berechnung gleich in der Query machen.

Z.B.: "SELECT (CH_INT.Traffic * CH_INT.Calls) as TrafficCalls, CH_INT.Data_MBytes" & Chr(13) & "" & Chr(10) & "FROM TOC.dbo.CH_INT CH_INT")

Gruss
Member: RoyalSunday
RoyalSunday Sep 17, 2008 at 07:15:14 (UTC)
Goto Top
Super Vielen Dank für deine Hilfe.
Jedoch habe ich nun ein anderes Problem.
Wenn ich "/" rechnen möchte kommt immer ein Allgemeiner OBDC-Fehler.
Was muss ich beim Durchrechnen anders machen als beim * oder + ?
Dort geht deine Lösung nähmlich.

Zurzzeit habe ich dies:
"SELECT CH_INT.Top_Level_Customer_Code, CH_INT.""Base_Offer_Level 3"", CH_INT.""Umsatz + VAT"", CH_INT.Traffic, CH_INT.Calls, CH_INT.Data_MBytes, (CH_INT.Traffic / CH_INT.Calls) as TrafficCalls" & Chr(13) & "" & Chr(10) & "FROM TOC.dbo.CH_INT CH_INT" _  
        )
Member: Raiment
Raiment Sep 17, 2008 at 09:16:22 (UTC)
Goto Top
Es müsste eigentlich auch mit dem / gehn. Alternativ kannst du auch div verwenden "(CH_INT.Traffic div CH_INT.Calls) as TrafficCalls"

http://dev.mysql.com/doc/refman/5.0/en/arithmetic-functions.html

Falls dies immer noch nicht funktionier, würd ich mal prüfen, ob du die aktuellen ODBC-Treiber (5.1 --> http://dev.mysql.com/downloads/connector/odbc/5.1.html) verwendest oder die Query mal direkt in der Datenbank ausführst

Den CRLF würd ich auch mal weglassen