Access-News & Downloads
Access-Helpline
Spotlight: Total Access Memo 2003 für formatierte Memofelder in Ihren Formularen und Berichten Total Access Memo ist eine leistungsfähige Access-Erweiterung, mit der Sie formatierten Text in Ihren Datenbanken anzeigen, bearbeiten und ausdrucken können. Die neue Version Total Access Memo 2003 unterstützt sowohl Access 2000 als auch 2002/XP und 2003! Nach der Installation genügen wenige Mausklicks, um das neue Steuerelement in ein Formular einzufügen und an ein Memofeld zu binden. Vorhandene Inhalte bleiben komplett erhalten und können danach in einem leistungsfähigen Editor beliebig formatiert werden. Für den Ausdruck der Daten fügen Sie das Memo-Steuerelement einfach in Ihre Berichte ein oder exportieren den Inhalt ohne Verluste nach Word. Die aktuelle Version 2003 bietet jetzt eine neue Funktion zur komfortablen Kontrolle der Steuerelementgröße auf Berichten. Außerdem können Sie in dem integrierten Editor die deutsche Rechtschreibprüfung von Office nutzen. Weitere Informationen zu Total Access Memo 2003 für Access 2000, 2002/XP und 2003 finden Sie unter: http://www.add-in-world.com/katalog/tamemo2003/ Total Access Memo gibt es auch in einer speziellen Version für Access 97: http://www.add-in-world.com/katalog/tamemo2000/ Download-Tipp: Der Wasserzeichen-Assistent für Access-Berichte Access bietet standardmäßig keine Möglichkeit, um Berichte mit einem Wasserzeichen zu versehen. Unser kostenloser Assistent hilft weiter: Nach der automatischen Installation steht Ihnen ein neues Menü Extras-Add-Ins-SmartTools Wasserzeichen-Assistent zur Verfügung, über das Sie die neue Funktion aufrufen können. In einem Dialogfeld werden Ihnen hier alle Berichte der aktuellen Datenbank angeboten. Markieren Sie einen Eintrag und wählen Sie anschließend das gewünschte Wasserzeichen aus. "Entwurf", "Kopie" und "Vertraulich" sind bereits vorgegeben, aber Sie können auch beliebige weitere Wasserzeichen wie Ihr Firmenlogo ergänzen. Weitere Informationen und den Download-Link finden Sie unter:
News: Preview-Version des SQL Server Management Studio Express verfügbar Wie bereits vor einiger Zeit berichtet, ersetzt die neue SQL-Server 2005 Express Edition die Version des SQL-Servers, die mit Access 2003, 2002/XP und 2000 ausgeliefert wurde. Sie finden den kostenlosen Download unter:
Einen Überblick über die angebotenen Funktionen und einen Vergleich mit den Features der anderen Editionen des SQL-Server 2005 finden Sie hier: Vergleich der SQL Server 2005 Editionen Als komfortables Administrationstool für den SQL-Server 2005 Express war ursprünglich der so genannte "Express Manager" vorgesehen, aber Microsoft entschloss sich kurzfristig, stattdessen eine spezielle Version des SQL Server Management Studio zu entwickeln. Eine erste Preview-Version können Sie jetzt kostenlos unter der folgenden Adresse herunterladen:
Verknüpfte Excel-Tabellen in Access wieder aktualisieren, Teil 2 Versionen: Access 2003 und 2002/XP Wie bereits berichtet lassen sich nach der Installation des Service Pack 2 für Office 2003 oder des Hotfixes KB904018 vom 18.10.2005 für Access 2002/XP verknüpfte Excel-Tabellen nicht mehr aktualisieren. In unserem zweiteiligen Tipp der Woche stellen wir Ihnen eine Technik vor, mit der sich das Problem zwar nicht komplett lösen, aber zumindest etwas kompensieren lässt. Im ersten Teil dieses Tipps der Woche ging es dabei um den automatisierten Import einer Excel-Tabelle beim Öffnen einer Datenbank. Nun muss die Excel-Tabelle noch automatisch beim Schließen der Datenbank exportiert werden. Access stellt mit dem "AutoExec"-Makro zwar eine Möglichkeit bereit, Aktionen beim Öffnen einer Datenbank automatisch auszuführen, aber ein "AutoClose"-Makro bzw. einen vergleichbaren Mechanismus, der beim Schließen Aktionen automatisch ausführt, gibt nicht. Für den Export der geänderten Excel-Daten müssen wir also zu einem Trick greifen: Wir setzen ein Formular ein, das beim Öffnen der Datenbank automatisch versteckt über "AutoExec" geladen wird. Beim Verlassen der Datenbank schließt Access der Reihe nach alle offenen Formulare und ruft dabei die Ereignisprozedur "Beim Schließen" des jeweiligen Formulars und somit auch die Ereignisprozedur des unsichtbaren Formulars auf. Hier werden dann die für den Export notwendigen Anweisungen ausgeführt:
Dim strPath As String Dim strFName As String Dim strExcelTabName As String Dim strAccTabName As String Dim fOK As Boolean strPath = GetDataBasePath() strFName = AddSlash(strPath) & "Testmappe.xls" strExcelTabName = "Tabelle1" strAccTabName = "ExcelImport" fOK = ExportExcelTab(strFName, _ strTabRange, _ strAccTabName) End Sub
Function ExportExcelTab(strWorkbook As String, _ strExcelTabName As String, _ strAccTabName As String) Dim objExcel As Excel.Application Dim wb As Excel.Workbook Dim ws As Excel.Worksheet Dim strNewName As String ExportExcelTab = False 'Vorgabe: Problem On Error GoTo ExcelError Set objExcel = CreateObject("Excel.Application") Set wb = objExcel.Workbooks.Open(strWorkbook) On Error Resume Next Err = 0 objExcel.Visible = True Set ws = wb.Sheets(strExcelTabName) If Err = 0 Then 'Tabellenblatt vorhanden, umbenennen mit DZ-Stempel strNewName = ws.Name & " " & _ Format$(Now, "yyyy-mm-dd hh-nn") ws.Name = strNewName ws.Move After:=wb.Sheets(wb.Sheets.Count) Set ws = wb.Sheets.Add ws.Name = strExcelTabName ws.Move Before:=wb.Sheets(1) ws.Range("A1").Select End If wb.Close True Err = 0 DoCmd.TransferSpreadsheet acExport, _ acSpreadsheetTypeExcel8, _ strAccTabName, strWorkbook, True, _ strExcelTabName & "!" If Err <> 0 Then Beep MsgBox "Fehler beim Exportieren von Tabelle '" & _ strAccTabName & _ "' in '" & strWorkbook & "'" & _ " (Tabelle: " & strExcelTabName & ")" & _ vbCrLf & vbCrLf & Err.Description, _ vbOKOnly + vbExclamation, "!!! Problem !!!" Else ExportExcelTab = True End If ExitFunc: On Error Resume Next objExcel.Quit Set ws = Nothing Set wb = Nothing Set objExcel = Nothing DoEvents Err.Clear Exit Function ExcelError: Beep MsgBox "Fehler beim Zugriff auf Excel: " & _ Err.Description, _ vbOKOnly + vbExclamation, "!!! Problem !!!" Resume ExitFunc End Function Um sicherzustellen, dass Daten in der Excel-Arbeitsmappe nicht unwiederbringlich überschrieben werden, legen wir vor dem Export grundsätzlich eine Sicherungskopie des betreffenden Tabellenblattes unter dem ursprünglichen Namen an; ergänzt um einen Datums-/Zeitstempel. Dazu wird die Excel-Arbeitsmappe per Office Automation geöffnet, das Tabellenblatt über die "Sheets"-Auflistung adressiert und wie erläutert umbenannt. Danach verschieben wir es mit der Methode "Move" ans Ende der Tabellenblätter. Anschließend legen wir ein neues Tabellenblatt an, benennen es wie das Tabellenblatt, in das die Daten geschrieben werden sollen, verschieben es an den Anfang der Tabellenblätter und aktivieren die erste Zelle. Dann schließen wir die Arbeitsmappe wieder, damit es keine Konflikte mit dem gleich folgenden "DoCmd.TransferSpreadsheet" gibt. Der Parameter "True" sorgt dabei dafür, dass die Arbeitsmappe ohne Rückfrage "Änderungen speichern?" gesichert wird. Der zweite Schritt besteht darin, per "DoCmd.TransferSpreadsheet" die Access-Tabelle (Parameter "strAccTabName") in die jeweilige Arbeitsmappe (Parameter "strWorkbook" und dort in die gewünschte Excel-Tabelle (Parameter "strExcelTabName") zu übertragen. Wichtig ist auch hier wieder, dass der Name der Excel-Tabelle um ein Ausrufezeichen ergänzt wird, damit Excel erkennt, dass ein komplettes Tabellenblatt adressiert wird. Kommt es beim Export zu einem Fehler, wird er angezeigt. Den Abschluss bilden dann nur noch einige "Aufräumarbeiten". Für die Fehlerbehandlung schalten wir übrigens zwischen individueller Behandlung (On Error Resume Next, If Err<> 0 Then...) und einer zentralen Fehlerbehandlung für Excel-Zugriffe (ExcelError) um. Den Export können Sie bei Bedarf mit der folgenden Prozedur testen: Sub TestExport() Dim strPath As String Dim strFName As String Dim strExcelTabName As String Dim strAccTabName As String Dim fOK As Boolean strPath = GetDataBasePath() strFName = AddSlash(strPath) & "Testmappe.xls" strExcelTabName = "Tabelle1" strAccTabName = "ExcelImport" fOK = ExportExcelTab(strFName, strExcelTabName, _ strAccTabName) End Sub
Haben Sie Fragen zu Access 2003, 2002/XP, 2000 und 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 eine oder mehrere Fragen aus und beantwortet Sie an dieser Stelle im Newsletter. Einsatz von Berichten auf anderen Systemen Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Wir haben auf unserem System eine Datenbank mit verschiedenen Berichten entwickelt. Diese Datenbank soll später intern in unserem Unternehmen in verschiedenen Abteilungen und extern bei verschiedenen Kunden eingesetzt werden. Dort zeigt Access nach der Weitergabe regelmäßig eine Meldung des Inhalts "Dieser Bericht wurde für den Drucker XYZ formatiert, aber dieser Drucker ist nicht verfügbar..." an. Manchmal werden auch Einstellungen wie die Seitenränder auf nicht nachvollziehbare Werte zurückgesetzt. Die Einstellung Standarddrucker, erreichbar über das Menü Datei-Seite Einrichten auf der Registerkarte "Seite", ändert an diesem Verhalten in der Regel nichts. Können Sie uns Tipps geben, wie sich dieses Problem lösen lässt? D. Funke ANTWORT: Beim Entwurf von Berichten legt Access die Daten des in der Systemsteuerung als "Standard" definierten Druckers zugrunde. Über diesen Druckertreiber ermittelt Access Informationen wie verfügbare Schriftarten, Seitenformate oder bedruckbare Ränder und speichert Teile dieser Informationen mit dem Bericht. Wird der Bericht geöffnet, prüft Access, ob die mit dem Bericht gespeicherten Einstellungen auf dem jeweiligen System verwendet werden können. Stellt Access dabei gravierende Abweichungen wie beispielsweise andere bedruckbare Bereiche oder das Fehlen eines Seitenformats fest, wird die erwähnte Meldung angezeigt oder die betreffende Einstellung kurzerhand an die Gegebenheiten des aktuellen Systems angepasst. Zum Beispiel: Sie haben für einen Bericht einen oberen und unteren Seitenrand von 10 mm festgelegt. Auf dem Zielsystem ist ein Standard-Drucker ausgewählt, der nur bis auf 15 mm an den Rand heran drucken kann, also über andere bedruckbare Bereiche verfügt. Hier ändert Access die Seitenränder einfach auf die Standard-Einstellung von zum Beispiel 25 mm. Bei größeren Abweichungen, wenn beispielsweise über einen nicht vorhandenen Druckerschacht oder in einer nicht verfügbaren Schrift ausgedruckt werden soll, erscheint die erwähnte Meldung und der Bericht wird im Entwurfsmodus zur Anpassung angezeigt. Bislang gibt es keine wirklich befriedigende Lösung für dieses Problem. Die Nutzung von Eigenschaften, die auf dem Entwickler-System eingestellt, aber auf dem Ziel-System nicht verfügbar sind, ist nun mal nicht möglich. Access muss irgendwie reagieren, um die unnötige Verschwendung von Papier durch einen Ausdruck mit falschen Einstellungen zu vermeiden. Folgende Hinweise helfen, das Auftreten des Problems zu minimieren:
Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: In unserer Firma ist eine Datenbank in verschiedenen Abteilungen im Einsatz. Zukünftig sollen in einer darin enthaltenen Adressverwaltung zusätzliche Informationen in entsprechenden Feldern festgehalten werden. Eine einmal angepasste Tabelle kann ich nicht einfach per "Import" in andere Datenbanken übertragen, da dabei ja die vorhandenen, Daten verloren gehen. Ich kann also nur das erweiterte Formular auf diesem Wege übertragen und müsste auf jedem Rechner die Tabellen manuell erweitern. Lässt sich das automatisieren? E. Wolthers ANTWORT: Die Lösung ist eine "Datendefinitionsabfrage": Über eine solche Abfrage können Sie Felder zu einer Tabelle hinzufügen, ohne dass die vorhandenen Daten in irgendeiner Art beeinträchtigt werden. Die Datendefinitionsabfrage können Sie dann, wie das Formular, in die anderen Datenbanken importieren und dort ausführen:
<Format> <Länge> [NOT NULL]; "ALTER TABLE" leitet eine Änderung einer Tabelle ein, die Sie über "<TabName>" angeben. "ADD COLUMN" definiert die Änderung, die erfolgen soll, in diesem Fall das Hinzufügen eines Feldes. "Feldname" legt den Namen des Feldes fest, bei Leer- oder Sonderzeichen im Feldnamen setzen Sie eckige Klammern ein. "DATENTYP" legt den Datentyp für das Feld fest. Mögliche Datentypen sind "TEXT", "MEMO", "BYTE", "INTEGER", "LONG", "SINGLE", "DOUBLE", "DATETIME" für Datum/Zeit-Felder, "CURRENCY" für Währungs-Felder, "YESNO" für Ja/Nein-Felder, "LONGBINARY" für OLE-Felder und "COUNTER" für AutoWert-Felder. Den Datentyp "HYPERLINK" unterstützt der DDL-Standard nicht! Sofern für das Feld eine Länge zu setzen ist (nur bei Textfeldern möglich), setzen Sie die gewünschte Länge in runden Klammern hinter den Datentyp. Die Angabe von "NOT NULL" entspricht schließlich der Einstellung "Eingabe erforderlich = Ja" - in dieses Feld müssen also Daten eingegeben werden, sonst weigert Access sich, den Datensatz zu speichern. Die folgende Anweisung fügt zum Beispiel zur Tabelle "Adressen" ein Feld "EMailAdresse" vom Datentyp "Text" mit einer Länge von "200" Zeichen hinzu: ALTER TABLE Adressen ADD COLUMN EMailAdresse Text (200);
Bezeichnungsfelder mit Schatteneffekt Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Ich möchte gerne Bezeichnungsfelder mit Schatteneffekt in meinen Formularen einsetzen. Dazu habe ich ein Bezeichnungsfeld zum Beispiel mit "Nachname:" angelegt, die Schrift auf Dunkelgrau eingestellt, das Bezeichnungsfeld kopiert und eingefügt und die Schrift wieder auf "Schwarz" eingestellt. Es gelingt mir jedoch nicht, die beiden Bezeichnungsfelder so übereinander zu positionieren, dass sich ein Schatteneffekt ergibt, weil das Bezeichnungsfeld immer am Raster ausgerichtet wird. Das Raster aus- und wieder einzuschalten, ist recht umständlich. Gibt es eine Lösung? A. Mehnert ANTWORT: Markieren Sie das Bezeichnungsfeld mit der schwarzen Schrift, halten Sie die Umschalt-Taste gedrückt und benutzen Sie die Cursor-Tasten zum Verschieben. Dabei wird das Raster ignoriert und das Bezeichnungsfeld um jeweils einen einzelnen Pixel verschoben, so dass sie es exakt positionieren können.
Word-Tipps kostenlos per E-Mail SmartTools Word Weekly ist unser beliebter E-Mail-Newsletter mit kostenlosen Tipps rund um Word 2003, 2002/XP, 2000 und 97:
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.
|