Discussion:
Access VBA und ocx
(zu alt für eine Antwort)
RoleK
2009-04-01 13:30:09 UTC
Permalink
Hallo,
Ich verwende eine Access-DB mit mswinsck.ocx Steuerelement im Formular.
Seit dem Feb.PatchDay funktionieren die alten OCX nicht mehr.

Ursache:
Die „alten“ OCX wurden durch MS durch ein KillBit gesperrt.
http://accessblog.net/2009/02/kb960715-ie7-is-breaking-access-apps.html
Es gibt neu OCX vom 11.08, die im Updatepack für VB6 enthalten sind.
http://support.microsoft.com/kb/957924/en-us/

Lösung:
Um diese in Access/VBA zu verwenden, musste ich VB6 installieren, damit ich
eine Lizenz hatte um diese OCX zu verwenden.
Nun funktioniert das bei mir wieder, aber nicht auf anderen Rechner.

Frage:
Wie kann ich dieses OCX auf die anderen PC übertragen.

Besten Dank
RoleK
Gunter Avenius
2009-04-01 13:37:54 UTC
Permalink
Hallo RoleK,
Post by RoleK
Ich verwende eine Access-DB mit mswinsck.ocx Steuerelement im Formular.
Seit dem Feb.PatchDay funktionieren die alten OCX nicht mehr.
...

folgende Threads haben das Thema schon thematisiert:
http://groups.google.com/group/microsoft.public.de.access/browse_thread/thread/6669e9235023e63f/fa76e70d33cc93a0?#fa76e70d33cc93a0
http://groups.google.com/group/microsoft.public.de.access/msg/83c80eeb53664711

Gruß
Gunter
--
__________________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com - http://www.AccessRibbon.de
http://www.ribboncreator.de
RoleK
2009-04-01 14:16:42 UTC
Permalink
Hallo Gunter
Post by Gunter Avenius
http://groups.google.com/group/microsoft.public.de.access/browse_thread/thread/6669e9235023e63f/fa76e70d33cc93a0?#fa76e70d33cc93a0
http://groups.google.com/group/microsoft.public.de.access/msg/83c80eeb53664711
Vielen Dank für die Links, habe ich nicht gefunden.
Leider geht das so auch nicht. Ich habe sogar ein kleines Projekt mit dem
neuen OCX in VB6 inkl. Installer erstellt und das geht auch nicht.

Kann es sein, dass diese Lösungen mit VISTA nicht funktionieren?

Besten Dank und Gruss
RoleK
Gunter Avenius
2009-04-01 14:23:06 UTC
Permalink
Hallo RoleK,
Post by RoleK
Post by Gunter Avenius
http://groups.google.com/group/microsoft.public.de.access/browse_thread/thread/6669e9235023e63f/fa76e70d33cc93a0?#fa76e70d33cc93a0
http://groups.google.com/group/microsoft.public.de.access/msg/83c80eeb53664711
Vielen Dank für die Links, habe ich nicht gefunden.
Leider geht das so auch nicht. Ich habe sogar ein kleines Projekt mit dem
neuen OCX in VB6 inkl. Installer erstellt und das geht auch nicht.
Ich habe die Lösungen nicht getestet, da ich die Controls in meinen
Anwendungen nicht einsetze.

Hast Du die ocx Controls richtig registriert?
http://www.avenius.de/index.php?Support:ActiveX_FAQ:12


Gruß
Gunter
--
__________________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com - http://www.AccessRibbon.de
http://www.ribboncreator.de
RoleK
2009-04-02 07:41:01 UTC
Permalink
Hallo Gunter,
Post by Gunter Avenius
Hast Du die ocx Controls richtig registriert?
http://www.avenius.de/index.php?Support:ActiveX_FAQ:12
Danke, aber leider sind die richtig registriert, jedenfalls bin ich in der
Gruppe Administrator und die Rückmeldung von regsvr32 ist "erfolgreich".
Die OCX sind vorhanden und sichtbar in der Auswahl (einfügen ActiveX
Steuerelement) in Access.
Jedoch bekomme ich beim einfügen die Meldung, "keine gültige Lizenz zur
verwendung dieses ....".
Das ist auch so, wenn ich das ActiveX auf meinem VB-Rechner einfüge, da geht
es, da VB6 Lizenz vorhanden.
Öffne ich dieses auf dem nicht VB-Rechner, ist das Steuerelement leer und
die Meldung Lizenz erscheint wieder.

Das war mit den "alten OCX" nicht so, einmal verwendet in einer Anwendung
konnte das OCX mitkopiert und registriert werden, da kam die registrierung
irgendwie mit. (kenne mich da "noch" nicht so aus)

Für weitere Tipps bin ich dankbar.
Gruss
RoleK
Oliver Straub
2009-04-02 10:16:27 UTC
Permalink
Hi,
Post by RoleK
Das ist auch so, wenn ich das ActiveX auf meinem VB-Rechner einfüge, da geht
es, da VB6 Lizenz vorhanden.
Öffne ich dieses auf dem nicht VB-Rechner, ist das Steuerelement leer und
die Meldung Lizenz erscheint wieder.
Das war mit den "alten OCX" nicht so, einmal verwendet in einer Anwendung
konnte das OCX mitkopiert und registriert werden, da kam die registrierung
irgendwie mit. (kenne mich da "noch" nicht so aus)
ich hatte mal vor ein paar Jahren mein Prog. mit dem OCX auf einem anderen
Rechner (xp/a03) getestet und dort war aber das ocx noch nicht registriert,
und es ließ sich auch nicht registrieren. Es kam der Hinweis auf die
fehlende Lizenz. Ich habe dann ein Setup mit dem Office-Developer gemacht,
und damit wurden dann die Rechte übertragen und dann lief alles.

Ich habe VS6 auf meinem Rechner, aber ich habe nicht das Update für VB6
drauf. Bei mir läuft alles wie vor dem KB960715-Update. Ggf. betrifft das
tatsächlich nur A07!?

Ein (Dummy) Setup mit VB6 erstellt, müsste bei Dir die Rechte für das ocx
übertragen. Hast Du das auch richtig ausprobiert?


Gruss
Oliver
Sascha Trowitzsch
2009-04-02 11:06:51 UTC
Permalink
Hi Rolek,
Post by RoleK
Hallo Gunter,
Post by Gunter Avenius
Hast Du die ocx Controls richtig registriert?
http://www.avenius.de/index.php?Support:ActiveX_FAQ:12
Danke, aber leider sind die richtig registriert, jedenfalls bin ich in der
Gruppe Administrator und die Rückmeldung von regsvr32 ist "erfolgreich".
Die OCX sind vorhanden und sichtbar in der Auswahl (einfügen ActiveX
Steuerelement) in Access.
Jedoch bekomme ich beim einfügen die Meldung, "keine gültige Lizenz zur
verwendung dieses ....".
Das ist auch so, wenn ich das ActiveX auf meinem VB-Rechner einfüge, da geht
es, da VB6 Lizenz vorhanden.
Öffne ich dieses auf dem nicht VB-Rechner, ist das Steuerelement leer und
die Meldung Lizenz erscheint wieder.
Das war mit den "alten OCX" nicht so, einmal verwendet in einer Anwendung
konnte das OCX mitkopiert und registriert werden, da kam die registrierung
irgendwie mit. (kenne mich da "noch" nicht so aus)
Also das korrekte Verhalten solcher OCXe mit Lizenzinformation ist schon, dass
man ein Programm, welches es einsetzt, damit zwar ausführen kann, jedoch das
Control nicht im Entwurf bearbeiten oder neu einsetzen. Das ist ja schließlich
der Sinn der Sache!
Falls das auf einem Rechner *ohne* VB6 dennoch geht, dann ist zu vermuten, dass
durch irgendein anderes Programm die Lizenzinfos in die Registry eingetragen
wurden und es damit Entwicklerstatus bekam.

Nun könnte man allerlei Empfehlungen geben, wie das Teil dennoch auf dem
Zielrechner unter Access funktionieren kann, wie etwa Olivers Setup-Methode, am
einfachsten ist allerdings, die Lizenz einfach auf den Zielrechner zu
übertragen. Wenn man VB6 erworben hat, dann sollte das gegen keine Bestimmungen
verstoßen.
Dazu einfach das OCX auf dem Entwicklerrechner unter HKEY_CLASSES_ROOT\Licenses
anhand der GUID suchen, und den Zweig in eine reg-Datei exportieren. Die auf dem
Zielrechner wieder einspielen.
Für das MSWinsock sollte das der Zweig mit der GUID sein:

2c49f800-c2dd-11cf-9ad6-0080c7e7b78d

Ciao, Sascha
RoleK
2009-04-02 13:26:01 UTC
Permalink
Hi Sascha,
Post by Sascha Trowitzsch
Dazu einfach das OCX auf dem Entwicklerrechner unter HKEY_CLASSES_ROOT\Licenses
anhand der GUID suchen, und den Zweig in eine reg-Datei exportieren. Die auf dem
Zielrechner wieder einspielen.
2c49f800-c2dd-11cf-9ad6-0080c7e7b78d
Du bist mein Held, das funktioniert :-)

Ich hatte das auch irgendwo mal gelesen, bin dann aber daran gescheitert,
die entsprechende GUID zu finden.
Wie finde ich diese selber raus, ist sicher ganz einfach?

Danke nochmals und
Ciao Role
Sascha Trowitzsch
2009-04-02 14:51:58 UTC
Permalink
Hi Rolek,
Post by RoleK
Hi Sascha,
Post by Sascha Trowitzsch
Dazu einfach das OCX auf dem Entwicklerrechner unter
HKEY_CLASSES_ROOT\Licenses
anhand der GUID suchen, und den Zweig in eine reg-Datei exportieren. Die auf dem
Zielrechner wieder einspielen.
2c49f800-c2dd-11cf-9ad6-0080c7e7b78d
Du bist mein Held, das funktioniert :-)
Ich hatte das auch irgendwo mal gelesen, bin dann aber daran gescheitert,
die entsprechende GUID zu finden.
Wie finde ich diese selber raus, ist sicher ganz einfach?
Hm, dachte ich auch erst. Irgendwann wusste ich's auch mal, hab's aber
vergessen. ;-)
Ich ging erst davon aus, dass diese GUID identisch wäre mit der CLSID des
Controls. Ist aber offenbar nicht der Fall. :-(
Deshalb griff ich zum Registry Monitor und hab geschaut, auf welche Keys beim
Einfügen eines Controls in ein Formulars zugegriffen wird.
*Das* ist also nicht ganz so einfach.

Es steht aber auch im OCX selbst. Die OCX-Datei z.B. in Notepad öffnen und nach
dem String "licenses" suchen. Direkt vor licenses steht dann die GUID in
Unicode.

Möchte bei all der Hackerei aber doch erwähnen, dass mir das alles nicht als
superlegal erscheint. Besitz von VB6 ist die Mindestvoraussetzung. (OK, ohne das
kommt man ja auch gar nicht an den Reg-Schlüssel.)

Ciao, Sascha
RoleK
2009-04-03 07:32:09 UTC
Permalink
Hi Sascha,
Post by Sascha Trowitzsch
Hm, dachte ich auch erst. Irgendwann wusste ich's auch mal, hab's aber
vergessen. ;-)
OK, dachte ich mir doch, ganz einfach ;-)

Besten Dank für deine Hilfe
Ciao, RoleK

Oliver Straub
2009-04-01 16:14:22 UTC
Permalink
Hi,
Post by RoleK
Kann es sein, dass diese Lösungen mit VISTA nicht funktionieren?
was mich an der Sache interessieren würde ist, warum ich keine Probleme mit
dem OCX habe. WinXP mit dem KB960715-Update, IE7 und A02. Ich habe das
Control im Formular und benutze keine Verweise. Habe es gerade getestet und
es läuft wie immer.


Gruss
Oliver
RoleK
2009-04-02 07:48:11 UTC
Permalink
Hallo Oliver,
Post by Oliver Straub
was mich an der Sache interessieren würde ist, warum ich keine Probleme mit
dem OCX habe. WinXP mit dem KB960715-Update, IE7 und A02. Ich habe das
Control im Formular und benutze keine Verweise. Habe es gerade getestet und
es läuft wie immer.
Also ich habe ja nur Probleme auf Rechner ohne VB6.
Ev. hast du das auch noch installiert.
(Ich habe Vista, IE7 und A07)

Gruss
RoleK
Loading...