Von: access-weekly-html-request@cgn.smarttools.de im Auftrag von SmartTools Publishing [access-weekly-html-reply@smarttools.de]
Gesendet: Freitag, 6. Mai 2005 04:46
An: Access Weekly Abonnenten
Betreff: SmartTools Access Weekly vom 6.5.2005

Ausgabe vom 6. Mai 2005

 In dieser Ausgabe

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

News: Total Visual CodeTools 2003 ab sofort verfügbar - Brandneue Tools und Assistenten für Access-Entwickler

Mit den Total Visual CodeTools 2003 erweitern Sie Access 2003, 2002/XP und 2000 um eine umfangreiche Sammlung neuer Tools und Assistenten, die Ihnen die tägliche Programmier-Arbeit wesentlich erleichtern werden. 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.
  • Automatische CodeBuilder für Recordsets, SQL-Statements, Message-Boxen, Select-Case-Anweisungen etc.
  • Starten Sie den Code Delivery Wizard bevor Sie eine Datenbank weitergeben. Der Assistent fügt automatisch Zeilennummern hinzu (für punktgenaue Fehlermeldungen), entfernt Debugging-Code, den Sie übersehen haben und macht auf Wunsch den Sourcecode für unbefugte Dritte unlesbar.
Ab sofort ist die neue Version 2003 der Total Visual CodeTools mit vielen erweiterten Funktionen und zusätzlichen Assistenten verfügbar. Bis zum 31.5.2005 gilt für Access Weekly-Abonnenten außerdem ein Sonderpreis mit 10% Rabatt!

Ausführliche Informationen finden Sie unter:

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

Download-Tipp: Externe Programme aus Access steuern

Nicht jedes Programm lässt sich über die komfortable Automation-Schnittstelle per VBA steuern. Für viele andere Programme oder Batchdateien müssen Sie auf etwas rustikalere Methoden, wie die Shell-Anweisung zurückgreifen. Leider stehen Ihnen hier deutlich weniger Kontrollmöglichkeiten zur Verfügung. Mit Hilfe von API-Funktionen, die wir in einer komfortablen Klassenbibliothek verpackt haben, können Sie sich die Arbeit in Zukunft deutlich vereinfachen. Wenige Anweisungen genügen, um Programme aufzurufen, eventuelle Fehler zu behandeln und auf Wunsch auf die Beendigung zu warten. SmartTools Publishing bietet Ihnen das Klassenmodul mit offenem Sourcecode, Anleitung und Beispieldatenbank zum kostenlosen Download an:

 VBA-Bibliothek: Externe Programme

Techinfo: SQL Server-Daten sichern und wiederherstellen

Im Notfall müssen nach der Neuinstallation eines SQL-Servers auch die Daten schnellstmöglich wiederhergestellt werden können. Das setzt nicht nur voraus, dass die Daten überhaupt gesichert wurden, sondern stellt gewisse Ansprüche an den Aufbau der Datensicherung, damit für alle Fälle vorgesorgt ist. So ist es beispielsweise denkbar, dass die bislang von einem SQL Server verwalteten Daten auf zwei oder mehr SQL Server verteilt werden sollen. Ein Gesamtbackup, das sich nur komplett zurückspielen lässt, ist dann wenig hilfreich. Unter der folgenden Adresse finden Sie ein umfangreiches White Paper der SQL Server-Spezialisten, die das Thema "Sichern und Wiederherstellen" von allen Seiten durchleuchten und praktische Ratschläge geben:

Techinfo: SQL Server 2000 Backup and Restore

Die Autoren vermitteln zunächst Grundlagen, erklären Fach-Begriffe, stellen Technologien und Konzepte der Datensicherung vor und gehen auf verschiedene Backup-Medien und deren Vor- und Nachteile ein. Weitere Abschnitte gehen dann ins Detail und erläutern Schritt für Schritt verschiedene Backup- und Restore-Methoden für die Daten des SQL Servers und seiner Einstellungen.

 Access-Tipp der Woche

Dokumente mit OLE-Feldern ganz einfach verwalten, Teil 3
Versionen: Access 2003, 2002/XP, 2000 und 97

Im ersten Teil dieses Tipps der Woche hatten wir bereits kurz angerissen, dass Sie Dateien und Dokumente über ein OLE-Feld auf zwei Arten verwalten können: Zunächst ist eine Verknüpfung zur Originaldatei auf der Festplatte möglich. Der Vorteil dieser Technik besteht darin, dass die Dateien auch von anderen eingesehen und bearbeitet werden können und dass Access bei Änderungen an den verknüpften Dateien die Inhalte der Datenbank automatisch aktualisiert. Der Nachteil ist, dass jedermann unkontrolliert auf die externen Dateien zugreifen kann und dass bei einer Weitergabe der Datenbank die externen Dateien mitgegeben werden müssen. Bei der Einbettung von externen Dateien und Dokumenten ist zunächst sichergestellt, dass niemand die Daten unbefugt einsehen kann - das ist nur über die Datenbank möglich, die sich beispielsweise per Kennwort, Verschlüsselung und/oder im Arbeitsgruppenmodus über entsprechende Zugriffsrechte schützen lässt. Außerdem kann eine solche Datenbank bei Bedarf ohne weitere Aktionen weitergegeben werden.

Für erste Experimente in dieser Richtung erstellen Sie am besten von der bislang genutzten Beispiel-Tabelle "OLEDaten" eine Kopie (nur Struktur!) und weisen ihr den Namen "OLEDaten/Eingebettet" zu. Vom Formular erstellen Sie ebenfalls eine Kopie und benennen sie mit "OLEDaten/Eingebettet". Ändern Sie anschließend die Datenherkunft für das Formular auf die Tabelle "OLEDaten/Eingebettet". Um Objekte in einer Datenbank über eine Einbettung zu verwalten, stellen Sie die Eigenschaft "Zugelassene OLE-Art" auf "Eingebettet". Das Füllen eines OLE-Feldes erfolgt dann wie gewohnt über das Menü Einfügen-Objekt: Access zeigt den bekannten Dialog an, über den Sie nun entweder ein Objekt neu erstellen oder es aus einer externen Datei einbinden. Wenn Sie das Objekt, also beispielsweise ein Word-Dokument, neu erstellen, wird das OLE-Feld aktiviert und Sie können das Dokument "In Place", also direkt im Formular bearbeiten. Word bzw. jede andere OLE-Anwendung verwendet dabei keine externe, sondern eine temporäre Datei, die nur für den Zeitraum der Bearbeitung existiert. Wenn Sie das Objekt aber aus einer externen Datei einbetten, wird ihr Inhalt in die Datenbank aufgenommen; die externe Datei bleibt jedoch auf der Festplatte und es erfolgt keine automatische Aktualisierung, falls sich der Inhalt ändert.

Die Art der Bearbeitung des eingebetteten Objektes können Sie wie bereits in der letzten Folge erläutert über die Eigenschaft "Verb" steuern. Standardmäßig ist die "In Place"-Bearbeitung eingestellt. Die Bearbeitung in einem externen Anwendungsfenster erreichen Sie, indem zunächst die Eigenschaft "Objektaktivierung" des OLE-Feldes auf "Manuell" eingestellt wird. Dann geben Sie für die Ereignisprozedur "Beim Doppelklicken" des OLE-Feldes die folgenden Anweisungen ein:

Private Sub OLEDatei_DblClick(Cancel As Integer)

  On Error Resume Next
  With Me.OLEDatei
    .Verb = acOLEVerbOpen
    .Action = acOLEActivate
  End With
  If Err <> 0 Then
    Beep
    MsgBox "Dieses OLE-Objekt kann nicht in" & _
           " einem eigenen Fenster bearbeitet werden!", _
           vbOKOnly + vbExclamation
  End If

End Sub

Die Zuweisung ".Verb = acOLEVerbOpen" stellt den Modus "Bearbeiten in eigenem Fenster" ein, ".Action = acOLEActivate" startet dann die Bearbeitung. Bitte beachten Sie, dass nicht alle OLE-Anwendungen eine Bearbeitung in einem eigenen Fenster erlauben. Es wird dann ein Laufzeitfehler ausgelöst, den wir hier abfangen und mit einer entsprechenden Meldung quittieren. Access aktiviert anschließend die "In Place"-Bearbeitung.

Um ein neues OLE-Objekt, beispielsweise ein Word-Dokument oder eine Excel-Tabelle, per Schaltfläche anzulegen, erweitern Sie das Formular wie folgt:

  1. Legen Sie eine Optionsgruppe "frDOCType" an, setzen Sie die Bezeichnung auf "Dokument:" und geben Sie für "Standardwert" eine "1" ein.
  2. Platzieren Sie in der Optionsgruppe zwei Optionsschaltflächen mit den Bezeichnungen "Word" und "Excel".
  3. Legen Sie eine neue Schaltfläche Neues Dokument (Name= btnNewDOC) an und geben Sie für die Ereignisprozedur "Beim Klicken" die folgenden Anweisungen ein:
Private Sub btnNewDOC_Click()

  On Error Resume Next
  With Me.OLEDatei
    If Me.frDOCType = 1 Then
      .Class = "Word.Document"
    Else
      .Class = "Excel.Sheet"
    End If
    .Action = acOLECreateEmbed
    .Verb = acOLEVerbOpen
    .Action = acOLEActivate
  End With
  If Err <> 0 Then
    Beep
    MsgBox "OLE-Objekt konnte nicht angelegt bzw. " & _
           "zur Bearbeitung geöffnet werden: " & _
           Err.Description, _
           vbOKOnly + vbExclamation
  End If

End Sub

Abhängig von den Einstellungen in der Optionsgruppe "Dokumente:" wird zunächst die Eigenschaft "Class" des OLE-Feldes auf "Word.Document" oder "Excel.Sheet" gesetzt und so der Typ des einzubettenden Objektes festgelegt. Mit ".Action = acOLECreateEmbed" wird das Objekt erstellt, ".Verb = acOLEVerbOpen" und ".Action = acOLEActivate" zeigen das neue Word-Dokument oder das neue Excel-Tabellenblatt dann in einem externen Fenster zur Bearbeitung an.

Wenn Sie Word-Dokumente einbetten möchten, soll bei neuen Objekten in der Regel eine bestimmte Vorlage zugrunde gelegt werden. Das lässt sich nur über den Umweg "Office Automation" erreichen. Legen Sie eine neue Schaltfläche wie beispielsweise Neues Memo (Name= btnNewMemo") oder ähnlich an und geben Sie für deren Ereignisprozedur "Beim Klicken" die folgenden Anweisungen ein:

Private Sub btnNewMemo_Click()
  Dim objWord As Word.Application
  Dim objDoc As Word.Document
  Dim strFName As String

  On Error Resume Next
  Set objWord = CreateObject("Word.Application")
  Set objDoc = objWord.Documents.Add( _
   Template:="Elegantes " & Memo.dot")

  objDoc.SaveAs Filename:="temp.doc", _
  AddToRecentFiles:=False

  If Err <> 0 Then
    Beep
    MsgBox "Word-Dokument konnte nicht angelegt " & _
           "werden: " & Err.Description, _
           vbOKOnly + vbExclamation, "!!! Problem !!!"
    objWord.Quit
    Set objDoc = Nothing
    Set objWord = Nothing
    Exit Sub
  End If

  strFName = objDoc.FullName
  Err = 0
  With Me.OLEDatei
    .SourceDoc = strFName
    .Action = acOLECreateEmbed
  End With
  If Err <> 0 Then
    Beep
    MsgBox "Word-Dokument konnte nicht eingebunden " & _
           "werden: " & Err.Description, _
           vbOKOnly + vbExclamation, "!!! Problem !!!"
  End If
  objDoc.Close
  objWord.Quit
  Set objDoc = Nothing
  Set objWord = Nothing
  Kill strFName

End Sub

Die Ereignisprozedur startet zunächst eine unsichtbare Instanz von Word und legt dort per "Documents.Add" ein neues Dokument an, das auf der Vorlage "Elegantes Memo.dot" basiert. Das Dokument wird als "temp.doc" gespeichert und dann als eingebettetes OLE-Objekt eingebunden. Anschließend wird die Verbindung zu Word wieder getrennt und das temporär erzeugte Dokument gelöscht.

ANZEIGE 
Kalender, Kontakte und E-Mails ganz einfach im Team nutzen

Mit OLXTeamOutlook, der neuesten Generation intelligenter Team-Software für Outlook 2003, 2002/XP, 2000, 98 und 97 nutzen Sie Ihre Outlook-Daten in Zukunft noch effizienter:

  • Nutzen Sie ab sofort Ihre Termine, Aufgaben, Kontakte, E-Mails und Notizen aus Outlook gemeinsam mit anderen Anwendern im Netzwerk.
  • Richten Sie mit wenigen Mausklicks öffentliche Ordner für Gruppentermine, Raumbelegungen, gemeinsamen Firmenadressen usw. ein oder geben Sie einen oder mehrere Ihrer persönlichen Ordner mit Terminen, Kontakten, E-Mails etc. für andere Anwender frei.
  • Alle Änderungen und Neueingaben in den gemeinsamen Ordnern sind immer sofort ohne Verzögerung in den Ordnern der anderen Teilnehmer sichtbar.
  • Im nützlichen Gruppenkalender sehen Sie jederzeit die Termine aller freigegebenen Kalender im Wochenüberblick.
  • Sie benötigen keinen Exchange-Server, sondern lediglich ein freigegebenes Verzeichnis im Netzwerk, auf das alle beteiligten Anwender zugreifen können. Dieses Verzeichnis muss sich noch nicht einmal auf einem Server befinden! Jeder beliebige Rechner in Ihrem Netzwerk kann diese Aufgabe übernehmen.
  • Der Datenabgleich mit PDA's und Handy's ist weiterhin ohne Probleme möglich.
OLXTeamOutlook ist komplett in Outlook integriert. Unterstützt werden alle Versionen. Also: Outlook 2003, 2002/XP, 2000, 98 und 97. Sie können innerhalb eines Netzwerkes auf Wunsch sogar unterschiedliche Outlook-Versionen nutzen!

Weitere Informationen zu dieser brandneuen Outlook-Erweiterung finden Sie unter:

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


 Access-Helpline

Haben Sie Fragen zu Access Access 97, 2000, 2002/XP oder 2003? 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.

Verschwundener Aufgabenbereich in Access 2003 oder 2002/XP
Versionen: Access 2003 und 2002/XP

 FRAGE:  In meinem Access 2003 ist von einem Tag auf den anderen der Aufgabenbereich verschwunden. Ich kann ihn nicht mehr wie früher über das Menü Ansicht-Symbolleisten-Aufgabenbereich einblenden und er wird auch nicht mehr beim Start von Access angezeigt. Ist dieser Bug bekannt und wenn ja, wie löst man das Problem?
T. Wilke

 ANTWORT:  Wenn Sie am unteren Rand des Aufgabenbereichs die Option Beim Start anzeigen deaktivieren, den Aufgabenbereich ausblenden und Access verlassen, wird ab dem nächsten Start der Eintrag Ansicht-Symbolleisten-Aufgabenbereich nicht mehr angelegt. Zur Lösung gibt es zwei Möglichkeiten: Wählen Sie das Menü Exras-Optionen an und aktivieren Sie die Option Startaufgabenbereich. Verlassen Sie dann Access und starten Sie es einmal neu. Der Aufgabenbereich wird nun wieder beim Start angezeigt und auch der Eintrag Ansicht-Symbolleisten-Aufgabenbereich ist wieder vorhanden.

Außerdem können Sie ein kleines Symbol in der Symbolleiste des Datenbankfensters anlegen, über das sich eine individuelle Umschaltung unter allen Umständen vornehmen lässt:

  1. Aktivieren Sie das Datenbankfenster, klicken Sie mit der rechten Maustaste auf eine Symbolleiste, wählen Sie Anpassen im Kontextmenü an und wechseln Sie auf die Registerkarte "Befehle".
  2. Markieren Sie die in der Liste Kategorien den Eintrag "Ansicht" und ziehen Sie den Eintrag "Aufgabenbereich" aus der Liste Befehle (ziemlich am Ende zu finden) in die Symbolleiste an die gewünschte Position.
  3. Klicken Sie mit der rechten Maustaste auf das Symbol und nehmen Sie die gewünschten Einstellungen vor. Aktivieren Sie beispielsweise die Option Standard und weisen Sie als Symbol die drei kleinen Zahnräder zu, damit das Symbol nicht zuviel Platz belegt.
  4. Klicken Sie im Dialog "Anpassen" auf die Schaltfläche Schließen.
Anzahl der Datensätze im Menüformular anzeigen
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  In meiner Datenbank verwalte ich Schallplatten, CDs, DVDs und MCs in verschiedenen Tabellen. Über ein Menüformular rufe ich Formulare und Berichte zur Erfassung und Auswertung auf. Ich möchte gerne beispielsweise unter der Schaltfläche für den Aufruf der CD-Verwaltung anzeigen lassen, wie viele Datensätze dazu momentan erfasst sind. Wie lässt sich so etwas realisieren?
M. Basner

 ANTWORT:  Legen Sie unter den Schaltflächen jeweils ein ungebundenes Textfeld an und setzen Sie deren Eigenschaften "Steuerelementeinhalt" auf die folgende Formel:

=DomAnzahl("*";"Tabelle")

"DomAnzahl" zählt normalerweise die Anzahl von Datensätzen, bei denen Ein Feldinhalt einem bestimmten Kriterium entspricht. Durch Angabe von "*" und Weglassen des Kriteriums werden nun einfach alle Datensätze der angegebenen Tabelle gezählt, so dass Sie im Formular sofort erkennen können, wie viele Datensätze pro Tabelle vorhanden sind.

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:

für Access 2003, 2002/XP und 2000

für Access 97


Verzögerungen beim Öffnen einer Datenbank im Netzwerk
Versionen: Access 97, 2000, 2002/XP und 2003

 FRAGE:  Wir haben verschiedene Datenbanken auf einem für alle Anwender freigegebenen und mit allen notwendigen Rechten ausgestatteten Netzwerklaufwerk gespeichert. Der Zugriff ist normalerweise recht schnell. Mitunter kommt es jedoch vor, dass beim Öffnen einer Datenbank mehrere Sekunden vergehen, bis das Datenbankfenster angezeigt wird. Es greifen aber nie mehr als zwei oder drei Anwender gleichzeitig zu, so dass es hierdurch eigentlich keine Engpässe geben dürfte.
C. Radebrecht

 ANTWORT:  In Unternehmen werden oftmals Virenscanner auf dem Server eingesetzt, die kontinuierlich den Datenbestand prüfen und beispielsweise neue oder geänderte Dateien sofort scannen. Beim Zugriff auf eine Access-Datenbank wird eine LDB-Datei für Informationen zum gemeinsamen Zugriff angelegt oder aktualisiert. Ihrer Beschreibung nach deutete alles darauf hin, dass ein solcher Scanner ab und zu die LDB-Datei scannt und dabei sperrt. Access unternimmt dann mehrere Versuche, auf die Datei zuzugreifen. Sprechen Sie einmal mit dem Administrator des Servers und bitten Sie ihn darum, LDB-Dateien in die Ausnahmeliste des Virenscanners einzutragen.

 Newsletter-Tipp

Excel-Tipps kostenlos per E-Mail

SmartTools Excel Weekly ist ein kostenloser E-Mail-Newsletter, der Ihnen jede Woche interessante Tipps rund um Excel 97, 2000, 2002/XP und 2003 liefert:

  • Neue Rechenfunktionen für Ihre Tabellen
  • Nützliche VBA-Prozeduren
  • Undokumentierte Parameter und Funktionen
  • Infos zu Bugs und Patches
  • Wichtige Download-Links
  • Helpline für Ihre Fragen zu Excel
Bestellen Sie jetzt Ihr kostenloses Abo:

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/