Meine öffentlichen Variablen verlieren ihren Geltungsbereich, wenn die Ausführung in eine Unterkomponente in einem anderen Modul verschoben wird. Ich kann nicht verstehen, warum das passiert.Öffentliche Variable überschreitet den Gültigkeitsbereich
Modul A:
Option Compare Database
Public db As DAO.Database
Public xlApp As Excel.Application
Sub Main()
Dim db As DAO.Database
Set db = CurrentDb
ProcessFiles ' upload the data from the report files
AppendToPentana ' transfer the data from the main tables to the pentana export table
ProduceFinalExport ' export the final data to Excel
End Sub
Modul B:
Sub ProcessFiles()
Dim recSet As Recordset
' open a recordset containing keywords to look for in the file names to identify the area
Set recSet = db.OpenRecordset("tblFiles")
' rest of code
End Sub
In Modul B die Variable db hat auf Nothing festgelegt worden, und ich bekomme ein Objekt ref Fehler. Ich habe versucht, die ältere 'Global'-Deklaration anstelle von' Public 'mit demselben Ergebnis zu verwenden.
Öffentliche Variablen werden häufig verwendet, ich verstehe nicht, was hier falsch läuft.
'Global' ist * genau * das selbe wie' Public' (außer es kann nicht überall 'Public' verwendet werden). Das Aufkommen von "Public" machte "Global" vor ein paar Jahrzehnten obsolet. –