Avatar billede hermanlaksko Nybegynder
15. maj 2004 - 13:16 Der er 9 kommentarer

Slet referencer i access markeret "missing" (Broken) via VBA

Jeg ser jævnligt hvis jeg går fra fx. en maskine med Excel ver. 9.0 til en med en ver. 10.0 opdateres ref. uden problemer.
Men flyttes MDB med en ver. 10.0 ref. til en 9.0 version "knækker filmen" og dermed referencen.
Jeg kan slette en reference så længe denne ikke er markeret som "missing" med koden:

Dim ref As Reference, Svar
On Error Resume Next
Set ref = References!Excel
Access.References.Remove ref
etc.

Og det er jo fint men jeg ville også gerne kunne slette en ref når den ER markeret som "Missing", kan nogen hjælpe her ?

Med venlig hilsen
Herman
Avatar billede terry Ekspert
15. maj 2004 - 13:44 #1
If you move up from one version of Office to another then Access can see that it has to change to a new version in the references. But if you move down it can not.

You could try altering your code so that you dont use early binding

(Dim MyExcelObj as Excel.Application)
but instead
Dim MyExcelObj as Object

then you dont need a reference!
Avatar billede hermanlaksko Nybegynder
15. maj 2004 - 16:03 #2
Hi Terry
Thx for your reply, however I am using the "Object"-version but this code insists on the reference:

Dim Sel As Range
    On Error Resume Next
    If Forms!GrafTilExcel!Enkelt = False Then
        Set Sel = MyXL.ActiveWorkbook.Sheets(CNavn).Range("A" & Ant)
        Do While Not (Sel = "")
            .SeriesCollection(Ant - 2).Name = Sel
            Ant = Ant + 1
            Set Sel = MyXL.ActiveWorkbook.Sheets(CNavn).Range("A" & Ant)
        Loop
Etc.
Avatar billede hermanlaksko Nybegynder
15. maj 2004 - 16:17 #3
Hi Terry

Using the term: Dim Sel As Object iso: Dim Sel As Range seems to solve the problem ....

As it did solve the imidiate problem it did not solve the initial problem of how to "kill" a missing link.
I still think that I owe you 60 points for directing me in the right direction (so to speek). How I give you the points without closing the qouestion I do not know.... I will try to figure that one out to ;-)
Thx Terry
Avatar billede terry Ekspert
15. maj 2004 - 17:39 #4
You dont need to give me any points until your happy with the answers, then you cangive me, or others what ever you think when you close the question.

I'll have a look around to see how to solve your original problem.
15. maj 2004 - 23:18 #5
Herman-> Du kan slette alle "Missing" references således:

    Dim n As Long
    For n = 1 To Application.References.Count
        If Application.References(n).IsBroken Then
            Application.References(n).Collection.Remove Application.References(n)
        End If
    Next n

/Thomas
Avatar billede hermanlaksko Nybegynder
16. maj 2004 - 08:02 #6
Hej Thomas
Tak for din kode, jeg har tidligere prøvet lignende koder, egne og ting jeg har fundet på nettet, .... uden held.
Jeg kan sagtens fjerne "ikke missing" referencer, men idet en ref er markeret som missing bliver den ligesom "låst" og kan IKKE fjernes i hvertfald ikke i A2K, desværre heller ikke med din kode.
Og jeg forstår ikke hvorfor :-) gør du ?
/Herman
16. maj 2004 - 08:45 #7
hmm, jeg har selv brugt koden flere gange uden problemer.
Du skal sikre dig, at koden køres som det allerførste - inden applikationen kommer rigtig i gang (f.eks. i Autoexec).
Avatar billede hermanlaksko Nybegynder
18. maj 2004 - 08:27 #8
Hej Thomas
Præcis min fremgangs måde..... men den vil ikke :-)
Hvad kan jeg gøre galt??
Function ChkRefExcel()
Dim Ref As Reference, Svar, N As Long
On Error Resume Next
   
For N = 1 To Application.References.Count
    If Application.References(N).IsBroken Then
        Application.References(N).Collection.Remove Application.References(N)
    End If
Next N
'Jeg har også prøvet denne:
Set Ref = References!Excel
Access.References.Remove Ref
References.AddFromGuid "{00020813-0000-0000-C000-000000000046}", 1, 3 'Excel ver 9

Exit Function
18. maj 2004 - 13:20 #9
hmm, jeg har ikke rigtig mulighed for at afprøve det for tiden, da jeg selv benytter ver. 2003 på begge mine maskiner. Så det er svært for mig, at simulere et eks.
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