Toon posts:

[VB]+[Access]OCX aanroepen vanuit module

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een eigen OCX gemaakt en wil deze aanroepen vanuit een module.

Als ik de ocx op een formulier plaats kan ik hem gewoon gebruiken en doet ie wat ie moet doen.
Als ik de OCX aanroep via een module geeft ie een fout (91 Objectvariable of blockvariable is niet ingesteld)

code:
1
2
Dim myVar As Slot.security
myVar.Functie1 "test"


Volgens mij moet ik het "Set" statement nog gebruiken, maar ik heb geen flauw idee waar ik naar moet verwijzen.

De lijst met methodes worden wel gewoon weergegeven en er komt geen fout bij het compileren.

Mis ik nog iets in mijn OCX file waaraan ik moet referen? :?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 17-05 17:19
Als je een ActiveX dll hebt gemaakt, kun je met

Visual Basic:
1
Set b = new ProjectNaam.ClassNaam


een nieuw object van je publieke klasse maken.

Een ActiveX control staat op je formulier en maakt op die manier zelf een instantie aan.

Een ActiveX control die niet op een formulier staat, hoort een ActiveX dll te zijn :)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
Dat werkt perfect zo.
Tnx _/-\o_

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Even ter info: je kunt natuurlijk ook dit doen:
Visual Basic .NET:
1
Dim myVar As new Slot.security

My personal website


  • DaRace
  • Registratie: Juni 2001
  • Laatst online: 03-10-2023
OZ-Gump schreef op dinsdag 23 november 2004 @ 09:59:
Even ter info: je kunt natuurlijk ook dit doen:
Visual Basic .NET:
1
Dim myVar As new Slot.security
Dit is niet de mooiste manier. Er zit iig in vb6 een bug die variabelen die op deze manier gedeclareerd zijn nooit meer vernietigd. (Dus gelijk maken aan nothing heeft niet het effect dat je verwacht). Ik weet niet hoe dit in access gaat, maar ik vermoed hetzelfde

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

DaRace schreef op dinsdag 23 november 2004 @ 10:03:
[...]


Dit is niet de mooiste manier. Er zit iig in vb6 een bug die variabelen die op deze manier gedeclareerd zijn nooit meer vernietigd. (Dus gelijk maken aan nothing heeft niet het effect dat je verwacht). Ik weet niet hoe dit in access gaat, maar ik vermoed hetzelfde
Volgens mij heeft dat te maken met de plaats waar je het ding declareert? Als je hem binnen een sub of function gebruikt en hij raakt buiten scope, dan zal hij toch gewoon gekilled worden?

Wist trouwens niet dat daar een bugje in zat ... Weer iets geleerd vandaag ;)

My personal website


  • DaRace
  • Registratie: Juni 2001
  • Laatst online: 03-10-2023
voor zover ik weet is de manier :
Visual Basic .NET:
1
2
dim myVar As Slot.security
set myVar = new Slot.security

anders loop je tegen bovenstaand probleem aan, ongeacht waar de variabele gedeclareerd is (is dus erg verneukeratief, je denkt dat je alles netjes opruimt, maar het is niet zo)

edit: OZ-gump, je hebt helemaal gelijk, new weggehaald uit dim statement

[ Voor 13% gewijzigd door DaRace op 23-11-2004 10:17 ]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

DaRace schreef op dinsdag 23 november 2004 @ 10:10:
voor zover ik weet is de manier :
Visual Basic .NET:
1
2
dim myVar As new Slot.security
set myVar = new Slot.security

anders loop je tegen bovenstaand probleem aan, ongeacht waar de variabele gedeclareerd is (is dus erg verneukeratief, je denkt dat je alles netjes opruimt, maar het is niet zo)
Maar dan zonder de new bij de Dim neem ik aan ;)

My personal website

Pagina: 1