Thomas Teufl

Knowledgebase

Archive for the ‘Programmierung’ Category

Office XP Web Components defekt

Ein Update, das Microsoft (anscheinend vom 30. April 2007 an) verteilt, zerstört die “Microsoft XP Office Web Components”. Es äußert sich darin, dass daran gebundener Office-VBA-Code mit der vielsagenden Meldung “‘Microsoft XP Office Web Components’ nicht gefunden. Datei OWC10.DLL nicht vorhanden.”.

Die Datei ist aber nach wie vor vorhanden (liegt in ‘C:\Programme\Gemeinsame Dateien\Microsoft Shared\Web Components\10′). Aber die Version ist ziemlich alt: v10.0.2621.0 vom 23.02.2001. Ersetzt man diese wieder durch eine aktuelle v10.0.6765.0 läuft wieder alles.

MS SOAP

Wie ich schon einmal festgestellt habe, gibt es mit den MS SOAP-Client immer wieder mal Probleme. Die neueste Erkenntnis: Das Ding schert sich nichts um die WSDL! (weiterlesen…)

Mit der Maus durch VBA scrollen

Für alle die VBA programmieren und ohne dem MS Intelli-Maustreiber auskommen (müssen/dürfen) und sich schon immer geärgert haben, dass das Scrollrad der Maus hier nicht funktionieren will:
Bei mir setze ich seit einigen Jahren das Tool VBScroll ein. Damit ist ein scrollen mit dem Mausrad durch den VB-Code wie mit dem MS-Treiber möglich. Es ist klein, handlich, stabil und unauffällig.

Folgendes Problem galt es zu lösen:

Windows hat die Möglichkeit, per Dateieindung je ein Prgramm zum Öffnen, Bearbeiten, Drucken usw. zuzuweisen. Wenn sich nun herausstellt, dass ein anderes Prgramm für diese Tätigkeit besser geeignet wäre, muss man all diese Einstellungen abändern. Einfacher wäre es, Windows zu sagen, in Zukunft startest du statt Programm X einfach Programm Y.

Und das geht! (weiterlesen…)

XML bei MS: “Xtra Mehr Last”

Wer für MS-Umgebungen programmiert, muss zum einen oder anderen Male auf einen Wizard (nicht of Oz) zurückgreifen, um dem Tool die benötigte Information herauszukitzeln. So habe auch ich das Support-Package für XML und SOAP installiert, um mit MS Office XP auf versch. Webdienste zugreifen zu können. Dem Assistenten gibt man die URL des WSDL-Files und sagt ihm, welche Dienste man nutzen möchte. Meist kommt dabei das Richtige heraus.
So einfach gings auch bei mir. Es wird eine Klasse erstellt, die man in der entspr. Funktion auf eine Variable definiert und mit Übergabeparametern aufruft. Alles ganz normal. Bis auf die Kleinigkeit: ein Rückgabewert des Webservices war nicht mit dabei. Ich habe verdammt lange gesucht, mich mit dem Hersteller des SOAP-Servers in Verbindung gesetzt, dem Anbieter des SOAP-Dienstes und so weiter. Schlußendlich bin ich mit diesem darauf gestoßen, dass just der erste Rückgabeparameter fehlt und dieser als “Ergebnis” der Funktion an das Aufrufende Programm zurückgegeben wird (anstatt ein Wert für “hat Funktioniert” und “Fehler”).
Da muss man erstmal darauf kommen!
Also: wems genauso geht, einfach eine Funktion um die Funktion/Klasse und den Rückgabewert dieser ebenfalls per “ByRef” mit in das Parameterarray aufnehmen.

Ein weiteres Problem stellt überraschenderweise der Unterschied zwischen Variant und String bei den Rückgabevariablen dar. Der MS-Assistent schlägt bei Arrays autom. den Typ Variant ein, das stimmt aber nicht immer, aus oftmals unerfindlichen Gründen muss es dennoch String sein, hier hilft nur probieren.