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

Ausgabe vom 4. März 2005

 In dieser Ausgabe

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

Spotlight: Ü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 und 2002 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/

Download-Tipp: SQL per Mausklick aus Abfragen in VBA-Prozeduren übernehmen

Bei der Entwicklung von Datenbanken setzen Sie regelmäßig SQL-Anweisungen ein, die Sie beispielsweise per VBA und "DoCmd.RunSQL" oder "CurrentDb.Execute" nutzen. In vielen Fällen bietet es sich an, zunächst eine "normale" Abfrage zu entwerfen, deren SQL-Entsprechung Sie dann in den VBA-Editor übernehmen.

Genau diese Aufgabe kann Ihnen in Zukunft das kostenlose Add-In SQL aus Abfragen abnehmen. Nach dem Aufruf zeigt es eine Liste der verfügbaren Abfragen an. Markieren Sie eine Abfrage und die zugehörige SQL-Anweisung wird ausgelesen und in einem Textfeld angezeigt. Bei Bedarf nehmen Sie noch Anpassungen vor oder lassen per Mausklick eine "DoCmd"- oder "Execute"-Anweisung bzw. eine die Zuweisung in der Form "strSQL="/"set rs=" hinzufügen. Über eine Schaltfläche übernehmen Sie die fertige Anweisung in die Zwischenablage und fügen sie direkt in Ihre VBA-Prozedur ein:

 SQL aus Abfragen

News: Offizielle Ankündigung der SQL-Server 2005-Editionen

Im 3. Quartal 2005 soll endlich der lang erwartete SQL-Server 2005 erscheinen. In einer aktuellen Ankündigung hat Microsoft sich schon einmal zu den geplanten Varianten des SQL-Server 2005 geäußert:

Varianten des SQL-Server 2005

Neben der bereits an dieser Stelle erwähnten kostenlosen Express Edition (entsprechend der Microsoft Database Engine/MSDE), ist vor allem die neue Workgroup-Edition erwähnenswert. Sie soll kleineren und mittleren Unternehmen eine preisgünstige Alternative zur erheblich teureren Standard Edition bieten. Die Workgroup-Edition unterstützt maximal 2 Prozessoren und kann bis zu 3 GB RAM nutzen.

Neu ist außerdem die Tatsache, dass Microsoft mit dem SQL-Server 2005 die Installation eines "Fall-Back-Servers" ohne den Erwerb einer weiteren Lizenz erlaubt.

 Access-Tipp der Woche

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

In Ihren Datenbanken setzen Sie häufig Menüformulare ein, über die Sie mit Hilfe von Schaltflächen Formulare und Berichte per "DoCmd.OpenForm" und "DoCmd.OpenReport" öffnen. Bei kleineren Datenbanken ist diese Technik noch praktikabel: Für neue Formulare und Berichte wird eine vorhandene Schaltfläche einfach kopiert und angepasst. Bei größeren Datenbanken geht Ihnen jedoch nicht nur irgendwann der Platz für Schaltfläche im "Menüformular" aus und erfordert den Einsatz von Registerkarten zur Gruppierung, gleichzeitig verlieren Sie auch irgendwann die Übersicht. Um ein bestimmtes Formular zu öffnen, müssen Sie die Beschriftungen mehrerer Schaltflächen lesen und eventuell sogar zur Gruppierung eingesetzte Registerkarten umschalten. Wesentlich praktikabler und einfacher wäre hier der Aufruf über Listenfelder. Durch Eintippen des Buchstabens "Q" positionieren Sie die Liste beispielsweise auf den ersten Bericht, dessen Name mit "Q" beginnt und finden ab hier nun schnell zum Beispiel die gewünschte "Quartalsübersicht 2004". Und um Aktualisierungen müssen Sie sich bei einer solchen Technik auch nicht mehr kümmern, denn neue Formulare und Berichte werden automatisch in die Auswahllisten übernommen. Um eine solche Auswahl per Liste in Ihre Datenbank einzubauen, gehen Sie wie folgt vor:

  1. Legen Sie ein neues, leeres Formular an, dessen Beschriftung Sie beispielsweise auf "Hauptmenü" oder ähnlich setzen.
  2. Schalten Sie "Bildlaufleisten", "Navigationsschaltflächen" und "Datensatzmarkierer" auf "Nein" um.
  3. Platzieren Sie in diesem Formular zwei Listenfelder "lstForms" und "lstReports" mit einer Breite von 5 cm nebeneinander, deren Bezeichnungsfelder Sie entsprechend auf "Formulare:" und "Berichte:" ändern.
  4. Geben Sie in der Eigenschaft "Datensatzherkunft" für die Liste "lstForms" folgende SQL-Anweisung ein:
select Name from MSysObjects where Type= -32768
and Left([Name],1)<> "~" order by Name;

  • Geben Sie in der Eigenschaft "Datensatzherkunft" für die Liste "lstReports" folgende SQL-Anweisung ein:
select Name from MSysObjects where Type= -32764
and Left([Name],1)<> "~" order by Name;


In der Tabelle "MSysObjects" verwaltet Access die Eigenschaften sämtlicher Datenbank-Objekte. Diese Tabelle lässt sich per Abfrage oder SQL-Anweisung auslesen und so eine Datenbasis für Listenfelder gewinnen. Das Feld "Name" liefert den Namen, so wie er im Datenbankfenster angezeigt wird. Das Feld "Type" gibt Auskunft über den Typ des Objektes und lässt sich über ein Kriterium der Art "Type= -32768" für die Selektion bestimmter Objekte nutzen. Ein weiteres Kriterium 'Left([Name],1)<> "~"' sorgt dafür, dass temporäre Objekte ausgeklammert werden.

  • Legen Sie unter der Liste "lstForms" eine mit dem rechten Rand der Liste abschließende Schaltfläche Öffnen (Name = btnOpenForm) an und geben Sie für die Ereignisprozedur "Beim Klicken" folgende Anweisung ein:
Private Sub btnOpenForm_Click()

  On Error Resume Next
  DoCmd.OpenForm Me.lstForms
  If Err <> 0 Then Beep

End Sub

  • Geben Sie für die Ereignisprozedur "Beim Doppelklicken" der Liste "lstForms" die folgende Anweisung ein:
Private Sub lstForms_DblClick(Cancel As Integer)

  btnOpenForm_Click

End Sub

  • Legen Sie unter der Liste "lstReports" eine mit dem rechten Rand der Liste abschließende Schaltfläche Öffnen (Name = btnOpenReport) an und geben Sie für die Ereignisprozedur "Beim Klicken" folgende Anweisung ein:
Private Sub btnOpenReport_Click()

  On Error Resume Next
  DoCmd.OpenReport Me.lstReports
  If Err <> 0 Then Beep

End Sub

  • Geben Sie für die Ereignisprozedur "Beim Doppelklicken" der Liste "lstReports" die folgende Anweisung ein:
Private Sub lstReports_DblClick(Cancel As Integer)

  btnOpenReport_Click

End Sub

  • Speichern Sie das Formular und lassen Sie es über das Menü Ansicht-Formularansicht einmal testweise anzeigen.
Sie können nun bequem Formulare und Berichte nach Markierung eines Eintrages und Klick auf die Schaltfläche Öffnen oder einfach per Doppelklick auf den gewünschten Eintrag öffnen.

ANZEIGE 
Professionelle Geschäftsgrafiken in TV-Qualität für Excel und PowerPoint

Endlich professionelle Geschäftsgrafiken in Ihren Excel-Tabellen und PowerPoint-Präsentationen!

  • Amigo 2000 ist eine leistungsfähige Office-Erweiterung, die Ihnen mit minimalem Aufwand die Erstellung verblüffender Diagramme in perfekter Qualität ermöglicht.
  • Per Mausklick wird das komplette Diagramm neu berechnet und erscheint dann in einem 3D-Look, den Sie sonst nur aus Zeitschriften oder den Fernsehnachrichten kennen.
  • Sie benötigen keine spezielle 3D-Grafikkarte, sondern können das Programm auf jedem System nutzen, auf dem auch Office 97, 2000, XP oder 2003 im Einsatz sind.
  • Empfohlen von PC Professionell und c't
Ausführliche Informationen und viele Beispiele finden Sie unter:

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


 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.

Parameterabfrage per Makro exportieren
Versionen: Access 97, 2000, 2002/XP und 2003

 FRAGE:  Ich habe eine Parameterabfrage mit einem Parameter "Stadt". Das Ergebnis dieser Abfrage, eine Übersicht aller Vereinsmitglieder in einer bestimmten Stadt, möchte ich per Makro in eine Excel-Arbeitsmappe exportieren. Beim Ausführen des Makros zeigt Access jedoch nicht den Dialog "Parameterwerte eingeben", sondern eine Fehlermeldung "1 Parameter wurde erwartet..." an. Habe ich etwas falsch eingestellt oder kann Access keine Parameterabfragen in Makros nutzen?
R. Tiehlman

 ANTWORT:  Beim Öffnen von Abfragen über Makros wird nicht auf Parameter geprüft, deshalb unterbleibt die Anzeige des Dialoges "Parameterwerte eingeben". Hier hilft der folgende Trick:

  • Geben Sie in einem neuen oder vorhandenen Modul die folgende Funktion ein:
Function WelcheStadt() As String
  WelcheStadt= _
     InputBox$("Bitte den Namen der Stadt eingeben:")
End Function

  • Löschen Sie die Parameter aus der betreffenden Abfrage, so dass wieder eine "normale" Auswahlabfrage vorliegt.
  • Geben Sie in der Zeile "Kriterien" für das Feld mit dem Städtenamen folgende Formel ein:
=WelcheStadt()

  • Speichern Sie die Änderungen.
Wenn Sie in Zukunft das Makro starten, fragt Access zunächst nach der gewünschten Stadt. Geben Sie den jeweiligen Ort ein und bestätigen Sie mit Ok. Daraufhin wird automatisch die entsprechende Abfrage ausgeführt und das Ergebnis in eine Excel-Arbeitsmappe geschrieben.

Individuelle Hilfetexte anzeigen
Versionen: Access 97, 2000, 2002/XP und 2003

 FRAGE:  Ich möchte gerne in meiner Datenbank bei Betätigung von F1 eigene Hilfetexte anzeigen. Wie lässt sich das realisieren?
T. Möller

 ANTWORT:  Stellen Sie die Eigenschaft "Tastenvorschau" des Formulars auf "Ja" und die Eigenschaft "Bei Taste Ab" auf "[Ereignisprozedur]" ein. Klicken Sie auf die Schaltfläche mit den drei Punkten und geben Sie im VBA-Editor die folgenden Anweisungen ein:

Private Sub Form_KeyDown(KeyCode As Integer, _
                         Shift As Integer)

  If KeyCode = vbKeyF1 Then
    MsgBox "Meine eigene Hilfe-Meldung...", _
           vbOKOnly + vbInformation, "Test"
    KeyCode = 0
  End If
End Sub

Wir prüfen hier zunächst, ob die gedrückte Taste die Taste "F1" (Konstante "vbKeyF1") war. Wenn ja, wird eine eigene Hilfe-Meldung angezeigt und der Parameter "KeyCode" anschließend auf "0" gesetzt. Dies ist notwendig, damit Access danach nicht auch noch die eingebaute Hilfe aktiviert. Durch "KeyCode = 0" sieht es für Access so aus, als wenn keine Taste gedrückt wurde. Alle anderen Tasten werden ohne weitere Aktionen an Access "durchgereicht". Alle verfügbaren "vbKey"-Konstanten finden Sie übrigens unter dem Stichwort "Tasten-Codes" in der Online-Hilfe.

ANZEIGE 
Die komfortable Urlaubs-Datenbank für Access

Mit dieser Datenbank haben Sie die Fehlzeiten in Ihrer Firma oder Abteilung optimal im Griff: Urlaub, Krankheit, Sonderurlaub und sonstige Abwesenheiten lassen sich für jeden Mitarbeiter komfortabel mit wenigen Mausklicks erfassen. Wenn Sie mit dem einen oder anderen Detail nicht zufrieden sind, ändern Sie es einfach ab, denn Sie erhalten die Datenbank ungeschützt mit dem kompletten Sourcecode.

Ab sofort steht Ihnen die brandneue Version 2.11 der Urlaubsdatenbank zur Verfügung. Zu den wichtigsten Neuerungen zählen:

  • Voll netzwerkfähig durch Front- und Backend-Lösung. Im Mehrplatzbetrieb fallen keine weiteren Kosten an!
  • Unterstützung von halben Abwesenheitstagen
  • Balken- und Mitarbeiterzahl auf 25 pro Abteilung erweitert
  • Erweiterte Druckfunktionen für übersichtliche Berichte
  • Ausführliches deutsches Handbuch
Die Urlaubs-Datenbank für Access 97, 2000, 2002/XP und 2003 hat sich bereits hundertfach in der Praxis bewährt und ist nach der voll automatischen Installation sofort einsatzbereit:

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


Zugriff auf Paradox- und dBase-Tabellen
Versionen: Access 97 und 2000

 FRAGE:  Nach der Konvertierung von Access 97-Datenbanken mit Access 2000 haben wir massive Probleme mit eingebundenen dBase-Tabellen: Die darin enthaltenen Daten können zwar in Formularen angezeigt oder über Abfragen selektiert werden, es sind allerdings keine Änderungen mehr möglich. Access meldet in der Statuszeile lediglich "Diese Datensatzgruppe kann nicht aktualisiert werden", liefert aber keinen weiteren Hinweis für die Ursache. Können Sie uns einen Tipp geben, was hier falsch läuft?
M. Behr

 ANTWORT:  Vermutlich setzen Sie Office-/Access 2000 in der "Urversion" ohne Service Packs ein: Das Problem ist die ursprünglich mit Access 2000 installierte Jet-Engine (Version 4), die gegenüber der "alten" Jet-Engine (Version 3) in einem wesentlichen Punkt geändert wurde: Für den Zugriff auf dBase-Tabellen stellt sie nur noch Funktionen für den lesenden Zugriff bereit. Für den schreibenden Zugriff muss die "BDE" (Borland Database Engine) installiert sein, aus der die Jet 4-Engine dann die entsprechenden Funktionen nutzt. Da das nur dort der Fall ist, wo entweder dBase selbst oder ein anderes, die BDE nutzendes Produkt installiert ist, stehen viele Datenbank-Entwickler, die dBase-Tabellen einbinden müssen, vor diesem Problem. Es lässt sich allerdings recht einfach lösen, indem Sie zunächst das Service Release 1 und dann das aktuelle Service Pack 3 für Office-/Access 2000 installieren:

http://support.microsoft.com/kb/276367

 Newsletter-Tipp

Word-Tipps kostenlos per E-Mail

SMARTTOOLS WORD WEEKLY ist ein brandneuer E-Mail-Newsletter, der 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.859 / Virus Database: 585 - Release Date: 14.02.2005