Access-News & Downloads
Access-Helpline
News: Neue Version der umfangreichsten Sourcecode-Bibliothek für Access Das Total Visual SourceBook ist das absolute Muss für jeden Entwickler in Access 2003, 2002/XP und 2000. Für Ihre Projekte in Access erhalten Sie komplett ungeschützten, offenen und frei verwendbaren Sourcecode. Ab sofort steht die neue Version 2003 mit erweiterten und neuen Prozeduren zur Verfügung. Alles in allem erhalten Sie:
Alle Prozeduren sind getestet, voll dokumentiert und so entwickelt, dass Sie sie sofort in Ihren Projekten einsetzen können. Sie können die Bibliothek außerdem mit wenig Aufwand um Ihre persönlichen Prozeduren erweitern und so Stück für Stück Ihre individuelle Code-Datenbank aufbauen. Weitere Infos unter: Total Visual SourceBook Download-Tipp: Access-Berichte komfortabel drucken Die Ausgabe von Access-Berichten kann einige Zeit in Anspruch nehmen, wenn es sich um große Datenmengen handelt oder Berechnungen enthalten sind. Mit dem kostenlosen SmartTools MultiPrint für Access müssen Sie in Zukunft nicht mehr wartend vor dem Rechner sitzen, sondern verlegen den Ausdruck Ihrer Berichte ganz einfach in die Mittagspause oder auf den Feierabend. Nach der automatischen Installation steht Ihnen ein neuer Menüpunkt zur Verfügung, über den Sie MultiPrint jederzeit aufrufen können. Der Assistent zeigt eine Liste aller verfügbaren Berichte an und Sie markieren einfach die gewünschten Einträge. Ein weiterer Mausklick genügt dann und Access gibt voll automatisch einen Bericht nach dem anderen aus:
News: Microsoft gewährt erste Einblicke in Office 12 Auf der Entwicklerkonferenz PDC 2005 in Los Angeles hat Microsoft am Dienstag erstmal die nächste Office-Version öffentlich vorgestellt. Bereits auf den ersten Blick ist zu erkennen, dass die Benutzeroberfläche komplett überarbeitet wurde. Ziel der Entwickler war es, den Anwendern einen möglichst einfachen Zugriff auf die verfügbaren Funktionen in den einzelnen Office-Applikationen zu geben. Daher hat man sich von dem bisherigen Konzept mit Menüs und Symbolleisten verabschiedet. An ihre Stelle treten aufgabenorientierte "ribbons", die alle Funktionen zu einem bestimmten Themenbereich zusammenfassen. Auf diese Weise soll die Suche nach Befehlen oder Funktionen entfallen, denn es gibt keine Symbolleisten oder Menüpunkte mehr, die man explizit einblenden oder aktivieren muss. Wenn Sie etwas formatieren möchten und sich beispielsweise gerade in einer Tabelle befinden, sind in dem "ribbon" automatisch alle verfügbaren Funktionen sichtbar. Weitere Informationen und einige Bilder von Office 12 finden Sie in der folgenden Pressemitteilung: Einblicke in Office 12 Weitere Bilder finden Sie hier: Bilder zu Office 12 Während bereits einige Details zu den Neuerungen in Excel Word, Outlook und PowerPoint veröffentlicht wurden, fließen die Informationen zu Access 12 noch recht spärlich. In der oben erwähnten Pressemeldung von Microsoft, finden Sie lediglich eine Abbildung von Access 12. Ein weiteres Bild, das ein Teilnehmer an der PDC-Konferenz online gestellt hat, finden Sie hier: Bild zu Access 12 Außerdem konnten wir in Erfahrung bringen:
Techinfo: SQL-Datenbanken komfortabel sichern Die MSDN-Spezialisten stellen in einer deutschsprachigen Techinfo zwei Funktionen "BackupSqlDatabase" und "RestoreSqlDatabase" vor, mit deren Hilfe Sie beliebige SQL-Datenbanken per VBA und ADO sichern und wieder zurückspielen können. Die dabei generierten Backup-Dateien können in einem beliebigen Verzeichnis auf dem SQL Server abgelegt bzw. aus einem beliebigen Verzeichnis vom SQL Server wieder eingelesen werden: SQL-Datenbanken komfortabel sichern Die gezeigten Beispiele können Sie nach kleinen Anpassungen direkt für eigene Projekte übernehmen.
Protokollfunktion für Ihre Datenbanken, Teil 2 Versionen: Access 2003, 2002/XP, 2000 und 97 Nachdem wir Ihnen in der letzten Ausgabe die Basis einer Protokollfunktion für Access in Form der Prozedur "WriteLOG" vorgestellt haben, geht es nun im zweiten Teil um Funktionen für den Abruf weitergehender Access-, Netzwerk- und Systeminfos und deren Einsatz mit "WriteLOG". Mit der Funktion "SysCmd()" stellt Access zunächst eine "Allround-Funktion" zur Verfügung, über die Sie verschiedene Informationen zu Access abfragen können. Dazu ist "SysCmd()" ein Parameter zu übergeben, der die benötigte Information spezifiziert. Ein Beispiel dazu haben wir im ersten Teil bereits mit "SysCmd(acSysCmdAccessVer)" für die Abfrage der Access-Version kennen gelernt. Daneben können Sie über "SysCmd()" noch das Installationsverzeichnis von Access, die aktuelle Arbeitsgruppendatei abfragen und feststellen, ob die aktuelle Datenbank mit der Runtime-Umgebung läuft. Damit Sie sich die kryptischen Parameterbezeichnungen nicht merken müssen, setzen Sie Einzelfunktionen mit aussagekräftigeren Namen ein, die Sie in das im ersten Teil angelegte Modul "modWriteLOG" eingeben: Function AccVersion() As Byte Dim intTemp As Integer, strTemp As String strTemp = CStr(SysCmd(acSysCmdAccessVer)) intTemp = Val(Left$(strTemp, 2)) AccVersion = intTemp End Function Function AccDir() As String AccDir = SysCmd(acSysCmdAccessDir) End Function Function AccSystemMDW() As String AccSystemMDW = SysCmd(acSysCmdGetWorkgroupFile) End Function Function AccIsRuntime() As Boolean AccIsRuntime = SysCmd(acSysCmdRuntime) End Function Alle Funktionen werden ohne Parameter aufgerufen und liefern die gewünschten Informationen als Zeichenkette. Ausnahme ist "AccIsRuntime()" - hier wird "True" oder "False" als Ergebnis geliefert. Den Aufruf bauen Sie zum Beispiel in eine Funktion "GenerelleInfos()" ein, die über eine Aktion "AusführenCode" im Makro "AutoExec" beim Öffnen der Datenbank ausgeführt wird: Function GenerelleInfos() WriteLOG String$(75, "-") WriteLOG "Access-Version: " & AccVersion() WriteLOG "Access-Verzeichnis: " & AccDir() WriteLOG "Access-MDW: " & AccSystemMDW() WriteLOG "Access-Runtime: " & CStr(AccIsRuntime()) End Function Diese Funktion schreibt gleichzeitig mit Hilfe von "String$()" eine Trennlinie in das Protokoll, damit die Sessions einfacher unterschieden werden können. Die API-Funktion "GetSystemMetrics()" liefert die unterschiedlichsten Informationen über die Benutzeroberfläche wie beispielsweise die Höhe einer Menüzeile oder einer Titelleiste, die Breite von Rahmen und Rollbalken oder der aktuellen Doppelklick-Geschwindigkeit:. Über einen Parameter "nIndex" spezifizieren Sie die benötigte Information. Hierfür sind entsprechende Konstanten wie zum Beispiel "SM_CXSCREEN" oder "SM_CYSCREEN" im API festgelegt, die Sie im allgemeinen Teil des Moduls "modWriteLOG" wie folgt deklarieren: Declare Function GetSystemMetrics Lib "user32" _ (ByVal nIndex As Long) As Long Public Const SM_CXSCREEN = 0 Public Const SM_CYSCREEN = 1 Diese beiden Konstanten legen fest, dass als Information die aktuelle Auflösung des Bildschirms (horizontal= SM_CXSCREEN, vertikale= SM_CYSCREEN) geliefert wird. Basierend darauf lassen sch nun zwei Funktionen "GetScreenX()" und "GetScreenY()" realisieren, die die horizontale und vertikale Bildschirmauflösung liefern: Function GetScreenX() As Long GetScreenX = GetSystemMetrics(SM_CXSCREEN) End Function Function GetScreenY() As Long GetScreenY = GetSystemMetrics(SM_CYSCREEN) End Function Den Aufruf bauen Sie dann bei Bedarf in die beim Öffnen de Datenbank per "AutoExec" aufgerufene Funktion "GenerelleInfos()" ein und können so die aktuelle Bildschirmauflösung in das Protokoll schreiben lassen: Function GenerelleInfos() WriteLOG String$(75, "-") WriteLOG "Auflösung: " & _ GetScreenX() & "*" & GetScreenY() End Function Anhand des Windows-Anmeldenamens und des Rechnernamens lassen sich beispielsweise Zugriffsprobleme in bestimmten Netzwerksegmenten einfacher lokalisieren oder Änderungen protokollieren. Dazu können Sie zwei API-Funktionen "GetUserName()" und "GetComputerName()" nutzen, die über zwei "Wrapper"-Funktionen "GetNetworkUserName()" und "GetNetworkComputerName()" aufgerufen werden: Declare Function GetUserName Lib "advapi32.dll" _ Alias "GetUserNameA" _ (ByVal lpBuffer As String, nSize As Long) As Long Declare Function GetComputerName Lib "kernel32" _ Alias "GetComputerNameA" _ (ByVal lpBuffer As String, nSize As Long) As Long Function GetNetworkUserName() As String Dim lngMaxLen As Long, lngResult As Long Dim strUserName As String lngMaxLen = 250 strUserName = String$(lngMaxLen, 0) lngResult = GetUserName(strUserName, lngMaxLen) If lngResult <> 0 Then GetNetworkUserName = _ Trim$(Left$(strUserName, lngMaxLen - 1)) Else GetNetworkUserName = "" End If End Function Function GetNetworkComputerName() As String Dim lngMaxLen As Long, lngResult As Long Dim strComputerName As String lngMaxLen = 16 strComputerName = String$(lngMaxLen, 0) lngResult = GetComputerName(strComputerName, lngMaxLen) If lngResult <> 0 Then GetNetworkComputerName = _ Trim$(Left$(strComputerName, lngMaxLen)) Else GetNetworkComputerName = "" End If End Function Damit ließe sich dann beispielsweise eine Feld-Änderung über die Ereignisprozedur "Nach Aktualisierung" wie folgt protokollieren: WriteLOG "Feld 'Telefon' geändert von " & _ GetNetworkUserName() & "/" & _ GetNetworkComputerName() Die hier als vorgestellten Funktionen zur Abfrage weitergehender Informationen sind nur ein kleiner Ausriss dessen, was möglich ist. Wenn Sie einmal über Google Groups (http://groups.google.de) nach "vba api get system informations" suchen, finden Sie Dutzende von weiteren Routinen, die sich in Verbindung mit "WriteLOG" einsetzen lassen.
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. Unterbericht auf 20 Zeilen begrenzen Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: In einer Kundenverwaltung habe ich einen Bericht mit den Kundenstammdaten erstellt und gebe in einem Unterbericht dazu die Rechungskopfdaten als Liste (jede Rechnung eine Zeile) aus. Ich möchte aber nur die letzten 20 Rechnungen des Kunden in dem Unterbericht anzeigen und ausdrucken. Wie kann ich diese Anzahl auf maximal 20 Datensätze begrenzen? W. Bicheler ANTWORT: Ändern Sie zunächst die dem Unterbericht zugrunde liegende Abfrage so, dass die Datensätze chronologisch absteigend nach Rechnungsdatum sortiert werden (neueste Rechnung ganz oben). Wählen Sie dann das Menü Ansicht-Eigenschaften an und stellen Sie die Eigenschaft "Spitzenwerte" auf "20" ein. Parameter '/wrkgrp' richtig einsetzen Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Ich habe bezüglich Ihres Beitrags "Zugriff auf offene und geschützte Datenbanken" ein ähnliches Problem: Ich möchte die Anmeldung auf eine auf dem Netzwerk liegende Datenbank benutzen und bin so vorgegangen, wie Sie es vorschlagen. Nur leider greift Access nicht wie erwartet auf die MDW zu. Ich benutze eine Verknüpfung mit folgendem Ziel: O:\Lichttechnik\Leuchtendatenbank\ Leuchtendatenblatt.mdb /wrkgrp" O:\Lichttechnik\Leuchtendatenbank\SPEZIAL.MDW" Leider erhalte ich keinen Anmeldedialog und wenn ich in einem Formular den Befehl MsgBox SysCmd(acSysCmdGetWorkgroupFile)) aufrufe, bekomme ich die Meldung, dass die Workgroup-Datei noch meine Standard.MDW ist. Was habe ich falsch gemacht? I. Ellis ANTWORT: In der Verknüpfung muss zusätzlich zu diesen Angaben noch der Aufruf der MSACCESS.EXE hinzugefügt werden. Außerdem ist die Spezifikation der Datenbank immer der letzte Parameter. Im Feld Ziel muss also zum Beispiel folgendes stehen: "C:\Programme\Office 2000\Office\msaccess.exe" /wrkgrp "O:\Lichttechnik\Leuchtendatenbank\SPEZIAL.MDW" "O:\Lichttechnik\Leuchtendatenbank\Leuchtendatenblatt.mdb" Bitte beachten Sie, dass alle drei Angaben in einer Zeile und jeweils durch Leerzeichen getrennt eingegeben werden müssen.
Umlaute korrekt importieren Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Wir importieren mit Access Daten, die aus verschiedenen Fachbereichen zur Verfügung gestellt werden. Die in den TXT-Dateien enthaltenen Umlaute und Sonderzeichen wie das "ß" (SZ) werden dabei leider "verstümmelt", also beispielsweise als Rechteck umgesetzt. Wissen Sie eine Lösung für das Problem? P. Mathess ANTWORT: Klicken Sie beim Import auf der ersten Seite des Import-Assistenten auf die Schaltfläche Weitere. Stellen Sie dort unter "Codepage" den Eintrag "Unicode (UTF-8)" ein und übernehmen Sie die Änderungen mit einem Klick auf Ok. Führen Sie den Import dann wie gewohnt weiter aus, Umlaute und Sonderzeichen werden nun korrekt umgesetzt.
Outlook-Tipps kostenlos per E-Mail SmartTools Outlook Weekly bietet jede Woche Tipps, aktuelle Infos und Download-Links für Outlook 2003, 2002/XP, 2000 und 97/98:
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.
|