Du behøver ikke referere til noget bibliotek for at skrive CreateObject("Scripting.FileSystemObject")
Men når du bevæger dig inde i VB så er det en fordel at lave den reference som peter skriver. Det giver dig nemlig mulighed for at lave early binding, samt en masse visual hjælp...
Så kan du nemlig skrive
Dim FSO as FileSystemObject set FSO = new FileSystemObject
ordet private betyder blot at du ikke kan tilgå det fra andre moduler af. Det har intet med denne sag at gøre - desuden om du skriver Dim FSO eller Private FSO i en formular så har det samme betydning.
1) Jeg bør tilknytte Microsoft scripting runtime, men skal ikke 2) Priv ate FSO As scripting.FileSystemObject er en lokal variabel mens set FSO = createObject("Scripting.FileSystemObject") er global ?
Så mangler jeg bare at finde ud af hvornår man skal tilknytte et library og hvordan man generelt finder ud af hvilket library man har brug for
Jeps, men private kan kun stå udenfor og så er den lokal for det kodemodul du står i. Dim kan stå inde i en procedure og det gør den til lokal for proceduren. Hvis du skal have en global så skal du skrive public
AHA ! man kan altså ophøje en variabel til at være global selvom den er erklæret i en funktion. Jeg har svært ved at forestille mig at det skulle være smart ...
Men tilbage til mit egentlige spørgsmål: hvornår man skal tilknytte et library og hvordan man generelt finder ud af hvilket library man har brug for
Nej nej, det var forkert forstået... hvis du bruger en public variabel, så skal den stå udenfor en funktion/procedure.
Du skal tilknytte et library når du skal bruge nogle funktioner du ikke som standard har liggende i VB. Du skal eksempelvis tilføje Scripting Runtime når du skal bruge FileSystemObject. Hvis du vil udnytte Erarly binding samt de smart features der er i forbindelse med Udviklings miljøet. Alternativt så skal du lade være med at bruge reference og så udføre late binding og undvære hjælpen fra VB IDE'et
Eksempel: (med reference)
dim FSO as FileSystemObject set fso = new FileSystemObject
prøv så at sætte . efter fso, så kan du se den hjælp der kommer frem om FSO.
uden reference:
dim fso set fso = createObject("Scripting.Runtime")
OK public og private bruger man udenfor procedure og funktioner så man kan gøre det muligt/umuligt at tilgå variablerne fra andre moduler. Det er også meget mere logisk end det jeg troede ...
Kan man når man ved at man skal bruge FileSystemObject slå op et eller andet sted og finde ud af at det er Scripting Runtime man skal bruge for at få de ekstra features ?
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.