Access-News & Downloads
Access-Helpline
Spotlight: Das perfekte Verwaltungstool für Multiuser-Datenbanken Hier ist das Tool, auf das alle Datenbank-Administratoren gewartet haben: Total Access Admin macht die Verwaltung von Multiuser-Datenbanken zum Kinderspiel. Unabhängig davon, ob Access 97, 2000, 2002/XP oder 2003 im Einsatz ist oder alle Versionen parallel genutzt werden - Sie haben die Kontrolle darüber, was mit der Datenbank geschieht:
http://www.add-in-world.com/katalog/ta_admin/ Download-Tipp: Das komfortable Eingabeformular für Ihre Parameterabfragen in Access Für viele Ihrer Berichte verwenden Sie Parameterabfragen, damit die für die Auswertung gewünschten Datensätze abhängig von variablen Kriterien ausgewählt werden können. Beim Öffnen dieser Berichte zeigt Access je nach Anzahl der notwendigen Parameter mehrere Male hintereinander einen Dialog "Parameterwerte eingeben" an. Diese Form der Abfrage der Parameterwerte ist nicht nur umständlich, sondern auch fehlerträchtig, da der geforderte Datentyp für die jeweilige Parametereingabe nicht ersichtlich ist. Mit dem kostenlosen SmartTools Parameter-Formular stellen wir Ihnen eine komfortable Lösung zur Verfügung, um den Umgang mit Parameterabfragen wesentlich zu vereinfachen: nachdem die Parameterabfrage zu einem Bericht automatisch ermittelt und die Parameter-Informationen ausgelesen wurden, zeigen wir ein dynamisch generiertes Formular für die komfortable Eingabe der Parameter an. Mit wenig Aufwand können Sie die Bedienung Ihrer Datenbanken so wesentlich komfortabler gestalten:
Techinfo: Office-Daten in .NET-Lösungen verarbeiten Auch in .NET-Lösungen müssen Sie Daten aus Access-Datenbanken oder Excel-Arbeitsmappen einlesen, um beispielsweise Adressen oder Umsatzdaten zu übernehmen. Eine Möglichkeit besteht darin, Objektmodelle von Access und Excel in .NET-Lösungen einzubinden und Office Automation zu nutzen. Allerdings ist dieser Weg versionsabhängig und erfordert somit entsprechende Wartung bei Updates. Alternativ können Sie OLEDB für den flexiblen Zugriff auf Access-Datenbanken oder Excel-Arbeitsmappen einsetzen und sich so von jeder Abhängigkeit befreien. Wie Sie diese Technik in Ihren .NET-Lösungen einsetzen, erläutert das deutschsprachige White Paper unter der folgenden Adresse: Office-Daten in .NET-Lösungen verarbeiten
So archivieren Sie Daten mit Hilfe einer Abfrage, Teil 1 Versionen: Access 97, 2000, 2002/XP und 2003 Im Laufe der Zeit sammeln sich in Ihren Tabellen unzählige Datensätze, die eigentlich nicht werden: So macht es beispielsweise wenig Sinn, in einer Artikelverwaltung die Bestellungen der letzten fünf Jahre aufzubewahren. Das verlangsamt den Zugriff auf die betreffenden Tabellen nur unnötig. Für eventuelle Rückfragen reicht es in der Regel, das aktuelle so wie eventuell noch das vorangegangene Jahr im Zugriff zu haben. Leider stellt Access keine Funktionen für die automatische Bereinigung der Datenbestände zur Verfügung. Zwei Abfragen, deren Aufbau und Aufruf per Makro wir Ihnen in diesem zweiteiligen Tipp der Woche erläutern, lösen aber das Problem. Das Konzept der Lösung ist recht einfach: Eine Anfügeabfrage sorgt zunächst dafür, dass Datensätze mit einem bestimmten Alter aus der Quell-Tabelle in eine zweite, gleich aufgebaute Ziel-Tabelle zur Archivierung kopiert werden. Eine Lösch-Abfrage entfernt anschließend die nicht mehr benötigten Datensätze aus der Quell-Tabelle. Bei Bedarf können Sie dann über die Archivierungs-Tabelle jederzeit auf die alten Datensätze zurückgreifen. Anhand der Tabelle "Bestellungen" in der Beispieldatenbank "Nordwind" wollen wir einmal verdeutlichen, wie das in der Praxis funktioniert:
Kriterien: [Für Jahr] "Bestelldatum" ersetzen Sie dabei durch das Feld, das in Ihrer Tabelle als Kriterium abgefragt werden soll.
Nach diesem Prinzip können Sie sich nun weitere Abfragen erstellen, die Datensätze aus Ihren anderen Tabellen mit Hilfe einer Anfügeabfrage in eine analog zur Quell-Tabelle aufgebaute Archivierungs-Tabelle übertragen. Damit wäre der erste Schritt der Archivierung erledigt. Der zweite Schritt, das Löschen der archivierten Datensätze aus der Quell-Tabelle, erläutern wir im zweiten Teil dieses Tipps der Woche, der außerdem auf das Anlegen eines Makro für die automatische Ausführung von Anfüge- und Lösch-Abfrage eingeht.
Haben Sie Fragen zu 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 Fragen aus und beantwortet Sie an dieser Stelle im Newsletter. Datei und Datensatz gleichzeitig löschen Versionen: Access 97, 2000, 2002/XP und 2003 FRAGE: In einer Datenbank verwalte ich Bilder und Klänge, die ich in PowerPoint-Präsentationen verwende, mit Pfad-/Dateiname, Stichwort und Hinweisen. Wenn ich nun eine Datei nicht mehr verwenden und von der Festplatte löschen möchte, muss ich zunächst die Datei in ihrem Verzeichnis und anschließend den dazugehörigen Datensatz in der Datenbank (oder umgekehrt) löschen. Dabei passiert es regelmäßig, dass ich entweder die Datei oder den Datensatz nicht entferne. Können Sie mir einen Tipp geben, wie sich diese Vorgänge synchronisieren lassen? K. Thurau ANTWORT: Dazu setzen Sie am einfachsten eine Schaltfläche Löschen (Name= btnDel) im Formular ein, deren Ereignisprozedur "Beim Klicken" Sie mit den folgenden Anweisungen füllen: Private Sub btnDel_Click() Dim strFName As String Dim Taste As Integer strFName = Me.Feldname Taste = MsgBox(strFName & vbCrLf & vbCrLf & _ "wirklich löschen?", _ vbYesNo + vbQuestion, "Löschen") If Taste = vbNo Then Exit Sub On Error Resume Next Kill strFName If Err <> 0 Then Beep MsgBox strFName & vbCrLf & vbCrLf & _ "konnte nicht gelöscht werden:" & _ vbCrLf & vbCrLf & _ Err.Description, _ vbOKOnly + vbExclamation, "Löschen" Exit Sub End If DoCmd.RunCommand acCmdDeleteRecord DoEvents End Sub "Feldname" ersetzen Sie dabei durch den Namen des Feldes, das in Ihrem Formular den Speicherort der Datei festhält. Diese Ereignisprozedur zeigt zunächst eine Sicherheitsabfrage an, ob die Datei wirklich gelöscht werden soll. Ist das der Fall, wird zunächst die Datei über die Anweisung "Kill" auf der Festplatte und anschließend der dazugehörige Datensatz per "DoCmd.RunCommand acCmdDeleteRecord" in der Datenbank gelöscht. Fehlermeldung bei den Textbausteinen für Memofelder Versionen: Access 97, 2000, 2002/XP und 2003 FRAGE: Ich habe Ihre kostenlose Lösung mit den Textbausteinen für Memofelder im Einsatz (http://www.add-in-world.com/katalog/actxtbausteine/). Sie funktioniert soweit auch sehr gut. Wenn ich in Ihrem Beispiel-Formular "Test für TBMemo" allerdings nur ein Zeichen eingebe und dann auf Return drücke, erhalte ich die Fehlermeldung "Laufzeitfehler '5'". R. Wittmer ANTWORT: Abkürzungen, die nur aus einem einzigen Zeichen bestehen, waren ursprünglich nicht vorgesehen. Sie lassen sich jedoch schnell nachrüsten, indem Sie in der Funktion "CheckAutoText" im Modul "modAutoText" die "Do...Loop"-Schleife wie folgt ändern: Do Until SPos = 1 Or Mid$(strText, SPos, 1) < "!" SPos = SPos - 1 Loop
Nachtrag: Probleme mit bestimmten Feldnamen Versionen: Access 97, 2000, 2002/XP und 2003 Zu diesem Beitrag erreichte uns die folgende Zuschrift mit Zusatzinformationen von Access Weekly-Leser G. Rammel, die wir gerne weitergeben: Die Fehlermeldung "#Name?" erscheint auch in folgender Konstellation (Beispiel): Steuerelementname: Nachname Steuerelementinhalt: "=StrConv(Nachname, vbProperCase)", "=Trim(Nachname)" oder andere Funktionsaufrufe. Sie erscheint also immer dann, wenn der Feldname der Tabelle dem Namen des Steuerelementes entspricht, diesem Steuerelement aber nicht das gleiche Feld direkt als Steuerelementeinhalt, sondern über eine Funktion zugewiesen wird. Ich umgehe das, indem das Steuerelement dann im Beispiel "Nachname_" heißt. Außerdem sollten Steuerelementnamen nicht mit Ziffern beginnen. Das geht zwar generell, aber wenn eine Ereignisprozedur hinterlegt wird, macht Access im VBA-Code automatisch aus zum Beispiel 01_Nachname_AfterUpdate() die Ereignisprozedur ctl01_Nachname_AfterUpdate() Hier wird automatisch "ctl" vorangestellt, was unter Umständen Verwirrung stiften kann.
Word-Tipps kostenlos per E-Mail SmartTools Word Weekly ist unser erfolgreicher E-Mail-Newsletter, der Ihnen jede Woche kostenlose Tipps rund um Word 97, 2000, 2002/XP und 2003 liefert:
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.
|
---
Incoming mail is certified Virus Free.
Checked by AVG
anti-virus system (http://www.grisoft.com).
Version: 6.0.841 / Virus
Database: 572 - Release Date: 21.01.2005