royalsunday

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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 97062

Url: https://administrator.de/forum/mit-mysql-rechnen-in-vba-excel-97062.html

Ausgedruckt am: 27.04.2025 um 03:04 Uhr

Raiment
Raiment 16.09.2008 um 16:03:06 Uhr
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
RoyalSunday
RoyalSunday 17.09.2008 um 09:15:14 Uhr
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" _  
        )
Raiment
Raiment 17.09.2008 um 11:16:22 Uhr
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