Von: access-weekly-html-request@smarttools.de im Auftrag von SmartTools Publishing [access-weekly-html-reply@smarttools.de]
Gesendet: Donnerstag, 6. April 2006 23:51
An: Access Weekly Abonnenten
Betreff: SmartTools Access Weekly vom 7.4.2006

Ausgabe vom 7. April 2006

 In dieser Ausgabe

Access-News & Downloads
Access-Tipp der Woche
Access-Helpline
Newsletter-Tipp
 Access-News & Downloads

Spotlight: Access-Datenbanken optimieren, analysieren und dokumentieren

Stellen Sie sicher, dass jede Datenbank fehlerfrei und mit optimaler Geschwindigkeit läuft!

Der Total Access Analyzer prüft jedes einzelne Objekt in Ihrer Datenbank und liefert Ihnen in übersichtlicher und komfortabler Form:

  • Versteckte Fehler
  • Optimierungstipps
  • Grafische Übersichten
  • Ungenutzte Objekte
  • Cross-Referenz
  • Übersichtliche Dokumentation aller Datenbankobjekte
Mit dem Total Access Analyzer steht Ihnen ein leistungsfähiges Tool zur Verfügung, um komplexe Datenbanken schnell in den Griff zu bekommen.

Mehr als 300 Berichte, Analysen und grafische Darstellungen helfen Ihnen, nicht nur die vorhandenen Objekte zu dokumentieren, sondern auch alle Zusammenhänge und Beziehungen sofort zu erfassen. Fast nebenbei kommen Sie Fehlern sowie ungenutzten Objekten auf die Spur und erhalten gezielte Tipps zur Optimierung Ihrer Anwendung.

Weitere Informationen finden Sie unter:

Total Access Analyzer für Access 2003

Total Access Analyzer für Access 2002/XP

Total Access Analyzer für Access 2000

Download-Tipp: Verknüpfte Tabellen perfekt im Griff

Beim Einsatz von Front-End-/Back-End-Lösungen sind regelmäßig Änderungen an verknüpften Tabellen notwendig. Vor allem bei umfangreichen Lösungen, in denen Tabellen aus mehreren Datenbanken eingebunden sind, ist damit immer die Frage nach dem Speicherort der jeweiligen Datenbank verbunden. Erst ab Access 2002 wird zumindest im Datenbankfenster der Speicherort für eingebundene Tabellen als QuickInfo angezeigt. In Access 97 und 2000 sind mühsame Recherchen über den Tabellenverknüpfungs-Manager oder das Auslesen der Verbindungsinformationen notwendig.

Wesentlich einfacher können Sie diese Informationen nun in allen Access-Versionen mit dem SmartTools Link-Lister abrufen: Über ein universell einsetzbares Formular werden Ihnen für die aktuelle Datenbank Namen, Speicherorte, Datum der Einbindung und Anzahl der Datensätze für eingebundene Tabellen angezeigt. Damit finden Sie Ihre Back-End-Datenbanken innerhalb kürzester Zeit, ohne langwierig Ihre Verknüpfungen analysieren oder Ihre Festplatten absuchen zu müssen:

 Link-Lister für Access kostenlos herunterladen!

Techinfo: Menü- und Symbolleisten selbst programmieren

Für kleinere Anpassungen und Erweiterungen von Menüs und Symbolleisten hat Microsoft in seinen Office-Anwendungen die Funktion "Anpassen" vorgesehen. Für spezialisierte Lösungen müssen Menüs oder Symbolleisten aber oftmals per VBA komplett erstellt oder in Teilen angepasst werden. Aufgrund der Komplexität dieses Themas und der kaum vorhandenen Dokumentation dazu scheuen davor jedoch viele Entwickler zurück. Hier hilft ein umfangreiches White Paper, das Sie unter der folgenden Adresse finden:

Techinfo: Menü- und Symbolleisten selbst programmieren

Die Autoren vermitteln zunächst Grundlagen zu Menüs und Symbolleisten, dem Objekt-Modell und den zur Verfügung stehenden VBA-Anweisungen. Weitere Abschnitte erläutern die verschiedenen Arten von Steuerelementen, die in Menüs und Symbolleisten eingesetzt werden können. Anhand praktischer, sofort nachvollziehbarer Beispiele lernen Sie schnell, wie Menüs oder Symbolleisten angelegt, gefüllt und angepasst oder Elemente individuell manipuliert werden können. Sie sehen weiterhin, wie zum Beispiel Symbole und Grafiken eingesetzt werden oder auf Menüs und Symbolleisten in der VBA-Entwicklungsumgebung zugegriffen wird. Einige der vorgestellten Routinen lassen sich als nützliche Tools für die zukünftige Entwicklung einsetzen. Darüber hinaus finden Sie viele interessante Links auf weiterführende Informationen und Knowledge Base-Artikel.

Waren die News & Downloads hilfreich für Sie? Klicken Sie bitte hier!

 Access-Tipp der Woche

Externe Anwendungen starten und kontrollieren, Teil 2
Versionen: Access 2003, 2002/XP, 2000 und 97

Nachdem im ersten Teil dieses Tipps die Klassenbibliothek "clsExecProg" aufgebaut wurde, geht es nun in diesem Teil um den Einsatz in der Praxis und die Funktionsweise. Der Zugriff erfolgt über eine Objektvariable, die, wie im folgenden Beispiel gezeigt, in der jeweiligen VBA-Routine deklariert und initialisiert wird:

Private Sub btnStartNotepad_Click()
Dim ep As New clsExecProg

Wichtig ist, dass Sie hier "New" angeben, damit gleich eine Instanz der Klasse initialisiert wird und sie sofort genutzt werden kann:


  With ep
    .ProgName = "notepad.exe"
    .ProgParas = "c:\autoexec.bat"
    .WorkDir = "c:\"
    .WinMode = vbMaximizedFocus
    .ExecProg
    If .EPError Then
      Beep
      MsgBox "Fehler beim Aufruf...", _
      vbOKOnly + vbInformation, "ExecProg:"
      Exit Sub
    End If

    While .IsRunning
      DoEvents 'Warten...
    Wend

    MsgBox "NotePad wurde beendet..."

  End With

End Sub

Das Beispiel öffnet die Datei "c:\autoexec.bat" zur Bearbeitung in NotePad, wartet, bis die Bearbeitung abgeschlossen, also NotePad beendet wurde und meldet dann den Abschluss der Ausführung der externen Anwendung.

Initialisierung und Aufruf erfolgen am besten innerhalb einer "With...End With"-Konstruktion, um etwas Tipparbeit zu sparen. Im Beispiel werden im ersten Schritt die im folgenden erläuterten Eigenschaften gesetzt, dann die Methode "ExecProg" für die Ausführung aufgerufen und anschließend über "EPError" geschaut, ob es ein Probleme gegeben hat. Wenn ja, erfolgt eine entsprechende Meldung und die Routine wird verlassen. Die "While...Wend"-Schleife läuft, solange die Eigenschaft "IsRunning" den Inhalt "True" hat. Dahinter verbirgt sich eine Funktion, die über API den Status der jeweiligen Anwendung abfragt. Wenn das System zurückmeldet, dass die Anwendung nicht mehr läuft, wird "IsRunning" auf "False" gesetzt und somit die Schleife verlassen. Sie können selbstverständlich auch auf die "While...Wend"-Schleife verzichten. "ExecProg" arbeitet dann wie die "Shell()"-Funktion: Die externe Anwendung wird geöffnet und die VBA-Routine sofort weiter ausgeführt.

Im Folgenden die Erläuterung der Eigenschaften, die Sie nutzen können:

ProgName:
Definiert Laufwerk, Pfad und Dateiname der Anwendung, die gestartet werden soll, also zum Beispiel "D:\Tools\FTPTrans.exe". Sie können Laufwerk und Pfad auch weglassen, es wird dann in folgenden Verzeichnissen gesucht: Aktuelles Verzeichnis, Windows-Verzeichnis, System-Verzeichnis, Verzeichnisse, die in AUTOEXEC über PATH festgelegt wurden. Der Dateiname muss aber immer, und zwar komplett mit Erweiterung, angegeben werden! Wenn Sie nur ein Dokument mit seiner dazugehörigen Anwendung öffnen wollen, geben Sie hier nichts bzw. eine leere Zeichenkette ("") an. Achtung! Bei langen Dateinamen mit Leerzeichen muss die Zuweisung in Hochkommas eingeschlossen werden:

.ProgName = Chr$(34) + strPName + Chr$(34)

ProgParas:
Über diese Eigenschaft legen Sie die Parameter fest, die der Anwendung übergeben werden sollen. Dies kann ein Dateiname und/oder Schalter wie beispielsweise "Z:\Daten\ebcdic.txt" /C /F=ansi" sein. Möchten Sie ein Programm "leer" starten, geben Sie hier einfach nichts bzw. eine leere Zeichenkette ("") an. Sie können hier auch nur einen Dokumentnamen wie zum Beispiel "D:\Daten\Budget.xls" angeben und "ProgName" leer lassen bzw. auf eine leere Zeichenkette setzen. "ExecProg" startet dann automatisch die Anwendung, die unter Windows für den betreffenden Dokumenten-Typ zuständig ist, in diesem Fall also beispielsweise Excel. Achtung! Bei langen Dateinamen mit Leerzeichen muss die Zuweisung in Hochkommas eingeschlossen werden:

.ProgParas = Chr$(34) + strFName + Chr$(34)

WorkDir:
Legen Sie hier das zu verwendende Arbeitsverzeichnis fest. In der Regel handelt es sich dabei um das Verzeichnis, aus dem Sie das Programm oder ein Dokument aufrufen. Wenn Sie hier nichts angeben, wird das jeweils zuletzt aktivierte Verzeichnis auf dem betreffenden Laufwerk verwendet.

WinMode:
Diese Eigenschaft steuert, in welchem Modus das Fenster des Programms angezeigt wird. Sie können hier die gewohnten "vb..."-Konstanten verwenden, die Sie auch bei "Shell()" benutzen:

  • VbHide: Fenster ausgeblendet mit Fokus
  • VbNormalFocus: Fenster in normaler Größe mit Fokus
  • VbMinimizedFocus: Fenster als Symbol mit Fokus
  • VbMaximizedFocus: Fenster als Vollbild mit Fokus
  • VbNormalNoFocus: Fensters in normaler Größe ohne Fokus
  • VbMinimizedNoFocus: Fenster als Symbol ohne Fokus
EPError:
Diese Eigenschaft vom Datentyp "Boolean" gibt Auskunft darüber, ob die jeweils letzte Aktion erfolgreich ausgeführt werden konnte oder nicht. Bei einem Fehler steht "EPError" auf "Wahr/True". Sie sollten "EPError" zumindest nach dem Aufruf von "ExecProg" wie im Beispiel gezeigt abfragen.

Abschließend zur Funktionsweise der Klassenbibliothek: Dreh- und Angelpunkt der Lösung sind zwei API-Funktionen: "ShellExecuteEx" ist zuständig für den Start einer Anwendung. Die benötigten Informationen werden in einer Datenstruktur "SHELLEXECUTEINFO" übergeben, die von der Methode "ExecProg" anhand der gesetzten Eigenschaften gefüllt wird. "ShellExecuteEx" liefert als Ergebnis unter anderem ein Handle auf den neu gestarteten Prozess. Anhand des Handles kann man nun über "WaitForSingleObject" den Status der Anwendung erfragen. Ist die Rückmeldung größer "0", so läuft die Anwendung noch, andernfalls wurde sie inzwischen beendet. Umgesetzt für die Eigenschaft, die in einem Klassenmodul ja eigentlich eine Funktion ist, sieht das dann so aus:

Public Property Get IsRunning() As Boolean
  Dim lngStatus As Long

  lngStatus = _
  WaitForSingleObject(ep_ProcInfo.hProcess, 10)

  If lngStatus = -1 Then 'Ungültiger Handle...
    IsRunning = False
    ep_Error = True
  Else
    IsRunning = (lngStatus <> 0)
  End If

End Property

Der zweite Parameter bei "WaitForSingleObject" spezifiziert eine Zeit in Millisekunden, die auf die Beendigung der Anwendung gewartet werden soll. Wenn Sie feststellen, dass die Routine auf Ihrem System zuviel CPU-Zeit beansprucht, setzen Sie den Wert hier einfach ein wenig herunter. Nun zur Methode "ExecProg":

Public Sub ExecProg()

  If ep_ProgName <> "" Then 'Anwendung angegeben...
    ep_ShellExecInfo.cbSize = Len(ep_ShellExecInfo)
    ep_ShellExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS + _
                             SEE_MASK_FLAG_NO_UI
    ep_ShellExecInfo.lpFile = ep_ProgName
    ep_ShellExecInfo.lpParameters = ep_ProgParas
    ep_ShellExecInfo.lpDirectory = ep_WorkDir
    ep_ShellExecInfo.nShow = ep_WinMode
    ep_Error = ShellExecuteEx(ep_ShellExecInfo)
    ep_ProcInfo.hProcess = ep_ShellExecInfo.hProcess
    ep_Error = (ep_ShellExecInfo.hInstApp < 32)
  Else 'Nur Datei/Dokument angegeben...
    ep_ShellExecInfo.cbSize = Len(ep_ShellExecInfo)
    ep_ShellExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS + _
                             SEE_MASK_FLAG_NO_UI
    ep_ShellExecInfo.lpFile = ep_ProgParas
    ep_ShellExecInfo.lpParameters = vbNullString
    ep_ShellExecInfo.lpDirectory = ep_WorkDir
    ep_ShellExecInfo.nShow = ep_WinMode
    ep_Error = ShellExecuteEx(ep_ShellExecInfo)
    ep_ProcInfo.hProcess = ep_ShellExecInfo.hProcess
    ep_Error = (ep_ShellExecInfo.hInstApp < 32)
  End If

End Sub

Generell prüft die Routine zunächst, ob ein Programm angegeben wurde. Wenn ja, kommt der erste Teil zum Einsatz. Der zweite Teil ist zuständig für die Initialisierung, wenn nur ein Dokument zu öffnen ist. Der wesentliche Unterschied besteht darin, dass hier das Dokument sozusagen als Anwendung und das Feld für die Anwendungs-Parameter auf "Null" gesetzt wird. Die ersten vier Anweisungen "schaufeln" jeweils die gesetzten Eigenschaften in die oben erwähnte Datenstruktur, die dann als Parameter an "ShellExecuteEx" übergeben wird.

War dieser Tipp für Sie hilfreich? Klicken Sie bitte hier!

ANZEIGE 
Excel-Tabellen automatisch vergleichen und zusammenführen

Der Synkronizer 8.0 Premium liefert genau die Funktionen, die Microsoft in Excel vergessen hat: Er kann Ihre Kalkulationsmodelle, Tabellen, Listen und Datenbanken in Excel voll automatisch vergleichen, Unterschiede markieren und auf Wunsch zu einer einzigen aktuellen Version zusammenführen.

Sparen Sie künftig viele Stunden mühseliger Kleinarbeit, denn der Synkronizer 8.0 Premium wird Ihnen bei der täglichen Arbeit mit Excel immer wieder eine unentbehrliche Hilfe sein. Zum Beispiel:

  • Führen Sie mehrere Versionen der gleichen Tabelle in einer einzigen Datei zusammen, die alle Änderungen der anderen Versionen enthält.
  • Markieren Sie mit wenigen Mausklicks die Unterschiede zwischen zwei Versionen eines Kalkulationsmodells.
  • Arbeiten Sie Änderungen voll automatisch in eine Liste (Preise, Artikel, Aufträge etc.) ein.
  • Erstellen Sie aus mehreren Adresslisten eine einzige Adressliste ohne Duplikate.
  • Kombinieren Sie zwei Listen mit unterschiedlichen Informationen zu einer aussagekräftigen Gesamtliste.
Weitere Informationen zu diesem unentbehrlichen Excel-Tool finden Sie unter:

http://www.add-in-world.com/katalog/synkronizer/


 Access-Helpline

Haben Sie Fragen zu Access 2003, 2002/XP, 2000 und 97? Dann wenden Sie sich mit einer genauen Problembeschreibung (bitte keine Datenbanken schicken!) an:

access-helpline@smarttools.de

Unser Redaktionsteam wählt in jeder Ausgabe eine oder mehrere Fragen aus und beantwortet Sie an dieser Stelle im Newsletter.

Eingelesene Dateinamen sortieren
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  Ich habe aus dem Beitrag "Verzeichnisse und Dateien per VBA auslesen und verarbeiten, Teil 2" die zweite verkürzte Variante in mein Programm übernommen. Prinzipiell funktioniert es alles, bis auf einen kleinen Schönheitsfehler, sehr gut: Die Dateien werden leider ungeordnet angezeigt.
J. Schulze

 ANTWORT:  In der Lösung werden die Dateinamen/Pfade von der Funktion "DatAuswAufbauen()" in ein String-Array "arrDatAusw()" eingelesen, das Sie vor der weitere Verarbeitung zum Beispiel mit einem QuickSort alphabetisch sortieren können:

Function QuickSortStrings(arrStrings() As String, _
                        ByVal Low As Integer, _
                        ByVal High As Integer) As Boolean
  Dim strCompare As Variant
  Dim intL As Integer
  Dim intH As Integer
  Dim strSwap As Variant
  Dim fOK As Boolean

  If High > Low Then

    strCompare = arrStrings((Low + High) \ 2)
    intL = Low
    intH = High

    Do While intL <= intH

      If arrStrings(intL) >= strCompare And _
         arrStrings(intH) <= strCompare Then
        strSwap = arrStrings(intL)
        arrStrings(intL) = arrStrings(intH)
        arrStrings(intH) = strSwap
        intL = intL + 1
        intH = intH - 1
      Else
        If arrStrings(intL) < strCompare Then
          intL = intL + 1
        End If
        If arrStrings(intH) > strCompare Then
          intH = intH - 1
        End If
      End If

    Loop

    fOK = QuickSortStrings(arrStrings(), Low, intH)
    fOK = QuickSortStrings(arrStrings(), intL, High)

  End If

  QuickSortStrings = True

End Function

Den Aufruf bauen Sie in die Funktion "DatAuswAufbauen()" direkt nach Beendigung der "While..Wend"-Schleife wie folgt ein:

  While strFName <> ""
    intDatAusw = intDatAusw + 1
    ReDim Preserve arrDatAusw(intDatAusw)
    arrDatAusw(intDatAusw) = strPath & strFName
    strFName = Dir()
  Wend
  QuickSortStrings arrDatAusw, 1, intDatAusw

Einsatz von Berichten auf anderen Systemen
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  In einigen Datenbanken nutzen wir vorgefertigte Berichte, die speziell formatiert über Formulare geöffnet oder aber auch direkt gedruckt werden. Leider kommt es immer wieder vor, das Access die speziellen Druckeigenschaften für den entsprechenden Bericht vergisst. Dazu gehören die Auswahl von verschiedenen Druckern (Tinten-, Nadel- bzw. Laserdrucker) und vor allem die Seitenränder. Da diese für sehr viele Berichte angepasst sind und nicht dem Standard (24,99) entsprechen, ist es immer wieder ein Problem der verschiedenen Nutzer und äußerst ärgerlich, wenn dann durch diesen Sachverhalt der entsprechende Bericht auf mehreren Blättern und nicht in den vorgesehenen (Papier-)Felder gedruckt wird. Über den lässt sich das nicht dauerhaft korrigieren.
Diverse Anfragen

 ANTWORT:  Beim Entwurf von Berichten legt Access die Daten des in der Systemsteuerung als "Standard" definierten Druckers zugrunde. Über dessen Druckertreiber ermittelt Access Informationen wie verfügbare Schriftarten und deren Schriftgrößen, verwendbare Seitenformate oder bedruckbare Ränder und speichert Teile dieser Informationen mit dem Bericht. Wird der Bericht, egal, ob auf Ihrem oder einem anderen System, geöffnet, so prüft Access, ob die mit dem Bericht gespeicherten Einstellungen auf dem jeweiligen System verwendet werden können. Stellt Access dabei gravierende Abweichungen wie beispielsweise andere bedruckbare Bereiche oder das Fehlen eines Seitenformats fest, so wird die betreffende Einstellung kurzerhand an die Gegebenheiten des aktuellen Systems angepasst. Beispiel: Sie haben für einen Bericht einen oberen und unteren Seitenrand von 10 mm eingestellt. Auf dem Zielsystem ist ein Standard-Drucker eingestellt, der nur bis auf 15 mm an den Rand heran drucken kann, also über andere bedruckbare Bereiche verfügt. Hier ändert Access die Seitenränder einfach auf die Standard-Einstellung von zum Beispiel 25 mm. Bei drastischeren Abweichungen, wenn beispielsweise über einen nicht vorhandenen Druckerschacht oder in einer nicht verfügbaren Schrift ausgedruckt werden soll, werden eventuell eine Fehlermeldung und anschließend der Bericht im Entwurfsmodus zur Anpassung angezeigt.

Bislang gibt es keine wirklich befriedigende Lösung für dieses Problem. Die Nutzung von Eigenschaften, die auf dem Entwickler-System eingestellt, aber auf dem Ziel-System nicht verfügbar sind, ist nun mal nicht möglich. Access muss irgendwie reagieren, um die unnötige Verschwendung von Papier durch einen Ausdruck mit falschen Einstellungen zu vermeiden. Folgende Hinweise helfen, das Auftreten des Problems zu minimieren:

  • Verwenden Sie bei der Entwicklung Schriftarten, wie "Arial" oder "Times Roman New", die weit verbreitet sind und auf allen in Frage kommenden Systemen vorhanden sein sollten.
  • Vermeiden Sie Abweichungen bei den Standard-Einstellungen beispielsweise für die Seitenränder. Mit der Vorgabe von 25 mm lässt sich in der Regel gut arbeiten. Um Platz auf der Seite zu gewinnen, empfiehlt sich eher eine Neuanordnung der Felder als eine Verringerung der Seitenränder.
  • Legen Sie Seitenformate wie "A4 Hochformat" zugrunde, die weit verbreitet sind und auf allen in Frage kommenden Systemen unterstützt werden sollten. Berichte im Querformat können vor allem bei älteren Druckern zu Problemen führen, die die dazu notwendige Rotation der Zeichen nicht unterstützen. Zudem lassen sich viele Querformat-Berichte durch eine Neuanordnung der Felder problemlos ins Hochformat bringen.
  • Prüfen Sie vorsichtshalber die Einstellungen unter Datei-Seite einrichten auf der Registerkarte "Seite" - hier muss die Option Standarddrucker aktiviert sein. Sollte hier ein Spezialdrucker aktiviert sein, ist oben genannte Meldung zu 90% vorprogrammiert.
  • In kritischen Fällen hilft es, den jeweiligen Druckertreiber des Zielsystems auf dem Entwickler-System zu installieren. Der Drucker selbst muss physisch nicht unbedingt am PC angeschlossen sein, da Access beim Entwurf beziehungsweise beim Öffnen eines Berichtes nur Informationen vom Druckertreiber, nicht aber vom Drucker direkt abfragt.
ANZEIGE 
Personal-, Belegungs- und Zeitpläne in Access grafisch darstellen

Hier ist die perfekte Erweiterung für alle Datenbanken, in denen Sie freie und gebuchte/belegte/vergebene Zeiten verwalten: Sie müssen in einer Tabelle lediglich Start- und Enddatumsangaben der einzelnen Vorgänge verwalten und diese Lösung setzt Ihre Daten voll automatisch in ein übersichtliches Balkendiagramm um.

Mit wenig Aufwand integrieren Sie den Plan in Ihre eigenen Datenbanken, wobei eine Fülle von Anwendungen denkbar ist:

  • Urlaubs- und Personalplanung
  • Belegung von Wohnungen oder Häusern
  • Vermietung von Geräten
  • Fahrzeuge eine Fuhrparks
  • Raumbelegung
  • Projekt- und Ressourcenplanung
  • u.v.m.
Die aktuelle Version 2.11 bietet unter anderem jetzt eine Druckfunktion, eine komfortable Feiertagsverwaltung sowie die Integration von Kürzeln für noch aussagekräftigere Darstellungen.

SmartTools Publishing bietet Ihnen diese Lösung in einer komplett ungeschützten Entwicklerversion ohne jegliche Einschränkungen an:

http://www.add-in-world.com/katalog/ac-belegungsplan/


'AddressOf' nicht verfügbar
Versionen: Access 97

 FRAGE:  Ich versuche eine Lösung in meine Datenbank einzubauen, die mit einer Anweisung "AddressOf" arbeitet. Bei der Ausführung der Routine stoppt Access in dieser Zeile und zeigt einen Laufzeitfehler an. Wieso?
S. Schneider

 ANTWORT:  Vermutlich arbeiten Sie mit Access 97. Dort steht der Operator "AddressOf" nicht zur Verfügung. Er wurde erst mit VBA 6.x und somit mit Access bzw. Office 2000 eingeführt. Ken Getz und Michael Kaplan von Trigeminal Software und anerkannte Access-Gurus haben für ein ähnliches Problem in Excel einen Work-around gefunden. Unter der folgenden Adresse können Sie eine Arbeitsmappe mit dieser Lösung herunterladen und diese Lösung nach geringen Anpassungen in Ihre Datenbank einbauen:

 Arbeitsmappe mit Lösung

War die Helpline für Sie hilfreich? Klicken Sie bitte hier!

 Newsletter-Tipp

Office 2003 und XP-Tipps kostenlos per E-Mail

Der SmartTools Office XP Insider ist ein kostenloser E-Mail-Newsletter, der sich ausschließlich mit den neuen Funktionen von Office 2003 und XP beschäftigt:

  • Praktische Tipps zur Installation
  • Tipps und Workshops zum optimalen Einsatz der neuen Funktionen
  • Wichtige Infos und Tipps für den Umstieg von anderen Office-Versionen
  • Download-Links zu aktuellen Erweiterungen und Service Releases für Office 2003/XP
  • Helpline für Ihre individuellen Fragen zu Office 2003 und XP
Klicken Sie hier für Ihr kostenloses Abo!

 Abonnementverwaltung

Um SmartTools Access Weekly abzubestellen, senden Sie einfach das Kommando "unsubscribe" an die Adresse

access-weekly-html-request@smarttools.de

Bitte beachten Sie, daß das Kommando im Nachrichtentext stehen muß (nicht im Betreff) und Sie keine Mail im HTML-Format senden dürfen. Weitere Informationen zur Verwaltung der Liste erhalten Sie mit dem Kommando "help" an dieselbe Adresse.

Copyright © 2006 SmartTools Publishing Thomas Tai
Luisenstrasse 52, 49565 Bramsche
Telefon: 05461/9952-0, Fax: 05461/2609
E-Mail: access-weekly@smarttools.de
Internet: http://www.smarttools.de/

Alle Rechte vorbehalten. Kein Teil dieses Newsletters darf in irgendeiner Form ohne schriftliche Genehmigung reproduziert, vervielfältigt oder verbreitet werden. Für die Nutzung der enthaltenen Informationen oder die fehlerfreie Funktion wird keine Haftung übernommen. Der Benutzer ist für eventuell entstehende Schäden alleine verantwortlich.