Von: access-weekly-html-request@cgn.smarttools.de im Auftrag von SmartTools Publishing [access-weekly-html-reply@smarttools.de]
Gesendet: Donnerstag, 27. Januar 2005 21:18
An: Access Weekly Abonnenten
Betreff: SmartTools Access Weekly vom 28.1.2005

Ausgabe vom 28. Januar 2005

 In dieser Ausgabe

Access-News & Downloads
Access-Tipp der Woche
Access-Helpline
Newsletter-Tipp
 Access-News & Downloads

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:

  • Aktive Anwender anzeigen
  • Verhindern Sie neue Verbindungen zu der Datenbank
  • Inaktive User automatisch abmelden
  • Verdächtige oder abgebrochene Verbindungen finden
  • Mitteilungen an alle angemeldeten Anwender
  • Komfortabler und kostengünstiger Einsatz
Total Access Admin ist das unentbehrliche Tool, wenn Sie Datenbanken im Netzwerk verwalten. Mit wenigen Mausklicks kommen Sie Problemen auf die Spur, bereiten Datenbanken für die Wartung vor und kommunizieren mit allen angemeldeten Anwendern in Echtzeit:

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:

 SmartTools Parameter-Formular für Access

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

 Access-Tipp der Woche

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:

  1. Zunächst erstellen Sie eine Kopie der Ausgangstabelle, indem Sie die Tabelle im Datenbankfenster markieren, Bearbeiten-Kopieren und Bearbeiten-Einfügen anwählen und beim Einfügen die Option Nur Struktur aktivieren. Als Namen verwenden Sie den Namen der Quell-Tabelle mit dem Zusatz "/Archiv"; also zum Beispiel "Bestellungen/Archiv".
  2. Danach erstellen Sie eine Abfrage auf Basis der Tabelle mit den zu archivierenden Datensätzen und wählen das Menü Abfrage-Anfügeabfrage an. Wählen Sie die soeben erstellte Kopie als Ziel der Abfrage.
  3. Über das Menü Abfrage-Parameter richten Sie die Abfrage so ein, dass beim Ausführen gefragt wird, für welches Jahr die Archivierung erfolgen soll. Geben Sie dazu als Parametername "Für Jahr" ein und stellen Sie den Datentyp auf "Integer" ein.
  4. Übernehmen Sie alle Felder der Tabelle in den Abfrageentwurf, indem Sie auf das Sternchen in der Feldliste doppelklicken. In der ersten Spalte der Abfrage-Definition sehen Sie nun den Eintrag "Bestellungen.*".
  5. In der nachfolgenden Spalte legen Sie die folgende Formel und Bedingung fest:
Feld: Jahr([Bestelldatum])
Kriterien: [Für Jahr]

"Bestelldatum" ersetzen Sie dabei durch das Feld, das in Ihrer Tabelle als Kriterium abgefragt werden soll.

  • Schließen Sie den Abfrage-Entwurf und sichern Sie die Abfrage beispielsweise als "Bestellungen archivieren".
Wenn Sie nun die Abfrage ausführen lassen, fragt Access im ersten Schritt nach dem Jahr, für das die Archivierung erfolgen soll. Nach Beantwortung der folgenden Sicherheitsabfrage kopiert Access die Datensätze des jeweiligen Jahres in die Ziel-Tabelle zur Archivierung.

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.

ANZEIGE 
Über 350 MB offene Datenbanken und mehr als 3.000 Seiten Access-Tipps auf 3 CD-ROM's

Mit dem großen Access-Berater-Gesamtarchiv können Sie die drei erfolgreichen Archiv-CD-ROM's 2000, 2001, 2002/XP und 2003 jetzt zu einem besonders günstigen Sonderpreis mit 30% Rabatt erwerben. Sie erhalten:

  • Über 3.000 Seiten mit neuen Tipps, Praxisinformationen, fertigen Lösungen und VBA-Routinen zu Access 97, 2000, 2002/XP und 2003
  • Mehr als 350 MB mit fertigen Access-Datenbanken, Beispielen und Access-Tools
  • Alle Themen im Volltext mit Abbildungen und Beispieldatenbanken unter einer einzigen Oberfläche
  • Schneller Zugriff auf alle drei Archive per Mausklick direkt aus Microsoft Access
  • Durchsuchen Sie alle drei Archive gemeinsam im Volltext oder nach einem Index
Nutzen Sie den günstigen Paketpreis mit über 30% Rabatt auf die Einzelverkaufspreise:

http://www.add-in-world.com/katalog/acb-komplettpaket/


 Access-Helpline

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


ANZEIGE 
Neue Version: Personal-, Belegungs- und Zeitpläne in Access grafisch darstellen

Hier ist die perfekte Erweiterung für alle Datenbanken, in denen Sie freie und gebuchte/belegte/vergebene Zeiten verwalten: Sie müssen in einer Tabelle lediglich Start- und Enddatumsangaben der einzelnen Vorgänge verwalten und diese Lösung setzt Ihre Daten voll automatisch in ein übersichtliches Balkendiagramm um.

Mit wenig Aufwand integrieren Sie den Plan in Ihre eigenen Datenbanken, wobei eine Fülle von Anwendungen denkbar ist:

  • Urlaubs- und Personalplanung
  • Belegung von Wohnungen oder Häusern
  • Vermietung von Geräten
  • Fahrzeuge eine Fuhrparks
  • Raumbelegung
  • Projekt- und Ressourcenplanung
  • u.v.m.
Die neue Version 2.11 bietet unter anderem jetzt eine Druckfunktion, eine komfortable Feiertagsverwaltung sowie die Integration von Kürzeln für noch aussagekräftigere Darstellungen.

SmartTools Publishing bietet Ihnen diese Lösung in einer komplett ungeschützten Entwicklerversion ohne jegliche Einschränkungen an:

http://www.add-in-world.com/katalog/ac-belegungsplan/


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.

 Newsletter-Tipp

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:

  • Undokumentierte Parameter und Funktionen
  • Berichte über Bugs, Patches und Sicherheitslücken
  • Fertige Makros zur Automatisierung häufiger Arbeitsvorgänge
  • Perfekte Datensicherung Ihrer Dokumente
  • So nutzen Sie Word im Netzwerk
  • Helpline für Ihre Fragen zu Word
Klicken Sie hier für Ihr kostenloses Abo!

 Abonnementverwaltung

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.

Copyright © 2005 SmartTools Publishing Thomas Tai
Luisenstrasse 52, 49565 Bramsche
Telefon: 05461/91052, Fax: 05461/2609
E-Mail: access-weekly@smarttools.de
Internet: http://www.smarttools.de/

---
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