Avatar billede andersbremer Nybegynder
27. juli 2005 - 15:45 Der er 8 kommentarer og
1 løsning

Import fra Acces DB med dynamisk placering på disk

Jeg anvender Excel til rapporter og visning af grafer over data lagret i Access. Jeg har via "Import af eksterne data" oprettet OLE DB forespørgsler, som samler ca. 10 tabeller fra Access i arket "Rådata", hvorfra de andre ark henter deres information. Via en makro opdateres "Rådata" hver gang jeg foretager ændringer i dataene fra Access.
Det virker helt fint - så længe den fulde sti på min databases placering er angivet. (pt. C:\programmer\proficon\profilyze.mde).
Imidlertid distribueres regnearket samt databasen via et installationsprogram, som kun kan installere i %programfiles% mappen. Dvs. jeg vil gerne indstille OLE DB forespørgslen til at trække data fra databasen placeret på noget i retning af %ProgramFiles% & "\proficon\profilyze.mde". Dette kan jeg dog ikke få til at fungere.
Da excelarket og databasen altid placeres i samme mappe har jeg også forsøgt mig med ActiveWorkbook.Path & "\proficon\profilyze.mde" - og det har jeg helelr ikke haft held med.
Jeg har forsøgt mig med ovennævnte gennem "Rediger OLE DB forespørgsel" og der ændret i feltet "forbindelse" - men som sagt ikke været heldig med det!!!

Er der nogen, der ved hvad jeg kan gøre, eller måske bare har en god ide?? (jeg er ikke en haj til programmering, overhovedet!)
Avatar billede mugs Novice
27. juli 2005 - 16:23 #1
Dette er ikke svaret på dit spørgsmål, men Access kan jo også vise grafer og rapporter, så hvad er grunden til, at du bruger Excel til dette?
Avatar billede andersbremer Nybegynder
27. juli 2005 - 16:28 #2
Jeg har valgt at gøre det i Excel fordi jeg viser nogle grafer, som jeg ikke har kunnet få vist i Access. Er Access i stand til at vise nøjagtig de samme grafer??
Avatar billede mugs Novice
27. juli 2005 - 17:01 #3
Det kan jeg ikkemsige, da jeg ikke ved hvad du vil vise. Men prøv i Access at lave en forespørgsel, og Rapport > Ny og følg guiden Diagram
Avatar billede kabbak Professor
27. juli 2005 - 22:38 #4
y = Environ("programfiles")
er stien, feks "C:\programmer"
Avatar billede andersbremer Nybegynder
28. juli 2005 - 10:15 #5
Kabbak: jeg forstår ikke helt hvordan jeg skal bruge dit forslag. Jeg har prøvet at indsætte dit bud i min OLEDB forespørgsel på forskellige måder, men kan stadig ikke få det til at virke. Kan du være lidt mere præcis med hvad jeg skal gøre??

Her ser du indholdet af ”forbindelse”, kopieret fra formularen ”Rediger OLE DB forespørgsel”, som jeg får frem ved at vælge ”rediger forespørgsel” i Excel:

Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Programmer\Proficon\Profilyze.mdb;Mode=ReadWrite;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False

Anders
Avatar billede kabbak Professor
28. juli 2005 - 11:44 #6
Jeg troede at det var programmeret i et modul i Excel.

Så skulle din sti se sådan ud
Environ("programfiles") &"\Proficon\Profilyze.mdb"

Hvordan man retter i en OLEDB forespørgsel , ved jeg ikke.


Jeg laver det på denne måde

Sub Makro3()

'
    Range("A1").Select
    With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
        "ODBC;DSN=MS Access-database;DBQ=C:\Documents and Settings\***\Data\div excel\db1.mdb;DefaultDir=" & Environ("programfiles") &"\hba\Data\d" _
        ), Array("iv excel;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;") _
        ), Destination:=Range("A1"))
        .CommandText = Array( _
        "SELECT Forespørgsel1.dato, Forespørgsel1.måned, Forespørgsel1.ÅrUge" & Chr(13) & "" & Chr(10) & "FROM `" & Environ("programfiles") &"\***\Data\div excel\db1`.Forespørgsel1 Forespørgsel1" & Chr(13) & "" & Chr(10) & "ORDER BY Forespørgsel1.dato" _
        )
        .Name = "Forespørgsel fra MS Access-database"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = True
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
Avatar billede kabbak Professor
28. juli 2005 - 11:51 #7
Nå der smuttede noget:

Sub Makro3()

'
    Range("A1").Select
    With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
        "ODBC;DSN=MS Access-database;DBQ=" & Environ("programfiles") & "\Data\div excel\db1.mdb;DefaultDir=" & Environ("programfiles") & "\Data\d" _
        ), Array("iv excel;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;") _
        ), Destination:=Range("A1"))
        .CommandText = Array( _
        "SELECT Forespørgsel1.dato, Forespørgsel1.måned, Forespørgsel1.ÅrUge" & Chr(13) & "" & Chr(10) & "FROM `" & Environ("programfiles") & "\Data\div excel\db1`.Forespørgsel1 Forespørgsel1" & Chr(13) & "" & Chr(10) & "ORDER BY Forespørgsel1.dato" _
        )
        .Name = "Forespørgsel fra MS Access-database"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = True
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
Avatar billede andersbremer Nybegynder
28. juli 2005 - 15:54 #8
Kabbak: Så har jeg løst problemet!!!
Jeg brugte dit modul, dog med modifikation af sidste linie til        .Refresh BackgroundQuery:=True - ellers var der fejlmeldinger.

Tak for hjælpen - det var lige det der skulle til!!!
Læg et svar, og jeg skal belønne dig!
Mvh Anders
Avatar billede kabbak Professor
28. juli 2005 - 23:05 #9
Et svar ;-))

jeg var faktisk ikke sikker på, om det kunne bruges.
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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