Avatar billede Slettet bruger
22. december 2005 - 12:25 Der er 4 kommentarer og
1 løsning

Problem med referencer

Jeg har en database oprettet i Access 2003, hvor der er knyttet referencer op til 'Microsoft Excel 11.0 Object Library'.

Mit problem ligger i at jeg har nogle brugere som ikke kører Office 2003, men derimod 2002, hvor referencen er 'Microsoft Excel 10.0 Object Library'.

Når de forsøger at åbne min database ryger de ind i VBA debug og får at vide der er en missing reference ('Microsoft Excel 11.0 Object Library').

Hvordan får jeg databasen til at genkende hvilken version af office de har installeret og opdatere referencerne til at passe til.

Det skal lige tilføjes at de åbner databasen gennem et link der kopierer databasen ind på deres computer og at de derfor arbejder på en lokal kopi hele tiden.
Avatar billede Slettet bruger
22. december 2005 - 12:26 #1
PS. det skal gerne foregå automatisk uden brugerens indblanding.
Avatar billede terry Ekspert
22. december 2005 - 12:32 #2
The easiest method is to alter the line where you

DIM YourObject as Excel.Application
to
DIM YourObject as Object
Avatar billede Slettet bruger
22. december 2005 - 13:08 #3
Hvis jeg gør det virker følgende kode ikke:

Gammel kode:
Dim xls As New Excel.Application

'Danner eksportfil
Kill "C:\Mappe1.xls"
DoCmd.TransferSpreadsheet acExport, 8, "Rapport - Behandlede bilag", "C:\Mappe1.xls", True
'Gør Excel synlig
xls.Visible = True
xls.Workbooks.Open FileName:="C:\Mappe1.xls"

Ny kode:
Dim xls As Object

'Danner eksportfil
Kill "C:\Mappe1.xls"
DoCmd.TransferSpreadsheet acExport, 8, "Rapport - Behandlede bilag", "C:\Mappe1.xls", True
'Gør Excel synlig
xls.Visible = True
xls.Workbooks.Open FileName:="C:\Mappe1.xls"
Avatar billede terry Ekspert
22. december 2005 - 13:35 #4
Dim xls As Object

Set xls = CreateObject("Excel.Application")
Avatar billede 2dbornot2db Nybegynder
23. december 2005 - 08:49 #5
Jeg har også haft problemet og løst det ved først at fjerne referencen til Excel og dernæst sætte den laveste Excel-reference jeg har kunnet finde (Excel 9.0 var tilstrækkelig lavt). Hvis du laver reference til 9.0 på en maskine der kører Office 2003 (11.0) vil Access selv 'opgradere' til 11.0:

On Error Resume Next

'Fjern referencen

Dim ref As Reference
Set ref = References("Excel")
Application.References.Remove ref

'Tilføj referencen
Application.References.AddFromGuid "{00020813-0000-0000-C000-000000000046}", 1, 3 'Excel

For at være sikker på, at det fungerer korrekt har jeg lagt koden som den allerførste i min autoexec.
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