Access-News & Downloads
Access-Helpline
Spotlight: Resizer und weitere neue Steuerelemente für Ihre Formulare in Access 2003, 2002/XP und 2000 Die Total Access Components 2003 für Access 2003, 2002/XP und 2000 bieten 29 neue Steuerelemente, für Ihre Formulare und Berichte. Angefangen bei komfortablen Eingabehilfen, über grafische Statusanzeigen, Uhren, einen Taschenrechner, neue 3D- und Animationseffekte bis hin zu elektronischen Post-It's und Multimedia-Controls finden Sie alles, was Sie für noch leistungsfähigere und komfortablere Formulare bzw. Berichte brauchen. Neu in der aktuellen Version 2003 ist außerdem ein "BrowseForFolder"-Steuerelement zur komfortablen Ordnerauswahl und ein "DateTimePicker" für die Datumsauswahl aus einem kleinen Popup-Kalender, wie Sie ihn beispielsweise aus Outlook kennen. Das absolute Highlight der Total Access Components ist der "Resizer". Er löst für Sie sämtliche Probleme, die Sie bisher durch Systeme mit unterschiedlichen Bildschirmauflösungen hatten. Sie entwerfen nur noch ein einziges Formular und platzieren darauf den Resizer. In Zukunft vergrößert oder verkleinert der Resizer für Sie sämtliche Steuerelemente proportional zur aktuellen Bildschirmauflösung. Aber auch dynamische Veränderungen sind möglich: der Anwender kann die Größe des Formulars auf jedes gewünschte Maß verändern und der Resizer verändert parallel dazu die Steuerelemente auf die passende Größe. Das alles geschieht blitzschnell und funktioniert sogar mit Unterformularen! Ausführliche Informationen finden Sie unter: http://www.add-in-world.com/katalog/tacomponents2003/ Download-Tipp: Fertige API-Funktionen für Access Wo Access nicht weiterhilft, können Sie in vielen Fällen die vorhandene Funktionalität durch den Einsatz von API-Funktionen erweitern. Nicht zuletzt diese Flexibilität macht den Erfolg von Access als Datenbank-Entwicklungssystem für anspruchsvolle Lösungen aus. Wir stellen Ihnen in einer kostenlosen Techinfo die nützlichsten API-Funktionen vor, mit denen Sie Ihren Datenbanken noch mehr Komfort und Funktionalität verleihen können. Dazu müssen Sie sich noch nicht einmal mit der komplexen Syntax und den Datenstrukturen der API-Funktionen auseinandersetzen, denn wir liefern Ihnen sofort einsatzbereite VBA-Funktionen in Beispieldatenbanken, die Sie sofort in Ihre Anwendungen übernehmen können:
Techinfo: Analysis Services auf SQL Server 2005 umstellen Mit den Analysis Services für SQL Server stellt Microsoft ein mächtiges Werkzeug bereit, um Geschäftsdaten komfortabel und übersichtlich auszuwerten. Mit dem SQL Server 2005 wurden diese Möglichkeiten noch einmal erheblich erweitert. Vorhandene Installationen der Analysis Services werden jedoch bei einem Update auf den SQL Server 2005 nicht automatisch übernommen. Vielmehr müssen sie mit dem Migration Wizard manuell Schritt für Schritt in die neue Installation überführt werden. Damit Sie dabei gleich die neuen Möglichkeiten des SQL Servers 2005 einbeziehen können, haben die TechNet-Spezialisten ein umfangreiches, anschaulich illustriertes White Paper verfasst, das Ihnen bei der Umstellung und Übernahme vorhandener Daten hilfreich zur Seite steht: Techinfo: Analysis Services für SQL Server Waren die News & Downloads hilfreich für Sie?
Änderungen in Formularen per Schaltfläche speichern oder verwerfen Versionen: Access 2003, 2002/XP, 2000 und 97 Bei der Rücknahme oder Speicherung von Änderungen in Formularen verfolgt Access ein vor allem für unerfahrene Anwender undurchschaubares Konzept: Beim Wechsel des Datensatzes werden Änderungen ohne Rückfrage automatisch gespeichert, eine Möglichkeit, vorgenommene Änderungen per Menü oder Symbolleiste für den kompletten Datensatz zu verwerfen, gibt es nicht. Änderungen lassen sich zwar über die Esc-Taste, Strg+Z oder das Menü Bearbeiten-Rückgängig zurücknehmen, aber auch hier kommt es regelmäßig zu Verwirrungen: Wird gerade ein Feldinhalt geändert, nimmt Access zunächst die Änderung am Feldinhalt zurück, erst ein nochmaliger Aufruf der Rückgängig-Funktion per Esc-Taste, Strg+Z oder das Menü Bearbeiten-Rückgängig nimmt dann alle Änderungen am Datensatz komplett zurück. Damit nicht genug: Möchte ein Anwender seine bislang vorgenommenen Änderungen explizit speichern, findet er den dazu notwendigen Menüeintrag Datensatz speichern nicht etwa analog zu Rückgängig im Menü Bearbeiten, sondern im Menü Datensätze. Praktischer wären hier auffällige Schaltflächen wie "Änderungen verwerfen", die dem Anwender als "Notausstieg" dient und alle Änderungen zurücknimmt sowie "Änderungen speichern", die den Datensatz sichert und eine Bestätigung anzeigt. Solche Schaltflächen bauen Sie wie folgt in ein Formular ein:
On Error Resume Next Beep If MsgBox("Alle Änderungen komplett verwerfen?", _ vbYesNo + vbQuestion, _ "Änderungen verwerfen:") = vbYes Then DoCmd.SetWarnings False DoCmd.RunCommand acCmdUndo DoCmd.SetWarnings True End If End Sub Diese Ereignisprozedur zeigt zunächst eine Sicherheitsabfrage an. Die dann folgenden Anweisungen werden nur ausgeführt, wenn die Abfrage mit einem Klick auf Ja beantwort wurde. Ist das der Fall, werden zunächst per "DoCmd.SetWarnings False" weitere Rückfragen von Access ausgeschaltet, "DoCmd.RunCommand acCmdUndo" nimmt alle Änderungen am Formular zurück und "DoCmd.SetWarnings True" schaltet die Rückfragen von Access wieder ein.
On Error Resume Next DoCmd.RunCommand acCmdSaveRecord Beep MsgBox "Ihre Änderungen wurden gespeichert...", _ vbOKOnly + vbInformation, _ "Änderungen speichern:" End Sub Die Ereignisprozedur speichert zunächst per "DoCmd.RunCommand acCmdSaveRecord" den aktuellen Datensatz und zeigt dann eine kleine Erfolgsmeldung als Feedback für den Anwender an.
War dieser Tipp für Sie hilfreich? Klicken Sie bitte hier!
Haben Sie Fragen zu Access 2003, 2002/XP, 2000 und 97? Dann wenden Sie sich mit einer genauen Problembeschreibung (bitte keine Datenbanken schicken!) an: access-helpline@smarttools.de Unser Redaktionsteam wählt in jeder Ausgabe eine oder mehrere Fragen aus und beantwortet Sie an dieser Stelle im Newsletter. Gruppenzugehörigkeit feststellen Versionen: Access 2003, 2002/XP und 2000 FRAGE: In einem Access-Projekt steuern wir den Zugriff auf einzelne Felder in Formularen momentan per VBA wie folgt: Sub Form_Load() Me.Textfeld1.Visible = _ (CurrentUser()="Peter Müller") Or _ (CurrentUser()="Sabine Schmidt") Or _ (CurrentUser()="Johannes Meier") Me.Textfeld2.Enabled = _ (CurrentUser()="Peter Müller") Or _ (CurrentUser()="Sabine Schmidt") Or _ (CurrentUser()="Johannes Meier") End Sub Ein Textfeld wird also angezeigt bzw. kann nur geändert werden, wenn einer der Anwender "Peter Müller", "Sabine Schmidt" oder "Johannes Meier" mit der Datenbank arbeitet. Da die Mitarbeiter häufig die Abteilungen und somit die Zuständigkeiten wechseln, müssen wir jedes Mal die VBA-Routinen entsprechend anpassen. Wir würden das gerne auf eine Abfrage der Gruppenzugehörigkeit ("Einkauf", "Verkauf", "Lager", "Marketing" usw.) ändern, wissen aber nicht, wie. Können Sie uns dazu einen Tipp geben? Danke! W. Mau ANTWORT: Dazu können Sie ADOX nutzen, das den direkten Zugriff auf eingerichtete Benutzer und Gruppen erlaubt:
Dim objCat As ADOX.Catalog Dim objUser As ADOX.User Dim objGroup As ADOX.Group On Error GoTo Exit_Func MemberOfGroup = False 'Default: Nicht Mitglied Set objCat = New ADOX.Catalog objCat.ActiveConnection = CurrentProject.Connection Set objGroup = objCat.Groups(strGroupName) For Each objUser In objGroup.Users If objUser.Name = CurrentUser() Then MemberOfGroup = True Exit For End If Next objUser Exit_Func: Set objUser = Nothing Set objGroup = Nothing Set objCat = Nothing Exit Function End Function
Me.Textfeld1.Visible = _ (MemberOfGroup("Lager") Or _ (MemberOfGroup("Einkauf") Me.Textfeld2.Enabled = _ (MemberOfGroup("Verkauf") Or _ (MemberOfGroup("Marketing)) End Sub Die Textfelder sind dann nur sichtbar bzw. können nur geändert werden, wenn der aktuell angemeldet Anwender Mitglied der betreffenden Gruppe(n) ist. Datenbankgröße überwachen Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Ich suche nach einer Möglichkeit, die Größe der aktuellen Datenbank zu überwachen. Bei Erreichen einer bestimmten Größe soll eine Meldung angezeigt werden. K. Franke ANTWORT: Geben Sie zunächst in einem neuen oder in einem vorhandenen Modul die folgende Funktion ein: Function DBSize() As Long DBSize = FileLen(CurrentDb.Name) End Function Diese Funktion liefert mit Hilfe von "FileLen()" als Ergebnis die Größe der aktuellen Datenbank, adressiert über CurrentDb.Name, in Bytes. Legen Sie dann ein Makro "AutoExec" an bzw. öffnen Sie ein vorhandenes AutoExec-Makro im Entwurfsmodus und wählen Sie Ansicht-Bedingungen an. Geben Sie als Bedingung folgenden Ausdruck ein: DBSize() > 10000000 Richten Sie eine Aktion "Meldung" mit den folgenden Parametern ein: Meldung: "Datenbank ist größer 10 MB!" Signalton: Ja Typ: Warnmeldung (!) Titel: "Datenbankgröße:" Bei jedem Öffnen der Datenbank wird nun geprüft, ob diese größer 10.000.000 Bytes (= 10 MB) ist. Wenn ja, wird eine entsprechende Meldung angezeigt.
Nachtrag: Erweiterte MultiInstr()-Funktion Versionen: Access 2003, 2002/XP, 2000 und 97 Zum Beitrag "'InStr' für mehrere Zeichen" aus Access Weekly vom 16.12.2005 hat uns Access Weekly-Leser Günter Weil folgende Erweiterung zugeschickt: In ihrem Newsletter haben sie den Tipp 'InStr' für mehrere Zeichen vorgestellt. Ich habe die Funktion dahingehend verändert, dass nicht nur die Anzahl von bestimmten Zeichen, sondern die enthaltenen Zeichen selbst zurückgegeben werden: Function MultiInStr(aStr As Variant, _ theChars As String) As Variant Dim I As Integer, Zeichen As String Zeichen = "" For I = 1 To Len(theChars) If InStr(aStr, Mid$(theChars, I, 1)) <> 0 Then Zeichen = Zeichen & Mid$(theChars, I, 1) End If Next I MultiInStr = Zeichen End Function Der Aufruf der Funktion sieht dann beispielsweise so aus: If MultiInStr(strTelefon, "-/()") <> "" Then MsgBox("Die Telefonnummer enthält folgende " & _ "Sonderzeichen: " & _ MultiInStr(strTelefon, "-/()")) End If War die Helpline für Sie hilfreich? Klicken Sie bitte hier!
Word-Tipps kostenlos per E-Mail SmartTools Word Weekly ist unser beliebter E-Mail-Newsletter mit kostenlosen Tipps rund um Word 2003, 2002/XP, 2000 und 97:
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.
|