Access-News & Downloads
Access-Helpline
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:
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:
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.
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:
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.
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:
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.
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.
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:
Klicken Sie hier für Ihr kostenloses Abo!
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.
|