Avatar billede baadsager-e-box.dk Nybegynder
16. oktober 2003 - 14:12 Der er 3 kommentarer

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
Avatar billede keil Nybegynder
16. oktober 2003 - 15:01 #1
Hvorfor ikke bare benytte standard faciliteten i Excel.

Gå i Data / Hent eksterne data /Ny database forespørgsel (eller rediger database forespørgsel).

og så benytte MS query til at danne SQL-en.

Prøv engang og få forbindelse til databasen og skriv så igen når du støder i problemer.
Avatar billede baadsager-e-box.dk Nybegynder
16. oktober 2003 - 15:10 #2
En af ulemperne er datoafgrænsningen når man gerne vil have at brugeren indtaster fra og til datoen i regnearket, så opstår der problemer med dato formatet. Regnearket skal være brugervenligt og virke ved at bruger indtaster fra og til dato og så trykker på en knap.
Jeg har selv tænkt på denne mulighed, men jeg ville meget gerne undgå denne, for det andet er meget mere driftsikkeret.
Avatar billede keil Nybegynder
16. oktober 2003 - 15:14 #3
men du kan jo lave den nye del af koden ved at benytte MS-query og så klippe og klisre med den gamle kode.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester