Verweise: Unterschiede VBA/WSH

18/02/2010 - 09:45 von Wolfgang Badura | Report spam
Hallo NG-Teilnehmer!

Ich möchte in einem Skript einzelne Verweise erfassen, eventuell löschen und
neu einbinden.
Zuerst habe ich in einer meiner DB´s eine Funktion verfaßt, die das in der
aktuiellen Datenbank kann.
Um alle DB´s in einem Verzeichnis in einem Rutsch zu bearbeiten dachte ich
an eine Umsetzung in ein Skript.
Nun stellt sich aber heraus, daß da anscheinend ein Unterschied zwischen VBA
und dem WSH besteht.

Der Code lautet im Skript probeweise:
Set objAccess = CreateObject("Access.Application")
objAccess.OpenCurrentDatabase MDB ' MDB ist der voll ausqualifizierte
Dateiname der DB
For Each objRef In objAccess.VBE.ActiveVBProject.References
fsoLogFile.WriteLine " " & objRef.Name & " (" & objRef.FullPath &
")"
Next

In VBA lautet der Code
For Each objRef In Application.VBE.ActiveVBProject.References
RSVerweise.AddNew
' hier folgt das Belegen einer Tabelle "Verweise"
RSVerweise!Verweis = objRef.Name
RSVerweise!Pfad = objRef.FullPath
RSVerweise.Update
Next objRef

Der Unterschied ist die Anzahl der Verweise
Wàhrend im Skript 16 Verweise erfaßt werden, sind es in VBA 18!

Auffàllig ist dazu (im Skript):
objAccess.VBE.ActiveVBProject.References.Count ergibt 16 Verweise
objAccess.References.Count ergibt die auch in VBA ermittelte Anzahl von 18
Verweisen.

Auf diese 18 Verweise kann ich aber nicht mit
For iX = 1 To objAccess.References.Count
Set objRef = objAccess.References.Item(iX) ' Fehler???
Next
zugreifen.

Vielleicht kann mir jemand auf die Sprünge helfen.
Wahrscheinlich übersehe ich etwas Entscheidendes.

Mit bestem Dank

Wolfgang
 

Lesen sie die antworten

#1 Wolfgang Badura
18/02/2010 - 10:02 | Warnen spam
Hallo!
Ich muß eine Ergànzung anbringen:
Beim Ausführen des VBA-Codes gibt es zwei verschiedene Anzahlen von
Verweisen:

Nach einem Neustart von Access, Öffnen der DB und Ausführen eines Makros
AusführenCode Get_References("Verweise")
werden 16 Verweise gefunden.
Führe ich denselben Code im Entwurfsfenster des Modules mit
? Get_References("Verweise")
aus ergibt das 18 Verweise.
Schließe ich VBA und führe nochmals das obige Makro aus
ergibt das nun auch 18 Verweise.

?????????

Mit bestem Dank

Wolfgang

Ähnliche fragen