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 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:
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
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:
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:
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
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.
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:
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:
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:
Left([Name],3)= "mnu" and Left([Name],1)<> "~" order by Name;
Left([Name],3)= "mnu" and Left([Name],1)<> "~" order by Name;
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.
Klicken Sie hier für Ihr kostenloses Abo!
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.859 / Virus
Database: 585 - Release Date: 14.02.2005