Avatar billede hjbe Nybegynder
30. juni 2005 - 10:58 Der er 7 kommentarer og
1 løsning

Opdatering excel fra access

Hej

Jeg har lavet en lille funktion der åbner et excel ark.
Arket henter dataene fra DB'en og åbner fint.
I Excell kan man via external datarange properties sætte den til at hente dataene hver gang arket åbnes.

Problemet er at det kun er brugere der har adgang til db'en der skal ku' gøre det.

Spørgsmål:
Kan man I Access sætte Excel til at opdatere datahentning, så jeg ikke behøver at ha' funktionen slået til i Excel.

Så når man mailer arket videre vil den indeholde de data der var der, og ikke prøve at opdatere sig selv fr db'en.

Håber det forstås.

Funktion til at åbne Excel:

Option Compare Database
Option Explicit

Declare Function ShellExecute Lib "shell32.dll" Alias _
        "ShellExecuteA" (ByVal Hwnd As Long, _
        ByVal lpOperation As String, _
        ByVal lpFile As String, _
        ByVal lpParameters As String, _
        ByVal lpDirectory As String, _
        ByVal nShowCmd As Long) As Long

Declare Function GetDesktopWindow Lib "user32" () As Long
Sub EXPORT()
Dim StartDoc As Long
  StartDoc = ShellExecute(GetDesktopWindow(), "Open", "c:\ugerapport.XLS", "", "C:\", 1)
End Sub
Avatar billede terry Ekspert
30. juni 2005 - 13:11 #1
I dont know much at all about Excel but I am guessing that you have a macro which runs when the Excel shee opens.

Access has no way of knowing when or when NOT to update so I think this logic will need to be in your Excel macro.

You could maybe test for user name and if it is you then update, otherwise do not update.

I dont know if it is possible to start Excel with parameters. If it is then it may be possible to start Excel with paramers which starts the macro. Then if you send the XLS file in a mail it will not have these paramaters and will therefore not run the macro.

It is also possible from Access to Open Excel and run a macro, so you could actually start the update from Access when needed.
Avatar billede supertekst Ekspert
30. juni 2005 - 13:17 #2
Måske:

Der kan i Access oprettes en makro med navnet AutoExec. Denne kan kalde et modul, der overføre data til Excel-arket. Dette kræver dog at der i modulets VBA aktiveres en reference til Excel.

Hvis databasen er beskyttet med adgangskode - så kan regnearket kun opdateres af disse.
Avatar billede terry Ekspert
30. juni 2005 - 13:25 #3
The code for updating is already made in Excel, so it would, in my opinion be easier to start a macro in Excel FROM Access, or some other way run the macro in Excel.
Avatar billede hjbe Nybegynder
30. juni 2005 - 13:35 #4
Ja hvis man ku' starte en Macro fra Access der opdaterede data.
jeg har prøvet at lave en lille en.

Selection.QueryTable.Refresh BackgroundQuery:=False

Den virker, men hvordan får jeg den startet fra Access ?
Avatar billede terry Ekspert
30. juni 2005 - 14:12 #5
Avatar billede terry Ekspert
30. juni 2005 - 14:13 #6
Avatar billede hjbe Nybegynder
30. juni 2005 - 14:23 #7
Thanks Terry.
That works !
:-)
Avatar billede terry Ekspert
30. juni 2005 - 14:39 #8
selv tak, great to hear it works :o)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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