Von: access-weekly-html-request@smarttools.de im Auftrag von SmartTools Publishing [access-weekly-html-reply@smarttools.de]
Gesendet: Donnerstag, 8. Dezember 2005 23:39
An: Access Weekly Abonnenten
Betreff: SmartTools Access Weekly vom 9.12.2005

Ausgabe vom 9. Dezember 2005

 In dieser Ausgabe

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

Weihnachtsaktion: Kalender- und Zeitplanungsvorlagen + CD 'Personalplanung und Dienstpläne' als kostenlose Zugabe!

Mit dem Digitalen Zeitplaner können Sie Excel schnell und komfortabel für Zeit- und Projektplanungen aller Art einsetzen. Die Vorlagen sind komplett ungeschützt: Kopieren Sie die Vorlagen also beliebig oft, um Ihre individuellen Planungskalender für Projekte, Veranstaltungen usw. zu erstellen. Zum Beispiel:

  • Individuelle Jahresübersichten, die sich im Baukastensystem zusammenstellen lassen (z.B. von September bis September oder je nach Projektdauer auch über längere Zeiträume als ein Jahr).
  • Übersichtliche Urlaubsplanung mit einer automatischen Ganzjahresübersicht.
  • Balken- bzw. Ablaufdiagramme für beliebige Zeiträume.
  • Komfortable Außendienst-Übersicht. Die Mitarbeiter tragen ein, wo sie wann sind. Alle wissen Bescheid und können Auskunft geben.
  • Die meisten Planungsgerüste sind endlos - Sie geben einfach die Jahreszahl an und der Kalender erstellt sich voll automatisch.
  • Jahres-Statistik - auf genial einfache Weise können Sie Ihre Geschäftsentwicklung grafisch verfolgen.
  • Für jeden Planungszweck gibt es eine andere Jahres-Struktur: Monate horizontal oder vertikal angeordnet, mit oder ohne KW-Angaben, mit oder ohne Feiertage, ganz weiß oder ganz bunt usw. Alle sind fertig. Sie öffnen die für Ihren Zweck günstigste Tabelle und machen Ihre Eintragungen; auch im Netzwerk.
In unserer Weihnachtsaktion bis zum 21.12.2005 erhalten Sie zurzeit 2 CD-ROM's zum Preis von einer: Sie erhalten nicht nur den Zeitplaner 2006, sondern zusätzlich die CD-ROM "Personalplanung und Dienstpläne" als kostenlose Zugabe!

Weitere Informationen finden Sie unter:

Zeitplanungsvorlagen + CD 'Personalplanung und Dienstpläne'

Download-Tipp: So vermeiden Sie doppelte Datensätze

Das Erfassen von doppelten Datensätzen gehört zu den alltäglichen Problemen vor allem bei der Eingabe von Adressen. Arbeiten dann auch noch mehrere Mitarbeiter beispielsweise in der Auftragsannahme, sind die unerwünschten Zwillinge in Ihrer Datenbank vorprogrammiert und müssen später mühsam entfernt werden. Wie aber können Sie die Doppel bereits bei der Eingabe möglichst effektiv erkennen? In unserer kostenlosen Techinfo stellen wir Techniken vor, mit denen Sie in Zukunft die Datenerfassung noch effizienter gestalten können, weil doppelte Datensätze bereits während der Eingabe erkannt werden. Sie erhalten dazu fertige VBA-Lösungen, die Sie direkt in Ihre Datenbanken einbinden können:

 Techinfo zu doppelten Datensätzen kostenlos herunterladen!

Techinfo: Access-Daten per VBA in Excel-Diagramme umsetzen

Wenn Sie Ihre Access-Daten mit Hilfe von Excel grafisch darstellen möchten, werden die Daten in der Regel zunächst in eine Arbeitsmappe exportiert, dann in Excel geöffnet und anschließend umgesetzt. Dieser Umweg ist aber nicht unbedingt nötig: Diagramme können Sie per VBA auch auf direktem Weg erstellen. Excel stellt dazu spezielle Objekten, Eigenschaften und Methoden bereit. Wie Sie diese Möglichkeiten am effektivsten nutzen, ist Inhalt eines White Papers der MSDN-Spezialisten:

Access-Daten per VBA in Excel-Diagramme umsetzen

Die Autoren vermitteln zunächst Grundlagen, die für die Nutzung des Objektmodells und zur programmatischen Erstellung von Diagrammen notwenig sind. Dabei geben sie nützliche Tipps und Hinweise und zeigen beispielsweise, dass es mitunter einfacher ist, eine Diagrammerstellung zunächst per Makrorecorder aufzuzeichnen und die daraus resultierende Routine anzupassen, als eine VBA-Routine komplett neu zu entwickeln.

Ergänzend dazu empfiehlt sich eine Techinfo, die sowohl den lesenden als auch den schreibenden Zugriff auf Excel-Tabellen sehr detailliert und Schritt für Schritt erläutert:

Techinfo: Zugriff auf Excel-Tabellen

Anhand praktischer, direkt nachvollziehbarer Beispiele zeigen die TechNet-Spezialisten, wie Sie beispielsweise einzelne Zellen adressieren, um deren Inhalte, Formeln oder Formatierungen auszulesen oder zu setzen.

 Access-Tipp der Woche

Formulare schneller laden
Versionen: Access 2003, 2002/XP, 2000 und 97

Wenn das Öffnen eines Formulars einige Augenblicke dauert, wissen Sie als Entwickler was im Hintergrund abläuft. Sie kennen die Abfrage, die Access zunächst ausführen muss oder die Datenmengen der Tabelle, auf der das Formular basiert. Anwender haben aber meistens wenig Verständnis dafür und daher zeigen wir Ihnen in dieser Woche einen kleinen Trick, mit dessen Hilfe Sie Formulare auf den ersten Blick ohne Wartezeit sofort zur Verfügung stellen können. Tatsächlich wird der Ladevorgang nur verlagert, aber Sie werden sehen: die Umstellung wirkt Wunder!

Das Konzept: In einer Tabelle legen Sie fest, welche Formulare der Datenbank beim Start direkt geöffnet werden sollen. Über eine zusätzliche Einstellung können Sie angeben, in welchem Modus ein Formular geöffnet werden soll. Über "AutoExec" wird dann beim Start der Datenbank eine Funktion aufgerufen, die die gewünschten Formulare öffnet. Wechseln Sie später zur Datenbank, können Sie direkt mit den benötigten Formularen arbeiten, ohne lange Wartezeiten in Kauf nehmen zu müssen.

Um die Lösung in Ihre Datenbank einzubauen, gehen Sie wie folgt vor:

  • Legen Sie eine Tabelle mit folgenden Feldern an:
FormularName: Datentyp "Text", Feldgröße: 100 Zeichen
AnzeigeModus: Datentyp "Zahl", Feldgröße: "Byte"

  • Setzen Sie den Primärschlüssel auf das Feld "FormularName".
  • Wechseln Sie auf die Registerkarte "Nachschlagen" und richten Sie folgendes Steuerelement ein:
Steuerelement anzeigen: Kombinationsfeld
Herkunftstyp: Werteliste
Datensatzherkunft: Versteckt;0;Minimiert;1;Normal;2
Gebundene Spalte: 2
Anzahl Spalten: 2
Spaltenbreiten: 3cm;0cm

  • Speichern Sie die Tabelle unter dem Namen "AutoLaden_Formulare".
  • Verlassen Sie den Tabellenentwurf.
  • Wechseln Sie in die VBA-Entwicklungsumgebung.
  • Wählen Sie das Menü Extras-Verweise an, lokalisieren Sie den Eintrag "Microsoft DAO 3.60 Object Library" (Access 2003, 2002/XP und 2000) beziehungsweise "Microsoft DAO 3.51 Object Library" (Access 97), aktivieren Sie das Kontrollkästchen vor dem Eintrag und klicken Sie dann auf Ok.
  • Legen Sie ein neues Modul an und geben Sie die folgende Funktion ein:
Public Function AutoLaden()
  Dim db As DAO.Database
  Dim rs As DAO.Recordset
  Dim strForm As String
  Dim bModus As Byte
  Dim Anz As Long, I As Long

  On Error Resume Next
  Set db = CurrentDb()
  Set rs = db.OpenRecordset("AutoLaden_Formulare")
  Err = 0
  rs.MoveLast
  If Err = 0 Then
    Anz = rs.RecordCount
    rs.MoveFirst
    For I = 1 To Anz
      strForm = rs("FormularName")
      bModus = rs("AnzeigeModus")
      Select Case bModus
        Case 0
          DoCmd.OpenForm strForm, , , , , acHidden
        Case 1
          DoCmd.OpenForm strForm, , , , , acIcon
        Case 2
         DoCmd.OpenForm strForm, , , , , acWindowNormal
      End Select
      rs.MoveNext
    Next I
  End If 'Err= 0...
  rs.Close

  Set rs = Nothing
  Set db = Nothing
  DoEvents

End Function

Im ersten Schritt öffnen wir hier die Tabelle "AutoLaden_Formulare" als Recordset und ermitteln zur Begrenzung der folgenden Schleife die Anzahl vorhandener Datensätze. Kommt es dabei zu einem Fehler, ist die Tabelle leer beziehungsweise es sollen keine Formulare angezeigt werden. Die entsprechenden Anweisungen werden also nur bei "Err = 0" ausgeführt. In einer Schleife gehen wir dann alle Datensätze durch, lesen den Formularnamen und den Anzeigemodus aus und rufen dann je nach Anzeigemodus "DoCmd.OpenForm" mit einem der Parameter "acHidden", "acIcon" oder "acWindowNormal" auf.

  • Speichern Sie das Modul unter dem Namen "modAutoLaden" und verlassen Sie die VBA-Entwicklungsumgebung wieder.
Damit die Formulare beim Start der Datenbank automatisch geöffnet und initialisiert werden, nutzen wir das "AutoExec"-Makro für den Aufruf der Funktion "AutoLaden()". Wenn in Ihrer Datenbank bereits ein "AutoExec"-Makro vorhanden ist, fügen Sie am Anfang eine weitere Aktion "AusführenCode" ein und geben für den Parameter "Funktionsname" den Ausdruck "AutoLaden()" ein. Ist in Ihrer Datenbank kein "AutoExec"-Makro vorhanden, legen Sie es zunächst im Bereich "Makros" des Datenbankfensters per Schaltfläche Neu an, richten dann die oben erwähnte Aktion ein und speichern es unter dem Namen "AutoExec".

Über die Tabelle "AutoLaden_Formulare" legen Sie fest, welche Formulare in welchem Modus automatisch beim Start geladen werden sollen. Dazu geben Sie den Namen des Formulars, so wie er im Datenbankfenster angezeigt wird, im Feld "FormularName" ein. Über das Feld "AnzeigeModus", für das ein Nachschlage-Kombinationsfeld eingerichtet ist, wählen Sie dann den gewünschten Modus "Versteckt", "Minimiert" oder "Normal" aus. Beim Modus "Versteckt" wird das Formular geladen, bleibt aber komplett unsichtbar. Es ist aber, wenn Sie es benötigen, bereits komplett initialisiert und einsatzbereit. Sie können es entweder über das Menü Fenster-Einblenden anzeigen lassen oder es einfach per Doppelklick im Datenbankfenster öffnen - Access macht dann die bereits im Speicher befindliche, initialisierte Kopie sichtbar. Beim Modus "Minimiert" wird das Formular als Symbol am unteren Fensterrand von Access abgelegt. Sie können sich auf diesem Wege beispielsweise Verwaltungsformulare, die nicht sofort benötigt werden, vorab als Symbol zurechtlegen. Im Modus "Normal" wird das Formular wie gewohnt zur direkten Bearbeitung angezeigt. In Kombinationen aus "Normal" und "Minimiert" können Sie also zum Beispiel ein Formular zur Terminverwaltung für die sofortige Prüfung anstehender Termine und Aufgaben normal öffnen und Artikelinfos und Kundenadressen für den späteren Einsatz minimiert ablegen.

ANZEIGE 
Resizer und andere neue Steuerelemente für Access

Die Total Access Components sind eine umfangreiche Sammlung neuer Steuerelemente für Ihre Formulare und Berichte. Das absolute Highlight:

Der "Resizer" löst für Sie die Probleme mit unterschiedlichen Bildschirmauflösungen. Sie entwerfen nur noch ein Formular und platzieren darauf den Resizer. In Zukunft vergrößert oder verkleinert der Resizer für Sie sämtliche Steuerelemente proportional zur aktuellen Bildschirmauflösung!

Außerdem in dem Paket:

  • Schaltflächen mit Grafiken
  • komfortablen Eingabehilfen
  • grafische Statusanzeigen
  • digitale und analoge Uhren
  • neue 3D- und Animationseffekte
  • Post-It's, Taschenrechner, Multimedia-Controls u.v.m.
Weitere Informationen finden Sie unter:

Total Access Components für Access 2003, 2002/XP und 2000

Total Access Components für für Access 97


 Access-Helpline

Haben Sie Fragen zu Access 2003, 2002/XP, 2000 oder 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 Fragen aus und beantwortet Sie an dieser Stelle im Newsletter.

Verweise auf Word richtig setzen
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  Wir haben eine Access 2002-Datenbank entwickelt, die unter anderem Adressen in ein Word-Dokument einfügt. Das geschieht per Office Automation über eine Objektvariable vom Typ "Word.Application". Einen entsprechenden Verweis auf "Microsoft Word 10.0 Object Library" haben wir gesetzt. Diese Datenbank soll jetzt in unserer Firma in verschiedenen Abteilungen und bei Kunden eingesetzt werden. Dort sind jedoch unterschiedliche Word-Versionen vorhanden. Müssen wir nun für jede eventuell vorhandene Word-Version eine spezielle Datenbank mit Verweisen auf Word 97, 2000, 2002/XP oder 2003 erstellen?
T. Pfahl

 ANTWORT:  Nein, das ist nicht notwendig. Ein Verweis wie "Microsoft Word 10.0 Object Library" wird nicht als Text, sondern als Anwendungs-ID festgehalten. Diese Anwendungs-ID ist bei allen Word-Versionen gleich. Wird die Datenbank geöffnet, versucht Access zunächst, die VBA-Umgebung zu initialisieren und die Verweise aufzulösen. Dazu sucht Access in der Registry nach dieser Anwendungs-ID und setzt den Verweis automatisch auf die entsprechende Anwendung um. So spielt es keine Rolle, welche Word-Version installiert ist. Sie können das prüfen, indem Sie Ihre Datenbank einmal auf einem Office 2003-System öffnen, in die VBA-Entwicklungsumgebung wechseln und dort das Menü Extras-Verweise anwählen - hier wird nun korrekterweise "Microsoft Word 11.0 Object Library" und damit Word 2003 referenziert.

MS-FlexGrid mit Access einsetzen
Versionen: Access 2003, 2002/XP und 2000

 FRAGE:  Ich möchte das MS FlexGrid in einer Access-Datenbank verwenden. Alle Komponenten sind im Verzeichnis "Windows/System32" vorhanden. Verweis ist auch gesetzt. Beim Aufziehen des FlexGrids in einem Access-Formular erscheint die Meldung: "Sie verfügen nicht über die Lizenz, die erforderlich ist, um dieses ActiveX-Steuerelement einzusetzen." Was muss getan werden, damit man das MS FlexGrid in Access problemlos eingebunden kann?
A. Theusner

 ANTWORT:  Microsoft weist ausdrücklich darauf hin, dass die ActiveX-Komponente "MS FlexGrid" nicht für Access konzipiert ist, weil die Funktionalität dort mit Unterformularen bzw. mit der Datenblattansicht bereits zur Verfügung steht. Dass es trotzdem mit Access ab Version 2000 in der Version 6.x eingesetzt werden kann, können wir aus praktischer Erfahrung bestätigen. Der Einsatz ist jedoch recht problematisch, da es sehr viele Abhängigkeiten von anderen Windows-Komponenten sowie eine sprachspezifische Support-DLL (FlxGdDE.DLL) gibt. Sobald eine der Komponenten in einer falschen Version vorliegt oder zum Beispiel ein Tool eine anderssprachige Support-DLL installiert und registriert hat, funktioniert die Einbindung nicht mehr und es wird unter anderem die o.g. Fehlermeldung angezeigt. Der sicherste Weg für den zuverlässigen Einsatz des FlexGrid-Controls mit Access ist die Installation des deutschen Service Packs für Visual Basic 6 auf der Entwickler-Maschine. Sie finden es unter der folgenden Adresse:

Service Pack für Visual Basic 6

Anschließend lässt sich das FlexGrid-Control problemlos in Access einbinden. Um die Datenbank weiterzugeben, kopieren Sie FLXGDDE.DLL und MSFLXGRD.OCX auf den Zielrechner und registrieren beides über REGSVR32.EXE.

ANZEIGE 
Tools und Assistenten für Access-Entwickler

Mit den Total Visual CodeTools 2003 erweitern Sie Access um eine umfangreiche Sammlung neuer Tools und Assistenten speziell für VBA-Entwickler.

Die Total Visual CodeTools 2003 integrieren sich direkt in die Entwicklungsumgebung und lassen sich jederzeit per Mausklick aufrufen. Zum Beispiel:

  • Code Cleanup zur automatischen Aufbereitung und Standardisierung von vorhandenem Code.
  • Voll automatische CodeBuilder für Recordsets, SQL-Statements, Message-Boxen, Select-Case-Anweisungen etc.
  • Assistent für neue Prozeduren mit Kommentarkopf, Fehlerbehandlung und Namenskonventionen nach Ihren Vorgaben
  • Der Code Delivery Wizard fügt automatisch Zeilennummern hinzu (für punktgenaue Fehlermeldungen), entfernt Debugging-Code, den Sie übersehen haben und macht den Sourcecode für Unbefugte Dritte unlesbar.
Weitere Informationen finden Sie unter:

Total Visual CodeTools 2003


Excel-Tabellen dynamisch verknüpfen
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  Ich habe Folgendes Problem: Ich habe eine Access Datenbank, die Daten aus zwei Excel Tabellen bezieht. Wenn ich den Ordner, in dem sich die Access-Datenbank und die Excel-Arbeitsmappen befinden, in ein ZIP-Archiv packe und per Mail verschicke, kann der Empfänger nicht mit der Datenbank arbeiten, da beim Empfänger der Pfad zu den Excel-Arbeitsmappen nicht mehr stimmt. Wie lässt sich das verhindern?
B. Lietzmann

 ANTWORT:  Das Problem lässt sich lösen, indem Sie die Excel-Tabellen dynamisch verknüpfen. Gehen Sie wie folgt vor:

  • Geben Sie in einem neuen oder einem vorhandenen Modul die folgenden Funktionen ein:
Function GetMDBPath() As String
  Dim db As Database, L As Integer, aPath As String

  Set db = CurrentDb()
  aPath = db.Name
  L = Len(aPath)
  While Mid$(aPath, L, 1) <> "\" And L > 0
      L = L - 1
  Wend
  If L > 1 Then
    aPath = Left$(aPath, L)
  Else
    aPath = ""
  End If
  GetMDBPath = AddSlash(aPath)

End Function

Function AddSlash(aPath As String)

  AddSlash = aPath
  If Trim$(aPath) = "" Then Exit Function
  If Right$(aPath, 1) = "\" Then Exit Function
  AddSlash = aPath & "\"

End Function

  • Legen Sie ein Makro "AutoExec" an oder ergänzen Sie ein vorhandenes "AutoExec"-Makro um die folgenden Aktionen:
Aktion: Warnmeldungen
Warnmeldungen An: Nein

Aktion: LöschenObjekt
Objekttyp: Tabelle
Objektname: XLSTab1

Aktion: LöschenObjekt
Objekttyp: Tabelle
Objektname: XLSTab2

Aktion: TransferArbeitsblatt
Dateiformat: Microsoft Excel
Tabellenname: XLSTab1
Dateiname: =GetMDBPath() & "Mappe1.xls"
Besitzt Feldnamen: Ja/Nein

Aktion: TransferArbeitsblatt
Dateiformat: Microsoft Excel
Tabellenname: XLSTab2
Dateiname: =GetMDBPath() & "Mappe2.xls"
Besitzt Feldnamen: Ja/Nein

"Mappe1.xls" und "Mappe2.xls" sowie "XLSTab1" und "XLSTab2" ersetzen Sie durch die aktuellen Namen der Arbeitsmappen bzw. der verknüpften Excel-Tabellen, "Besitzt Feldnamen" stellen Sie je nachdem auf "Ja" oder "Nein" ein. Die Lösung bindet beim Öffnen der Datenbank automatisch die beiden Excel-Tabellen dynamisch neu ein. Dazu werden de vorhandenen Verknüpfungen zunächst gelöscht. Zwei "TransferArbeitsblatt"-Anweisungen binden die Excel-Tabellen dann neu ein, wobei der Pfad über die Funktion "GetMDBPath()" nun gemäß den aktuellen Gegebenheiten und unabhängig davon, wohin der Inhalt des ZIP-Archivs entpackt wurde, ermittelt wird.

 Newsletter-Tipp

Office XP und 2003-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 XP und 2003 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 XP/2003
  • Helpline für Ihre individuellen Fragen zu Office XP und 2003
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 © 2005 SmartTools Publishing Thomas Tai
Luisenstrasse 52, 49565 Bramsche
Telefon: 05461/91052, Fax: 05461/2609
E-Mail: access-weekly@smarttools.de
Internet: http://www.smarttools.de/