Access-News & Downloads
Access-Helpline
Spotlight: Serienmails an Ihre Access-Adressen komfortabel verschicken Vergessen Sie den umständlichen Versand von Serienbriefen per Post! Ab sofort können Sie Angebote, Preislisten, Newsletter, Ankündigungen usw. an Ihre in Access gespeicherten Adressen direkt aus Word ganz einfach per E-Mail verschicken. Der SmartTools Serienmailer ist direkt in Word integriert und mit wenigen Mausklicks startbereit:
SmartTools Serienmailer für Word Download-Tipp: Der kostenlose Archivierungs-Assistent für Ihre Access-Datenbanken Sammeln auch Sie seit Jahren Ihre Office-Dateien in denselben Verzeichnissen auf Ihrer Festplatte? Werden die Listen immer länger und wird es zunehmend schwerer, etwas zu finden? Unser kostenloser SmartTools Archivierungs-Assistent hilft weiter! Mit dem SmartTools Archivierungs-Assistent steht Ihnen ein Komplettpaket zur Archivierung von Dateien und Informationen für Access, Excel, PowerPoint, Word und Outlook (jeweils in den Versionen 2003, 2002/XP und 2000) zur Verfügung. Sie können den Archivierungs-Assistenten mit Access, Excel, PowerPoint und Word beispielsweise dazu nutzen, Datenbanken, Dokumente, Arbeitsmappen und Präsentationen, auf die Sie nicht mehr regelmäßig zugreifen müssen, in Unterordner nach Jahren und Monaten sortiert zu verschieben und so die Übersicht in den Ordnern für die tägliche Arbeit drastisch zu erhöhen. Statt in den Datei-Dialogen endlos durch veraltete Dateien zu blättern, finden Sie hier nur noch die wirklich benötigten Dokumente. Kämpfen Sie mit einem umfangreichen Outlook-Datenbestand, der unbedingt entrümpelt werden müsste? Der kostenlose SmartTools Archivierungs-Assistent hilft Ihnen dabei, E-Mails, Journaleinträge, Notizen, Termine oder Aufgaben, die nicht mehr ständig benötigt werden, im Dateisystem abzulegen, aus den Outlook-Ordnern zu löschen und so die Übersicht in den Outlook-Ordnern wiederherzustellen und die Arbeitsgeschwindigkeit von Outlook zu erhöhen. Der SmartTools Archivierungs-Assistent bietet ein komfortables Setup-Programm und bindet sich automatisch in andere Office-Anwendungen ein. Wir stellen Ihnen diesen leistungsfähigen Assistenten zurzeit noch als uneingeschränkte Vollversion kostenlos zur Verfügung:
Techinfo: Special zum SQL Server 2005 Nur noch wenige Wochen und der neue SQL Server 2005 wird verfügbar sein. Um sich vorab über neue Features und Funktionen, Sicherheitsmodelle und Entwicklertools zu informieren, können Sie verschiedene Angebote von Microsoft nutzen. Unter der folgenden Adresse finden Sie zunächst ein sehr interessantes Video, in dem MSDN-Spezialist James Hamilton die wichtigsten Neuerungen im SQL Server 2005 vorstellt und erklärt. Ihm zur Seite steht Tom Rizzo, der Sie ausführlich über die Programmierung des SQL Servers 2005 und die dazu zur Verfügung stehenden Tools informiert: Video zu den Neuerungen im SQL Server 2005 Ein zweites Video informiert detailliert über die neue "SQL Server Workgroup Edition", die speziell für den Einsatz in Teams konzipiert wurde und entsprechende Spezialfunktionen für den gleichzeitigen Zugriff und die Verwaltung bereitstellt: Video zur SQL Server Workgroup Edition Einzelnen Bereichen des SQL Servers 2005 widmen sich eine Reihe von Webcasts, die Sie unter der folgenden Adresse abrufen können: Webcasts zum SQL Server 2005 Hier erfahren Sie alles wissenswerte über Tools zur Verwaltung und Überwachung des SQL Servers 2005, über das Sicherheitsmodell, Datensicherungsfunktionen, verschiedene Erweiterungen beispielsweise für Auswertungen und Berichte und erhalten nützliche Tipps und Hinweise zur Konfiguration und zum Einssatz in der Praxis. Speziell an Entwickler und Administratoren richten sich die folgenden, deutschsprachigen Techinfos, die neue Features wie indizierte Sichten oder partitionierbare Tabellen ausführlich erläutern: Deutschsprachige Techinfo zu neuen Feautures Techinfo: indizierte Sichten und partitionierbare Tabellen
Datensatzauswahl per Popup-Formular, Teil 1 Versionen: Access 2003, 2002/XP, 2000 und 97 In einem Formular, beispielsweise zur Verwaltung von Adressen, soll es möglich sein, direkt den Datensatz für einen bestimmten Kunden auszuwählen. Normalerweise setzen Sie dazu ein Kombinationsfeld ein, das alle Kunden über eine entsprechende Abfrage auflistet. Nach Auswahl eines Eintrages wird der dazugehörige Datensatz angezeigt. Bis zu einer gewissen Anzahl an Datensätzen ist diese Lösung praktikabel, aber bei größeren Beständen ist die kleine Liste am Kombinationsfeld unübersichtlich und träge. Die in diesem Tipp der Woche beschriebene Lösung zeigt, wie Sie für diese Zwecke ein Popup-Formular einsetzen, das zum Beispiel Kunden in der Form "Name, Ort" in einer übersichtlichen Liste anzeigt. Mit einem Doppelklick auf einen Eintrag wählen Sie einen Kunden aus, der dann auch im Hauptformular erscheint. Am Beispiel des Formulars "Kunden" aus der bei Access mitgelieferten Beispieldatenbank "Nordwind" soll diese Technik einmal verdeutlicht werden. Zunächst ein paar Worte zum Konzept: Die Lösung arbeitet mit einem Formular "frmAuswahl", das über eine Schaltfläche "btnAuswahl" aus dem Hauptformular heraus aufgerufen wird. Im Formular gibt es eine dreispaltige Liste "lstAuswahl", der eine Abfrage zugrunde liegt, die drei Felder liefert: Den Namen der Firma, den Ort und ein eindeutiges Zugriffskriterium (im Beispiel ist das das Feld "Kunden-Code"). Die Liste zeigt nur die beiden ersten Felder für die Auswahl an. Die dritte Spalte ist die gebundene Spalte und versteckt formatiert (Eigenschaft "Spaltenbreite" = "5cm;5cm;0cm"). Wenn ein Eintrag ausgewählt wird, dient der Inhalt der dritten, versteckten Spalte dazu, im Hauptformular anhand dieses Zugriffskriteriums auf den entsprechenden Datensatz zu positionieren. Nun zum Einbau der Lösung in Ihre Datenbank: Im ersten Schritt sind zunächst die Abfrage "qryAuswahl" und das Formular "frmAuswahl" anzulegen:
Bildlaufleisten: Nein Datensatzmarkierer: Nein Navigationsschaltflächen: Nein Trennlinien: Nein Automatisch zentrieren: Ja Rahmenart: Dünn MinMax-Schaltflächen: Keine
Datensatzherkunft: qryAuswahl Spaltenanzahl: 3 Spaltenbreiten: 5cm;5cm;0cm Gebundene Spalte: 3
btnOK_Click End Sub
Dim intIdx As Integer, strX As String intIdx = Me.lstAuswahl.ListIndex If intIdx < 0 Then 'Nichts ausgewählt... Beep Exit Sub End If strX = Me.lstAuswahl.Column(2) Me.Tag = strX Me.Visible = False End Sub Private Sub btnCancel_Click() Me.Tag = "" Me.Visible = False End Sub Die Funktionsweise dieser Ereignisprozeduren erläutern wir im nächsten Teil dieses Tipps der Woche, der auch die Anbindung des Auswahl-Formulars an das Hauptformular zeigt.
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 eine oder mehrere Fragen aus und beantwortet Sie an dieser Stelle im Newsletter. Seitenkopf und Seitenfuß in Berichten individuell steuern Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Ich habe für einen Bericht einen Berichtskopf eingerichtet, der als erste Seite ein Vorblatt mit Titel und Firmenlogo bzw. Firmenadresse ausgeben soll. Der Berichtsfuß soll die Ergebnisse der Auswertung gruppiert und zusammengefasst auf der letzten Seite direkt nach der letzten Gruppe der Auswertung ausgeben. Für die dazwischenliegenden Seiten mit der eigentlichen Auswertung habe ich Seitenkopf und Seitenfuß mit den üblichen Elementen (Titel, Datum, Spaltenüberschriften, Seite/Seiten etc.) eingerichtet. Das Ergebnis sieht nun so aus, dass der Seitenkopf und der Anfang der Auswertung auf der ersten Seite direkt hinter dem Berichtskopf und der Seitenfuß mit der Seitennummerierung am unteren Seitenrand ausgedruckt werden. Auf der letzten Seite wird alles korrekt ausgedruckt. Welche Einstellungen sind notwendig, um die erste Seite wie gewünscht als reines Vorblatt ohne weitere Elemente ausdrucken zu können? F. Mappe ANTWORT: Klicken Sie im Entwurfsmodus des Berichtes mit der rechten Maustaste auf den grauen Balken "Berichtskopf", wählen Sie das Kontextmenü Eigenschaften an und stellen Sie die Eigenschaft "Neue Seite" auf "Nach Bereich" ein. Dadurch ist zunächst sichergestellt, dass auf der ersten Seite nur die im Bereich "Berichtskopf" definierten Elemente (Titel, Logo, Adresse) auf der ersten Seite und die eigentlichen Auswertungen ab der zweiten Seite ausgedruckt werden. Die Anzeige von Seitenkopf und Seitenfuß im Berichtskopf oder Berichtsfuß können Sie individuell über zwei gleichnamige, aber wenig beachtete Eigenschaften "Seitenkopf" und "Seitenfuß" des Berichtes steuern. Klicken Sie dazu in den grauen, freien Bereich des Berichtes, um im Eigenschaftenfenster die Berichtseigenschaften anzeigen zu lassen. Stellen Sie die Eigenschaften "Seitenkopf" und "Seitenfuß" auf den Eintrag "Außer Berichtskopf" ein. Wenn Sie den Bericht nun einmal in der Seitenansicht prüfen, wird das Vorblatt wie gewünscht ausgegeben. Datei-Verknüpfungen auflösen Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Wir nutzen das "FileSearch-Objekt in unseren Datenbanken, um eine Liste mit Excel-Dateien (.XLS) zu füllen, aus denen die Anwender dann eine Datei für den Import auswählen können. Bislang wurden alle Import-Dateien in einem zentralen Verzeichnis gespeichert, das wir über "FileSearch.LookIn" entsprechend adressiert haben. Nun stehen wir vor dem Problem, auch bereichspezifische Excel-Dateien importieren zu können, die beispielsweise lokal oder in anderen als dem zentralen "Datenaustausch"-Verzeichnis gespeichert sind. Ein Kollege kam nun auf die Idee, mit Verknüpfungen zu arbeiten, allerdings wissen wir nicht, wie man 1. die LNK-Dateien in die Auswahl aufnimmt (vermutlich ist ein zweimaliger Aufruf von "FileSearch" einmal mit "*.xls" und einmal mit "*.lnk" in "FileName" notwendig?) und 2. wie man aus der LNK-Datei die eigentlich zu importierende Datei ermitteln kann. Z. Bluhm ANTWORT: Zur ersten Frage: Sie können über "FileName" mehrere einzulesende Dateigruppen festlegen, indem Sie die Masken per Semikolon getrennt angeben: With Application.FileSearch .NewSearch .LookIn = "D:\Datenaustausch" .SearchSubFolders = False .Filename = "*.xls;*.lnk" .Exceute 'Weitere Aktionen hier... End With Zur zweiten Frage: Für die Auflösung einer Verknüpfung können Sie die ab Internet Explorer 4.x verfügbare Shell-API nutzen. Setzen Sie dazu in der VBA-Entwicklungsumgebung zunächst über Extras-Verweise eine Referenz auf "Microsoft Shell Controls and Automation". Geben Sie dann in einem neuen oder einem vorhandenen Modul die folgenden Funktionen ein: Function ResolveLink(strFName As String) As String Dim objShell As Shell32.Shell Dim objFolder As Shell32.Folder Dim objLink As Shell32.ShellLinkObject On Error Resume Next Set objShell = New Shell32.Shell Set objFolder = _ objShell.NameSpace(SubSlash(PathOnly(strFName))) Set objLink = _ objFolder.Items.Item(FilenameOnly(strFName)).GetLink ResolveLink = objLink.Path Set objLink = Nothing Set objFolder = Nothing Set objShell = Nothing End Function Function SubSlash(strPath As String) As String If Right$(strPath, 1) = "\" Then SubSlash = Left$(strPath, Len(strPath) - 1) Else SubSlash = strPath End If End Function Function PathOnly(strPath As String) As String Dim L As Integer PathOnly = "" If InStr(strPath, "\") = 0 Then Exit Function L = Len(strPath) While Mid$(strPath, L, 1) <> "\" And L > 0 L = L - 1 Wend If L > 1 Then PathOnly = Left$(strPath, L) End Function Function FilenameOnly(strFName As String) As String Dim L As Integer, strNew As String FilenameOnly = "" strNew = strFName If InStr(strNew, "\") <> 0 Then L = Len(strNew) While Mid$(strNew, L, 1) <> "\" And L > 0 L = L - 1 Wend If L = 1 Then Exit Function strNew = Mid$(strNew, L + 1) End If FilenameOnly = strNew End Function In Zukunft können Sie die über eine Verknüpfung adressierte "Originaldatei" dann einfach per Aufruf von "ResolveLink" beispielsweise wie folgt ermitteln: strFName = "D:\Datenaustausch\Test.lnk" strResolved = ResolveLink(strFName) Der Funktion "ResolveLink" wird ein Pfad/Dateiname übergeben und das Ergebnis ist der Pfad sowie Dateiname der adressierten Datei. Über die Shell-API wird zunächst ein "Folder"-Objekt für das Verzeichnis initialisiert, in dem die Datei gespeichert ist. Über dessen Auflistung "Items" können Sie gezielt auf eine Datei zugreifen, mit der Methode "GetLink" ein "Link"-Objekt initialisieren und so die Datei über die Eigenschaft "Path" auslesen.
Probleme bei verknüpften Excel-Tabellen Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Leider stelle ich fest, dass beim Verknüpfen (im Gegensatz zum Import, wo es richtig funktioniert) mit Excel-Tabellen Zahlen in Access nicht richtig dargestellt werden, wenn in einer Spalte sowohl Text als auch Zahlen vorhanden sind. Lässt sich dieses Problem auf einfache Weise beheben? G. Roth ANTWORT: Nein. Im Gegensatz zu Excel, wo jede Zelle einer Spalte individuell formatiert und deren Zahlen-, Datums- oder Textformat beliebig eingestellt werden kann, ist bei Access immer ein für alle Feldinhalte geltender Datentyp für ein Feld festzulegen. Beim Import analysiert Access die ersten Datensätze. Stellt es dabei fest, dass alphanumerische Inhalte vorliegen, wird der Datentyp "Text" verwendet und der Inhalt jeden einzelnen Feldes einmalig gemäß individueller Formatierung der Zelle in die neue Tabelle übernommen. Bei einer Verknüpfung ist das nicht möglich, da eine individuelle Umsetzung für jedes Feld die Performance drastisch verringern würde. Die einzige Lösung ist eine Aufteilung der Excel-Tabelle in Spalten mit identischen Formatierungen.
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.
|