Fehlender Verweis auf tlbinf32.dll

Nov 6, 2012 at 10:39 PM

Hallo zusammen,

ich habe den Vortrag auf der AEK15 gehört, und würde das Tool gerne mal ausprobieren.

Ich verwende Access2007 auf WinXP in einer eigenen VM.

Beim Start von NetView_Playground.MDB kommt gleich der Hinweis auf die fehlende tlbinf32.dll.

Was fehlt bei meiner Installation?

Vielen Dank im voraus für eine Hilfestellung.

matzenk

 

 

 

Nov 8, 2012 at 10:01 AM

Hallo und Willkommen,

Ich hab das Problem mit der fehlenden tlbinf32.dll bei mir nachvollziehen können. Es besteht unabhängig von der Windows und Access/Office Version.

Diese Library ("TypeLib Information" bei MS auch TLI genannt) wird anscheinend mit Visual Studio installiert. In meinen VMs mit puren Office Installationen fehlt diese auch. Leider ist die playground.mdb (soweit ich gesehen hab, nur die Formulare, nicht der Rest des codes) von dieser TLI abhängig.  Auf meinem Entwicklungsrechner mit Visual studio liegt die dll unter C:\Windows\SysWOW64. Also ich hab' s bei mir jetzt nicht ausprobiert, aber die dll in die VM zu kopieren und den Verweis neu zu setzten, sollte eigntlich helfen. (Falls kein VS vorhanden ist müsste man die dll eigentlich irgendwo in den Tiefen der MS WebSeiten finden können....)

Have fun & Gruß

rokos

Nov 9, 2012 at 8:32 AM

Hallo zusammen,

leider komme ich nicht weiter...

Ich habe eine VM neu aufgesetzt:
XP mit SP2 (solle eigentlich nicht das Problem sein!)
VB6 mit SP6
Access 2007 mit SP3  12.0.6607.1000
TLBINF32.dll (wurde mit VB6 installiert - Danke für den Hinweis - und mit SP6 aktualisiert auf Version 1.1.97.82 vom 23.02.2004
Auch die aus dem Netz gezogene und drüberkopierte Version 1.1.88.4 brachte keine Änderung

Vorgehen:
1. Öffnen von Netview.mdb
2. Beim Starten des Formulares NetViewControl stürzt Access nach einem <F8> an folgender Stelle ab.

 Private Sub InitializeBorderLines()
   m_OneHorizontalPixel = NetView.ScreenInfo.HorizontalPixelToTwips(1)
   m_OneVerticalPixel = NetView.ScreenInfo.VerticalPixelToTwips(1)
  
   With Me.linTopBorder
      .Left = 0
      .Top = m_OneVerticalPixel
      .Height = 0
   End With
  

Auch ein \Decompile, ein neues Einbinden des Verweises, das Erstellen einer eigenen Anwendung
mit einbinden des Controls in ein Subformular bringt keine Änderung.


Viele Grüße,
matzenk

Nov 9, 2012 at 10:35 AM
Edited Nov 9, 2012 at 10:51 AM

Hi,

also an Versionskonflikte mit einer Dll hab' ich doch jetzt glatt gar nicht gedacht ( Stupid me ;-) ). Also bei mir (Win7, VS 2010, Office 2010) liegt die tlbinf32.dll in dieser Version vor:

Dateiversion: 1.1.81.69 / Produktversion: 6.00.8169 / 27.2.2012

Ich werd's am Wochenende einmal in meiner VM mit Office 2007 ausprobieren. Bis dann

Robert

Ps @Paul: Eigentlich sollte das Control ja gar keine Abhängigkeit zu dieser Dll haben, oder? Aber auch bei mir stürzt Access ab, wenn ich in der Netview.mdb den Verweis einfach entferne (Compiliern geht dann noch gut aber nach dem Schließen der VBA-IDE stellt Access die Arbeit ein).

Nov 9, 2012 at 12:16 PM
Edited Nov 9, 2012 at 12:20 PM

Hi!

Ich hatte gerade Gelegenheit auf meinem neu aufgesetzten Windows 8 mit Visual Studio 2010 und 2012 sowie Office 2013 zu testen. Auch dort fehlt die Datei.

Das Control selbst braucht die Bibliothek nicht.

Dass die Referenz drinnen geblieben ist, ist ein Fehler im Deployment, weil in der Anleitung hab ich's korrekterweise vermerkt ([How to Create a New Release]). Ich werde das beim nächsten Release (hoffentlich) berücksichtigen.

Für den Playground ist sie deshalb drin, weil die eingebaute Alternative VBA.CallByName  Fehler in der aufgerufenen Funktion nicht weitergibt. Wir könnten den Playground dahingehend ändern dass er die TLI per Late-Binding verwendet und als Fallback auf VBA.CallByName zurücksteigt. Ich hab einen Issue dafür eingetragen (http://accessnetview.codeplex.com/workitem/1402).

 

@Robert: Mein Access 2013 ist beim Beenden nicht abgestürzt.

Nov 12, 2012 at 12:03 PM
Edited Nov 12, 2012 at 12:05 PM

Hallo an alle,

Ich hatte jetzt Zeit mit meinen VMs herumzuspielen. Dabei ist folgendes herausgekommen:

1. Unter Access 2007 bekomme ich den selben Absturz wie von matzenk beschrieben. Das hat gar nix mit der fehlenden TLI zu tun. Das Formular NetViewControl hat anscheinend ein Problem mit den enthaltenen Controls. Wenn man im code die Zeile mit dem Me.linTopBorder durch Me.Controls.Item(851) ersetzt, dann kommt man im code über diese Zeile drüber (Ich hab dazu das issue  http://accessnetview.codeplex.com/workitem/1404 geöffnet). Ich denke im Vortrag wurde das erwähnt, dass die Anzahl der möglichen Controls von Version zu Version verschieden ist. Wahrscheinlich geht's deswegen derzeit nur mehr in >= Access 2010.

2. In der VM mit  reinem Windows 7 und Office 2010 hab ich den Playground so zum funktionieren gebracht:

- tlbinf32.dll nach C:\Windows\SysWOW64 kopiert.
- in einem cmd fenster mit administratorrechten ausführen:
regsvr32 tlbinf32.dll
- NetView_playground.mdb geöffnet
- Fehlenden Link durch meine version der .dll ersetzt
- Formular frmPlaygroundEmbedded öffnen und weiter wie unter http://accessnetview.codeplex.com/wikipage?title=Playing%20Around%20with%20NetView&referringTitle=Documentation beschrieben...

Feb 9, 2013 at 10:29 PM
Edited Feb 9, 2013 at 10:43 PM
rokos wrote:
Hallo an alle, Ich hatte jetzt Zeit mit meinen VMs herumzuspielen. Dabei ist folgendes herausgekommen: 1. Unter Access 2007 bekomme ich den selben Absturz wie von matzenk beschrieben. Das hat gar nix mit der fehlenden TLI zu tun. Das Formular NetViewControl hat anscheinend ein Problem mit den enthaltenen Controls. Wenn man im code die Zeile mit dem Me.linTopBorder durch Me.Controls.Item(851) ersetzt, dann kommt man im code über diese Zeile drüber (Ich hab dazu das issue  http://accessnetview.codeplex.com/workitem/1404 geöffnet). Ich denke im Vortrag wurde das erwähnt, dass die Anzahl der möglichen Controls von Version zu Version verschieden ist. Wahrscheinlich geht's deswegen derzeit nur mehr in >= Access 2010.
Mit der aktuellen Release (http://accessnetview.codeplex.com/releases/view/96137) befinden sich im Formular nur mehr weniger als 750 Steuerelemente. Damit funktioniert es auch mit Access 2007 wieder.