Toon posts:

[access] activex object niet gevonden

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik een activex object voor SMS functies in een formulier van een access database. Dat op zichzelf werkt perfect, maar als ik het database van een ander computer wil gebruiken krijg ik bij het openen van het formulier het bericht van 'object niet gevonden' of iets dergelijks.

Ik weet dat je op elk computer die activex object dll bestand) geregistreerd moet worden door regsvr32.exe aan te roepen.

Ook nadat ik dit heb gedaan werkt het niet. Krijg dezelfde mening. Maar nu kan ik wel die activex object opnieuw in die bepaalde formulier invoegen. Als ik dan die active x object opnieuw hebt ingevoerd en dezelfde naam heb gegeven dat de oorspronkelijke active x object had (omdat er VB code moet worden uigevoerd met die activex object), de oorspronkelijke object moet ik dan natuurlijk verwijderen (twee objecten kunnen niet dezelfde naam hebben), dan wordt die formulier (en de activexobject) wel uitgevoerd.

Mijn vraag is dus, waarom is registreren met het aanroepen van regsvr32 niet genoeg en moet ik handmatig nog eens die activex object invoegen. Dit wordt een applicatie voor leken dus die moeten dit niet gaan doen.

Hangt het soms af dat de plaats van die activex object (dll bestand) op verschillende plaatsen staat op de verschillende computers? Ik heb dat registreren verschillende keren getest en dan onthoudt hij steeds de locatie waarbij hij het laatst is geregistreerd.

Verder heb ik die database in acces XP gemaakt en dan naar 97 geconverteerd en daarin getest. Maakt dat nog wat uit?

Kon trouwens de database niet openen, access crashte de hele tijd bij het openen van de database, maar dat ligt mischiena aan de brakke schoolversie. :)

Ik maakte dan een lege database en voegde daarin de nodige formulieren en tabellen handmatig in, die nodig zijn voor deze test. Dat moet opzichzelf ook niet uitmaken, toch?

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Access dient zelf het object weer te vinden dus als die geregistreed is in een andere directorie, dan hoort dat geen probleem te geven eigenlijk.

Mischien kun je dan via de code opnieuw de verwijzing toevoegen.

Zoiets als
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if err.number = 214 '(ofzoiets) then
   MaakRefGoed
end if

Public Function MaakRefgoed ()

Dim r As Reference, Dim r1 As Reference,Dim s As String

   For Each r In Application.References
       Set r1 = r
       s = r1.FullPath
       References.Remove r1
       References.AddFromFile s        
   Next

End Fuction

of iets in die geest.

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 08:37

pistole

Frutter

het lijkt er m.i. op dat je misschien nog meer objecten moet registreren.

Ik frut, dus ik epibreer


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:14

Crazy D

I think we should take a look.

Op donderdag 21 maart 2002 17:19 schreef Spooky het volgende:
Mijn vraag is dus, waarom is registreren met het aanroepen van regsvr32 niet genoeg en moet ik handmatig nog eens die activex object invoegen. Dit wordt een applicatie voor leken dus die moeten dit niet gaan doen.
Als in je originele database de reference goed stond, en je hebt het component geregt voordat je Access opent, zou het gewoon moeten werken. Mjah blijkbaar niet dus.

Wat je kan proberen is met CreateObject een instance aan te maken. Dus iets als
Dim objSMS As Object
Set objSMS = CreateObject("SMSDll.CSms")
In VB kun je op die manier van ActiveX objecten gebruik maken zonder reference in je project (zolang de dll uiteraard wel geregt is), het lijkt met dat dat in Access ook moet kunnen.

Exact expert nodig?