Hent data fra Oracle vha ODBC
Jeg har et excel regneark som henter henter salgstal fra en oracledatabase via ODBC. Det regnearket gør i dag er at hente salget og skriver det ud i et felt. Det jeg gerne vil kunne gøre at at hente mere end et beløb, men hvordan skal dette se ud og hvordan får jeg dette ud i regnearket?? Det kræver selvfølgelig lidt andre sql forespørgsler men det er selv opsætningen at kaldet af funktionen og opsætningen af funktionen som er problemet.Jeg vedlægger noget af den eksisterende kode. Håber nogen kan hjælpe mig. Hvis I har brug for hele regnearket skal i bare sige til!!
På forhånd tak!!
___________________________________________________________
Sub Opdater()
Dim VarGr As String
Dim i As Integer
Dim str As String
Logon
For i = 1 To Range("VarGr").Count
VarGr = Range("VarGr").Cells(i)
Range("Salg").Cells(i) = Salg(VarGr, Range("PerFra"), Range("Pertil"))
Range("Kost").Cells(i) = Kost(VarGr, Range("PerFra"), Range("Pertil"))
Next i
End Sub
__________________________________________________________
Option Explicit
Public OASEBase As Database
Public OASEData As Recordset
________________________________________________________
Sub Logon()
Dim OASEConnect As String
OASEConnect = "ODBC;DSN=Kaldenavn;UID=Oracleuser;PWD=Password"
Set OASEBase = DBEngine.Workspaces(0).OpenDatabase("", False, True, OASEConnect)
End Sub
___________________________________________________________Function Salg(VarGr As String, PerFra As Date, PerTil As Date) As Double
Dim str As String
str = "select nvl(sum(((lantal*spris)/ol.prisenhed)*(1-ol.rabat/100)),0) as belqb " _
& "from ol,ordhov, art " _
& "where ordhov.status in ('F','K') and ol.ordkey=ordhov.ordkey and ol.altvnr=art.artnr and Bogdat between to_date ('" & Format(PerFra, "dd-mm-yyyy") & "','dd-mm-yyyy') and " _
& "to_date('" & Format(PerTil, "dd-mm-yyyy") & "','dd-mm-yyyy') and " _
& "art.vargr='" & VarGr & "'"
Set OASEData = OASEBase.OpenRecordset(str, _
dbOpenSnapshot, dbSQLPassThrough)
Salg = OASEData.Fields("belqb")
End Function
___________________________________________________________
Function Kost(VarGr As String, PerFra As Date, PerTil As Date) As Double
Dim str As String
str = "select nvl(sum(((lantal*kpris))),0) as belqb " _
& "from ol,ordhov, art " _
& "where ordhov.status in ('F','K') and ol.ordkey=ordhov.ordkey and ol.altvnr=art.artnr and Bogdat between to_date ('" & Format(PerFra, "dd-mm-yyyy") & "','dd-mm-yyyy') and " _
& "to_date('" & Format(PerTil, "dd-mm-yyyy") & "','dd-mm-yyyy') and " _
& "art.vargr='" & VarGr & "'"
Set OASEData = OASEBase.OpenRecordset(str, _
dbOpenSnapshot, dbSQLPassThrough)
Kost = OASEData.Fields("belqb")
End Function
