Access-News & Downloads
Access-Helpline Newsletter-Tipp
Spotlight: SmartTools Outlook Backup 2.0 - Komfortable Sicherung für Ihre Outlook-Daten Was würde passieren, wenn Ihre Outlook-Daten plötzlich und unerwartet verloren gehen? Wenn Sie regelmäßig mit Outlook arbeiten wäre das ein echtes Problem, denn Sie verlieren meistens nicht nur E-Mails, sondern auch wichtige Adressen, Termine aus dem Kalender, Aufgaben und Notizen. Hinzu kommt ein erheblicher Einrichtungsaufwand, um alle Filter und Regeln, Kategorien, Signaturen, Symbolleisten und E-Mail-Konten so einzurichten, dass Sie wieder wie gewohnt arbeiten können. Mit SmartTools Outlook Backup 2.0 haben Sie diese Probleme zuverlässig im Griff:
SmartTools Outlook Backup 2.0 kann zurzeit mit 10% Einführungsrabatt bestellt werden. Weitere Infos finden Sie unter: SmartTools Outlook Backup 2.0 Download-Tipp: Komfortabler Kalender für Access-Formulare Wenn Sie das Kalender-Steuerelement von Access einsetzen, haben Sie mit vielen Einschränkungen zu kämpfen. So lassen sich Samstage, Sonntage, Feiertage oder Termine nicht besonders kenntlich machen, die aktuelle Kalenderwoche fehlt in der Anzeige ganz und es gibt keine Möglichkeit, ohne zusätzliche Programmierung zum aktuellen oder einem individuellen Datum zu springen. Außerdem ist zu natürlich beachten, dass das Kalender-Steuerelement bei der Weitergabe einer Datenbank auf dem Zielrechner registriert sein muss. Der kostenlose SmartTools Kalender ist eine interessante Alternative: Sie können ihn flexibel in Ihre Datenbank einbinden, ohne zusätzliche Steuerelemente oder Komponenten zu benötigen. Dabei können Sie ihn vollkommen frei formatieren und beispielsweise Wochenenden, Feiertage und Termine mit speziellen Farben hervorheben:
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. 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 + Dienstpläne Techinfo: Volltext-Index auf SQL Server 2005 übernehmen In der neuesten Version 2005 hat Microsoft die Volltextsuche des SQL-Servers erheblich überarbeitet, was leider dazu führt, dass vorhandene Indizes des SQL Server 2000 nicht automatisch übernommen werden können. Die Spezialisten des Support Centers haben zu diesem Thema eine Techinfo erstellt, die Schritt für Schritt die Übernahme vorhandener Indizes auf den SQL Server 2005 erläutert. Dazu haben sie ein Script entwickelt, dass die Übernahme teilweise automatisiert. Sie finden die Techinfo unter der folgenden Adresse: Volltext-Index auf SQL Server 2005 übernehmen
Datenbanken zeitgesteuert komprimieren Versionen: Access 2003, 2002/XP, 2000 und 97 Wie wichtig eine regelmäßige Komprimierung von Datenbanken ist, wird meistes erst dann klar, wenn Access eine Datenbank aufgrund von Inkonsistenzen als "Beschädigt" meldet und ein Reparaturversuch notwendig wird. Eine regelmäßige Komprimierung beugt aber nicht nur Inkonsistenzen und Beschädigungen vor, sondern sorgt auch für maximale Performance beim Zugriff auf die Daten. Vor allem in größeren Unternehmen, in denen unzählige Datenbanken unterschiedlichster Versionen eingesetzt werden, gestaltet sich die regelmäßige Komprimierung für den Administrator recht umständlich: Es muss sichergestellt sein, dass alle Anwender die zu komprimierende(n) Datenbank(en) verlassen haben und es müssen alle verteilt gespeicherten Datenbanken berücksichtigt und teilweise manuell (Access 97) komprimiert werden. Access 2003, 2002/XP und 2000 erlauben zwar eine automatische Komprimierung beim Verlassen einer Datenbank, allerdings greift dieses Lösung nicht bei Front-End/Back-End-Lösungen. Sinnvoll wäre hier eine Lösung, die alle Datenbanken zusammengefasst zu einem bestimmten Zeitpunkt oder per Klick auf eine Schaltfläche komprimiert und so auch Back-Ends einschließen kann: Die Datenbank speichert zunächst die Pfade aller zu komprimierenden Datenbanken in einer Tabelle "Datenbanken" und dort in einem Feld "DBPfad". Ein Formular erlaubt einerseits die komfortable Eingabe dieser Pfade und stellt andererseits einen Timer-gesteuerten Mechanismus bereit, der die spezifizierten Datenbanken zu einer bestimmten Zeit in einem Durchgang komprimiert. Außerdem ist eine Schaltfläche Jetzt Komprimieren vorhanden, über die eine Komprimierung losgelöst vom Timer zu einer beliebigen Zeit gestartet werden kann. Eine solche Lösung bauen Sie wie folgt auf:
Dim db As Database, rs As Recordset Dim strDBName As String, strDBTempName As String DoCmd.Hourglass True Set db = CurrentDb() Set rs = db.OpenRecordset("Datenbanken") On Error Resume Next rs.MoveFirst Do Until rs.EOF strDBName = rs("DBPfad") strDBTempName = Left(strDBName, Len(strDBName) - 4) '.MDB raus... strDBTempName = strDBTempName & _ " " & Format(Date, "YYMMDD") & _ ".MDB" Err = 0 DBEngine.CompactDatabase strDBName, strDBTempName If Err = 0 Then Kill strDBName Name strDBTempName As strDBName End If rs.MoveNext Loop rs.Close DoCmd.Hourglass False End Sub
If Format$(Now, "hh:mm") = Me.txtZeit Then Me.TimerInterval = 0 btnKomp_Click DoCmd.Close acForm, Me.Name, acSavePrompt DoCmd.Quit End If End Sub
Und so funktioniert die Lösung: Zunächst schalten wir den Mauszeiger auf die Sanduhr um, damit erkennbar ist, dass im Hintergrund Aktionen ausgeführt werden. Dann öffnen wir die Tabelle "Datenbanken", in der die einzelnen, zu komprimierenden Datenbanken spezifiziert sind, als Recordset. Mögliche Fehler übergehen wir per "On Error Resume Next" zunächst, eine spezifische Abfrage erfolgt im Bedarfsfall bei den folgenden Anweisungen. In einer Endlosschleife gehen wir dann alle spezifizierten Datenbanken durch. Dabei ermitteln wir zunächst den Pfad/Dateinamen der zu komprimierenden Datenbank aus dem Feld "DBPfad". Daraus bauen wir einen temporär zu verwendenden Dateinamen auf, den die Methode "CompactDatabase" als Ziel für die Komprimierung erwartet. Anschließend rufen wir die Methode "CompactDatabase" mit dem Pfad/Dateinamen der zu komprimierenden Datenbank und dem Dateinamen der Datenbank, in der das komprimierte Ergebnis zunächst gespeichert werden soll, auf. Wenn bei der Komprimierung kein Fehler aufgetreten ist, löschen wir zuerst die Quell-Datenbank, die zu komprimieren war. Das komprimierte Ergebnis befindet sich in der über den temporären Dateinamen spezifizierten Datenbank, die wir dann in den ursprünglichen Namen umbenennen. Um die Komprimierung zeitgesteuert zu starten, setzen wir den Timer des Formulars ein. Dieser prüft jede Sekunde (TimerInterval= 1000) gegen das Feld "txtZeit", ob die eingegebene Zeit erreicht ist. Wenn ja, deaktiviert er sich zunächst selber (TimerInterval= 0), um einen Mehrfachaufruf zu vermeiden, ruft dann die Ereignisprozedur "Beim Klicken" der Schaltfläche "btnKomp" (Jetzt jomprimieren) auf und beendet die Datenbank anschließend. Bitte beachten Sie: Sie sollten diese Lösung immer erst dann einsetzen, nachdem die tägliche, regelmäßige Datensicherung gelaufen ist! Im Falle eines unvorhersehbaren Fehlers, bei dem die Quell-Datenbank gelöscht, das komprimierte Ergebnis aber nicht zur Verfügung steht, sind so zumindest die unkomprimierten Versionen der Datenbanken auf der Datensicherung vorhanden.
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. 'InStr' für mehrere Zeichen Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Mit einer Abfrage wie If InStr(strText, "-") <> 0 Then... kann ich prüfen, ob ein bestimmtes Zeichen in einer Zeichenkette vorhanden ist. Um auf weitere Zeichen zu prüfen, muss ich entsprechend viele "If.. Then.. ElseIf"-Abfragen hintereinander ausführen. Geht das auch einfacher? Konkret möchte ich feststellen können, ob in einer Telefonnummer die Trennzeichen "-", "/", "(" oder ")" enthalten sind. E. Thiess ANTWORT: Abhilfe schafft eine benutzerdefinierte Funktion "MultiInStr()", die Sie in einem neuen oder einem vorhandenen Modul ablegen: Function MultiInStr(aStr As Variant, _ theChars As String) As Integer Dim I As Integer, Cnt As Integer Cnt = 0 For I = 1 To Len(theChars) If InStr(aStr, Mid$(theChars, I, 1)) <> 0 Then Cnt = Cnt + 1 End If Next I MultiInStr = Cnt End Function Der Aufruf der Funktion sieht beispielsweise so aus: If MultiInStr(strTelefon, "-/()")<> 0 Then... Die Funktion geht in einer Schleife alle per Parameter "theChars" spezifizierten Zeichen durch und prüft mit der Standard-Funktion "InStr()", ob das Zeichen in der Zeichenkette gemäß "aStr" vorhanden ist. Ist das der Fall, wird ein Zähler jeweils um eins erhöht und als Funktionsergebnis gesetzt. Ist das Ergebnis "0", ist keines der Zeichen vorhanden, ein Ergebnis ungleich "0" zeigt an, dass mindestens ein Zeichen in der Zeichenkette vorhanden ist.
Nachtrag: Formulare schneller laden Versionen: Access 2003, 2002/XP, 2000 und 97 Zu diesem Tipp der Woche haben uns einige Zuschriften erreicht, von denen wir zwei zusammengefasst beantworten möchten: FRAGE: Ich möchte gerne analog zu den Formularen auch zwei Berichte vorab öffnen, die mir Ergebnisse aus eingebundenen Tabellen, die jeweils über Nacht aktualisiert werden, anzeigen. Welche Erweiterungen sind dazu notwendig? P. Rost FRAGE: Die Lösung ist sicherlich einfach, aber wie kann ich eine Access-Datenbank automatisch beim Einschalten des Rechners starten lassen? R. Kunz ANTWORT: Um auch Berichte beim Öffnen der Datenbank automatisch anzuzeigen, gehen Sie wie folgt vor:
AnzeigeModus: Datentyp "Zahl", Feldgröße: "Byte"
Herkunftstyp: Werteliste Datensatzherkunft: Versteckt;0;Minimiert;1;Normal;2 Gebundene Spalte: 2 Anzahl Spalten: 2 Spaltenbreiten: 3cm;0cm
Set rs = db.OpenRecordset("AutoLaden_Berichte") rs.MoveLast If Err = 0 Then Anz = rs.RecordCount rs.MoveFirst For I = 1 To Anz strReport = rs("BerichtsName") 'Access 97, 2000 'DoCmd.OpenReport strReport, acViewPreview 'ab Access 2002/XP bModus = rs("AnzeigeModus") Select Case bModus Case 0 DoCmd.OpenReport strReport, _ acViewPreview, , , , , acHidden Case 1 DoCmd.OpenReport strReport, _ acViewPreview, , , , , acIcon Case 2 DoCmd.OpenReport strReport, _ acViewPreview, , , , , acWindowNormal End Select rs.MoveNext Next I End If 'Err= 0... rs.Close Achtung! Ein spezieller Anzeigemodus kann für Berichte erst ab Access 2002/XP genutzt werden! Beim Einsatz der Lösung mit Access 2000 oder Access 97 wird diese Einstellung ignoriert! Kommentieren Sie dann den Block ab der Zeile "'ab Access 2002/XP" aus und entfernen Sie das Rem-Zeichen "'" vor der Zeile "DoCmd.OpenReport...". Bitte beachten Sie weiterhin, dass Berichte auf diesem Wege immer in der Seitenansicht angezeigt und nicht direkt ausgedruckt werden!
Um Ihre Datenbank direkt mit dem Einschalten des Rechners automatisch zu laden, gehen Sie wie folgt vor:
Diese Anweisung öffnet den Windows-Explorer mit dem persönlichen Stammverzeichnis des aktuellen Benutzers. Öffnen Sie hier nun "Startmenü", "Programme" und "AutoStart" jeweils per Doppelklick.
Office-Tipps kostenlos per E-Mail Der SmartTools Office Insider ist Ihr monatlicher News-Service für Microsoft Office. Hier finden Sie aktuelle Informationen zu Access, Excel, Word & Co, eine Fülle von Download-Links sowie detaillierte Tipps zu neuen Patches und Updates. So verpassen Sie nichts, was Sie unbedingt zu Microsoft Office wissen müssen.
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.
|