Von: access-weekly-html-request@cgn.smarttools.de im Auftrag von SmartTools Publishing [access-weekly-html-reply@smarttools.de]
Gesendet: Mittwoch, 16. März 2005 23:27
An: Access Weekly Abonnenten
Betreff: SmartTools Access Weekly vom 17.3.2005

Ausgabe vom 17. März 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 A-Z-Register für Ihre Access-Formulare

So können finden Sie sich in Ihren Access-Formularen künftig noch schneller zurecht: Das "SmartTools A-Z Register" wird als Add-In in Access installiert und kann jederzeit mit zwei Mausklicks eingeblendet werden. Sie wählen dann ein beliebiges Feld des Formulars aus einer Dropdown-Liste aus und in Zukunft genügt der Mausklick auf einen Buchstaben, um den ersten Datensatz anzuwählen, dessen Feldinhalt mit diesem Buchstaben beginnt. Auf diese Weise bewegen Sie sich schnell und komfortabel auch durch umfangreiche Datenbestände.

SmartTools Publishing stellt Ihnen diese Access-Erweiterung kostenlos zur Verfügung: Nach der automatischen Installation finden Sie unter Extras-Add-Ins einen neuen Menüpunkt, über den Sie das Register jederzeit aufrufen können:

 SmartTools A-Z Register für Access

Techinfo: Probleme mit SQL-Abfragen umgehen

Sicherlich ist Ihnen auch schon aufgefallen, dass sich Datenbanken, vor allem mit ODBC-Anbindung, beim Einsatz von SQL-Abfragen in einigen Fällen drastisch vergrößern. Das gilt vor allem für SQL-Abfragen, die Sie beispielsweise in den Eigenschaften "Datenherkunft" von Formularen und Berichten oder den Eigenschaften "Datensatzherkunft" und "Steuerelementeinhalt" von Listen und Steuerelementen einsetzen. SQL Pass Through-Abfragen, bei denen vor der Ausführung Parameter per VBA geändert werden, sind ebenfalls problematisch.

Auslöser der unerwünschten Datenbank-Vergrößerung ist die Tatsache, dass Access bei jeder Änderung jeweils temporäre Abfragen anlegt und sie nach der Ausführung nicht wieder löscht. Unter der folgenden Adresse finden Sie eine Techinfo mit weiteren Informationen zu diesem Problem sowie verschiedenen Lösungsansätzen, um das Problem künftig zu umgehen:

Probleme mit SQL-Abfragen umgehen

 Access-Tipp der Woche

Abfrageergebnisse schützen
Versionen: Access 97, 2000, 2002/XP und 2003

Über die Helpline erreichen uns immer wieder Zuschriften mit der Frage, ob und wie sich einzelne Felder in der Ergebnisansicht einer Abfrage gegen Überschreiben oder vor Änderungen schützen lassen. Ein direkter Schutz des Abfrageergebnisses ist aber leider nicht möglich. Eine Abfrage verfügt weder über entsprechende Eigenschaften, noch lässt sie sich per VBA oder API-Funktionen manipulieren. Der einzige Weg, Ergebnisse einer Abfrage in der typischen Tabellenansicht anzuzeigen und einzelne Felder zu schützen, besteht darin, ein Formular mit der bereffenden Abfrage als Datenbasis einzusetzen und es in der Datenblattansicht anzeigen zu lassen. Dabei werden Felder, die im Formular auf "Gesperrt = Ja" und "Aktiviert = Nein" eingestellt sind, auch in der Datenblattansicht gesperrt und können somit auch nicht geändert werden:

  1. Legen Sie zunächst ein Formular auf Basis der gewünschten Abfrage an.
  2. Stellen Sie die Eigenschaften "Standardansicht" und "Zugelassene Ansicht(en)" auf "Datenblatt" ein.
  3. Ziehen Sie alle bzw. die im Ergebnis anzuzeigenden Felder der Abfrage in den Detailbereich des Formulars.
  4. Markieren Sie der Reihe nach die zu schützenden Felder und stellen Sie die Eigenschaften "Gesperrt" auf "Ja" und "Aktiviert" auf "Nein".
Wenn Sie das Formular nun testweise anzeigen lassen, werden die Datensätze der Abfrage in der typischen Tabellenansicht angezeigt. Die im Formular gesperrten Felder können auch in dieser Ansicht nicht überschrieben oder geändert werden. Statt die Abfrage in Zukunft direkt zu öffnen, legen Sie in einem "Menüformular" eine Schaltfläche an, für deren Ereignisprozedur "Beim Klicken" Sie folgende Anweisung eingeben:

Sub btnTest()

  DoCmd.OpenForm "Formularname"

End Sub

Wenn Sie nur wenige Abfragen auf diese Weise anzeigen möchten, ist der Einsatz von direkt an die Abfrage gebundener Abfragen noch praktikabel. Bei mehreren Abfragen oder wenn Abfragen häufig geändert werden, empfiehlt sich eine dynamische Lösung:

  1. Legen Sie zunächst ein neues Formular "AbfrageViaFormular" ohne Datenbasis an.
  2. Stellen Sie die Eigenschaften "Standardansicht" und "Zugelassene Ansicht(en)" auf "Datenblatt" ein.
  3. Legen Sie im Detailbereich des Formulars eine Reihe von Textfeldern an. Die Anzahl richtet sich danach, wie viele Felder Ihre umfangreichste Abfrage liefert.
  4. Benennen Sie die Textfelder fortlaufend nummeriert "txt0", "txt1", "txt2" usw.
  5. Weisen Sie den zugehörigen Bezeichnungsfeldern ebenfalls fortlaufend nummerierte Namen "lbl0", "lbl1", "lbl2" usw. zu.
  6. Legen Sie eine Schaltfläche "btnX" an, deren Eigenschaft "Reihenfolgenposition" Sie auf "0" einstellen.
  7. Wechseln Sie mit Alt+F11 in die VBA-Entwicklungsumgebung und setzen Sie über Extras-Verweise einen Verweis auf "Microsoft DAO 3.x Object Library".
  8. Geben Sie in einem Modul die folgende Prozedur ein:
Sub AbfrageViaFormular(strAbfrage As String, _
                       arrSperren As Variant)
  Dim db As DAO.Database
  Dim rs As DAO.Recordset
  Dim F As Form
  Dim I As Integer, J As Integer
  Const cstrForm = "AbfrageViaFormular"

  DoCmd.OpenForm cstrForm, , , , , acHidden
  Set F = Forms(cstrForm)
  F.RecordSource = strAbfrage
  F.btnX.SetFocus
  Set db = CurrentDb
  Set rs = db.OpenRecordset(strAbfrage, dbOpenSnapshot)
  For I = 0 To rs.Fields.Count - 1
    F.Controls("txt" & CStr(I)).ControlSource = _
               rs.Fields(I).Name
    F.Controls("lbl" & CStr(I)).Caption = _
               rs.Fields(I).Name
    For J = 0 To UBound(arrSperren)
      If arrSperren(J) = I + 1 Then
        F.Controls("txt" & CStr(I)).Locked = True
        F.Controls("txt" & CStr(I)).Enabled = False
      End If
    Next J
  Next I
  rs.Close
  DoCmd.Save acForm, cstrForm
  DoCmd.OpenForm cstrForm, acFormDS, , , , acWindowNormal

End Sub

  • Für den Aufruf Ihrer Abfragen legen Sie in einem "Menüformular" verschiedene Schaltflächen an, für deren Ereignisprozeduren "Beim Klicken" Sie jeweils folgende Anweisung eingeben:
Sub btnAbfrage1()

  AbfrageViaFormular "Abfragename", Array(1, 2, 5)

End Sub

Als Parameter übergeben Sie den Namen der jeweiligen Abfrage sowie ein per "Array()" aufgebautes Array mit den Nummern der Felder, die gesperrt werden sollen.

Die Prozedur "AbfrageViaFormular" öffnet das gleichnamige Formular und weist ihm zunächst dynamisch die jeweilige Abfrage als Datenbasis zu. Gleichzeitig wird die Datenbasis als Recordset geöffnet. In einer Schleife werden dann gemäß der Fields-Auflistung des Recordsets die Felder des Formulars gebunden bzw. die Bezeichnungsfelder entsprechend beschriftet. Eine Prüfung gegen das als Parameter übergebene Array "arrSperren" setzt die Eigenschaften "Locked" und "Enabled" für die betreffenden Felder. Damit es beim Sperren nicht zu einem Laufzeitfehler kommt - Steuerelemente mit Fokus können nicht gesperrt werden - haben wir den Fokus zuvor auf die Schaltfläche "btnX" gesetzt. Vor der Anzeige des Formulars wird es einmal gesichert, damit der Anwender später beim Schließen nicht die für ihn verwirrende Abfrage nach zu speichernden Änderungen angezeigt bekommt.

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/


 Access-Helpline

Haben Sie Fragen zu Access 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.

Formulargröße nach Umstellung anpassen
Versionen: Access 97, 2000, 2002/XP und 2003

 FRAGE:  Wir haben eine Reihe von Datenbankanwendungen im Einsatz, die mit Access 97/2000 (Windows NT) entwickelt wurden. Nach der Umstellung auf Access 2003 (Windows XP) werden u.a. unsere aufwendigen Eingabeformulare nicht mehr mit voller Bildschirmgröße dargestellt. Gibt es eine Möglichkeit (ohne die Formulare nacharbeiten zu müssen) die Formulare wieder proportional an die Bildschirmgröße anzupassen?
M. Rossrucker

 ANTWORT:  Das Problem hat seine Ursache in der Benutzeroberfläche von Windows XP: Hier werden zum Beispiel Titelleisten, Rahmen oder Rollbalken in anderen Breiten und Höhen dargestellt, als unter Windows NT. Dadurch bleibt in den Formularen weniger Platz, so dass "pixelgenau" ausgerichtete Masken nicht mehr korrekt angezeigt werden können. Sicherlich ist es möglich, die Formulare jedes Mal beim Laden mit einem "Resizer" an die neuen Gegebenheiten anzupassen, alternativ könnten Sie aber auch in Erwägung ziehen, Windows XP mit der "alten" NT-Oberfläche laufen zu lassen:

  1. Klicken Sie mit der rechten Maustaste auf den Desktop und wählen Sie Eigenschaften im Kontextmenü an.
  2. Stellen Sie in der Liste Design den Eintrag "Windows - klassisch" ein.
  3. Übernehmen Sie die Änderungen mit einem Klick auf die Schaltfläche Ok.
Das hat nicht nur den Vorteil, dass Ihre Formulare wieder passend angezeigt werden, Sie werden auch einen deutlichen Anstieg der Geschwindigkeit beim Arbeiten mit Windows XP feststellen. Falls Ihnen diese Lösung nicht zusagt, finden Sie einen "Resizer" beispielsweise in den Total Access Components:

http://www.add-in-world.com/katalog/tacomponents2003/

Termine per E-Mail versenden
Versionen: Access 97, 2000, 2002/XP und 2003

 FRAGE:  Ich benutze einen Terminplaner, den ich selbst mit Access 2000 entwickelt habe. In diesen Terminplaner ist die Möglichkeit vorgesehen, Termine per E-Mail zu versenden. Beim Aufruf des Kommandos "DoCmd.SendObject" erhalte ich die Fehlermeldung "Die Nachricht konnte aus dem Grund nicht gesendet werden, der in der vorherigen Warnung angegeben wurde." Der VBA-Code sieht wie folgt aus:

DoCmd.SendObject , "", "", an, cc, bcc, betr, Text

Leider findet ich in der Hilfe von Access Dazu keine Informationen. Wie kann ich diesen Fehler beheben?
T. Wahl

 ANTWORT:  Vermutlich setzen Sie Outlook 2000 im Modus "Nur via Internet" ein - in diesem Modus ist jedoch ein Zugriff per "DoCmd.SendObject" nicht möglich. Dazu muss Outlook 2000 für den Einsatz im Modus "Unternehmen oder Arbeitsgruppe" eingerichtet sein:

  1. Wählen Sie das Menü Extras-Optionen an.
  2. Wechseln Sie auf die Registerkarte "E-Mail-Dienste".
  3. Klicken Sie auf die Schaltfläche E-Mail-Konfiguration ändern.
  4. Aktivieren Sie im dann folgenden Dialog die Option Unternehmen oder Arbeitsgruppe und klicken Sie auf die Schaltfläche Weiter.
  5. Bestätigen Sie die daraufhin angezeigte Sicherheitsabfrage mit Ja.
  6. Outlook wird nun beendet. Starten Sie es einmal neu, legen Sie gegebenenfalls die zum Nachladen von Programmkomponenten benötigte CD ein und beenden Sie Outlook wieder.
Die Umstellung auf den Modus "Unternehmen oder Arbeitsgruppe" ist damit abgeschlossen. Nun funktioniert auch der Zugriff per "DoCmd.SendObject". Der Hintergrund: "DoCmd.SendObject" benötigt spezielle MAPI-Dienste, die Outlook nur im Modus "Unternehmen oder Arbeitsgruppe" zur Verfügung stellt.

ANZEIGE 
Excel-Tabellen automatisch vergleichen und zusammenführen

Der Synkronizer 8.0 Premium liefert genau die Funktionen, die Microsoft in Excel vergessen hat: Er kann Ihre Kalkulationsmodelle, Tabellen, Listen und Datenbanken in Excel voll automatisch vergleichen, Unterschiede markieren und auf Wunsch zu einer einzigen aktuellen Version zusammenführen.

Sparen Sie künftig viele Stunden mühseliger Kleinarbeit, denn der Synkronizer 8.0 Premium wird Ihnen bei der täglichen Arbeit mit Excel immer wieder eine unentbehrliche Hilfe sein. Zum Beispiel:

  • Führen Sie mehrere Versionen der gleichen Tabelle in einer einzigen Datei zusammen, die alle Änderungen der anderen Versionen enthält.
  • Markieren Sie mit wenigen Mausklicks die Unterschiede zwischen zwei Versionen eines Kalkulationsmodells.
  • Arbeiten Sie Änderungen voll automatisch in eine Liste (Priese, Artikel, Aufträge etc.) ein.
  • Erstellen Sie aus mehreren Adresslisten eine einzige Adressliste ohne Duplikate.
  • Kombinieren Sie zwei Listen mit unterschiedlichen Informationen zu einer aussagekräftigen Gesamtliste.
Weitere Informationen zu diesem unentbehrlichen Excel-Tool finden Sie unter:

http://www.add-in-world.com/katalog/synkronizer/


Nachtrag: Formulare und Berichte über Listenfelder öffnen
Versionen: Access 97, 2000, 2002/XP und 2003

 FRAGE:  Ist es irgendwie möglich, nur bestimmte Formulare oder Berichte in der Auswahl anzeigen zu lassen?
K. Mader

 ANTWORT:  Gehen Sie dazu wie folgt vor:

  1. Erweitern Sie die Namen der Formulare und Berichte, die in den Listen zur Auswahl angezeigt werden sollen, um ein Präfix wie "lst" oder "mnu". Ein Formular "Kunden" hat dann zum Beispiel den Namen "mnuKunden" oder ein Bericht "Umsatz" den Namen "mnuUmsatz".
  2. Ändern Sie die SQL-Abfrage für die Liste mit den Formularen wie folgt:
select Name from MSysObjects where Type= -32768 and
Left([Name],3)= "mnu" and Left([Name],1)<> "~" order by Name;

  • Ändern Sie die SQL-Abfrage für die Liste mit den Berichten wie folgt:
select Name from MSysObjects where Type= -32764 and
Left([Name],3)= "mnu" and Left([Name],1)<> "~" order by Name;

 Newsletter-Tipp

Office-Tipps kostenlos per E-Mail

Der SmartTools Office Insider ist Ihr monatlicher News-Service für Microsoft Office. Hier finden Sie aktuelle Informationen zu Access, Excel, Word & Co, eine Fülle von Download-Links sowie detaillierte Tipps zu neuen Patches und Updates. So verpassen Sie nichts, was Sie unbedingt zu Microsoft Office wissen müssen.

  • Meldungen über neue Lösungen und Add-Ins zu Office 97, 2000, XP und 2003
  • Berichte über Updates und Bugfixes.
  • Tipps und effektivere Arbeitstechniken zu Access, Excel, Word & Co.
  • Kostenlose Downloads zu Office 97, 2000, XP und 2003
  • Antworten auf Ihre Fragen zu Microsoft Office.
Und das beste am SmartTools Office Insider: Er ist vollkommen kostenlos!

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.859 / Virus Database: 585 - Release Date: 14.02.2005