Access-News & Downloads
Access-Helpline
Spotlight: Mustertexte und Textbausteine für Ihre Word-Dokumente und Outlook-Mails Noch nie war es so einfach E-Mails, Briefe, Berichte, Angebote und beliebige andere Dokumente mit wenigen Mausklicks zu erstellen: Mit der brandneuen Version 2.0 von SmartTools QuickText Pro können Sie auf immer wieder benötigte Musterbriefe, Vorlagen und Textbausteine jetzt noch schneller und flexibler zugreifen. SmartTools QuickText Pro wird voll automatisch in Word integriert und steht Ihnen daher auch zum schnellen Verfassen Ihrer Outlook-Mails zur Verfügung, wenn Sie Word als E-Mail-Editor eingestellt haben. Das genial einfache und innovative Konzept hat sich bereits bei vielen tausend Anwendern in der Praxis bewährt:
http://www.add-in-world.com/katalog/quicktext-pro/ Download-Tipp: Komfortable Textbausteinverwaltung für Ihre Formulare Wenn Sie bei der Datenerfassung in Access bestimmte Textpassagen immer wieder eingeben, bleibt Ihnen standardmäßig nur die AutoKorrektur-Funktion, um ein kleines Textbaustein-System aufbauen. Die Verwaltung ist allerdings wenig komfortabel und zudem auf einige Hundert Zeichen beschränkt. Mit der kostenlosen Access-Erweiterung SmartTools Textbausteine für Memofelder können Sie beliebig viele Abkürzungen und dazugehörige Textbausteine mit bis zu 32.000 Zeichen pro Textbaustein komfortabel verwalten. Die Anbindung in Ihren Formularen erfolgt mit wenig Aufwand über eine kleine Ereignisprozedur. Anschließend können Sie in Memofeldern zum Beispiel Abkürzungen wie "rg" und danach ein Leerzeichen, ein Satzendezeichen (Punkt, Fragezeichen etc.) oder einfach Return eingeben. Die Abkürzung wird daraufhin automatisch durch den zugehörigen Textbaustein, also beispielsweise eine detaillierte Produktinformation, ersetzt. Alle Formulare und Module sind ungeschützt, so dass Sie die Lösung bei Bedarf problemlos an Ihre eigenen Anforderungen anpassen können: http://www.add-in-world.com/katalog/actxtbausteine/ Techinfo: Aufgabenbereich 'Objektabhängigkeiten' effektiv nutzen Der Aufgabenbereich "Objektabhängigkeiten" von Access 2003 gibt Auskunft darüber, in welcher Beziehung die einzelnen Komponenten einer Datenbank zueinander stehen. In diesem Arbeitsbereich werden Ihnen alle Beziehungen zwischen Formularen, Tabellen, Abfragen und anderen Objekten der Datenbank übersichtlich angezeigt. Damit haben Sie nun beispielsweise die Möglichkeit, Datenbanken zu aktualisieren oder darin enthaltene Fehler zu beheben, ohne sich erst mühsam in die Datenbankstruktur einarbeiten zu müssen. Den Umgang mit und die Möglichkeiten des neuen Aufgabenbereiches im Einzelnen zeigt eine Präsentation, die Sie unter der folgenden Adresse abrufen können: Aufgabenbereich 'Objektabhängigkeiten' effektiv nutzen Waren die News & Downloads hilfreich für Sie?
Suchfunktion für alle Felder in einem Formular Versionen: Access 2003, 2002/XP, 2000 und 97 Häufig müssen Sie in einem Formular nach einem oder mehreren Datensätzen suchen, von denen Sie lediglich wissen, dass bestimmte Begriffe in irgendeinem Feld vorkommen können. Sie können dazu zwar die Suchfunktion von Access verwenden, aber dazu müssen Sie aber erst einmal den entsprechenden Dialog aufrufen, konfigurieren und anschließend Datensatz für Datensatz durch die Fundstellen blättern. Die Lösung aus diesem Tipp der Woche erlaubt die Eingabe eines Suchbegriffes direkt im Formular und setzt den Filter des Formulars auf alle Datensätze, in denen der Suchbegriff in einem der Text- oder Memofelder vorkommt. Diese Datensätze können Sie dann der Reihe nach durchblättern und bearbeiten. Die Eingabe eines Sternchens "*" als Suchbegriff schaltet den Filter wieder aus:
strSearch As String) _ As String Dim rs As Recordset, intCnt As Integer Dim strFilter As String, I As Integer intCnt = 0 Set rs = CurrentDb.OpenRecordset(strTable) rs.MoveFirst With rs For I = 0 To .Fields.Count - 1 If .Fields(I).Type = dbText Or _ .Fields(I).Type = dbMemo Then intCnt = intCnt + 1 strFilter = strFilter & _ "[" & .Fields(I).Name & "] like '*" & _ strSearch & "*' or " End If Next I End With rs.Close If intCnt > 0 Then 'letztes " or " wieder raus strFilter = Left$(strFilter, Len(strFilter) - 4) SearchAllFieldsFilter = strFilter Else SearchAllFieldsFilter = "" End If End Function
[Feldname] like '*Such*' or [Feldname] like '*Such*' or..." Das Ergebnis sieht dann zum Beispiel so aus: [Kunden-Code] like '*assistent*' or [Firma] like '*assistent*' or [Kontaktperson] like '*assistent*' or [Position] like '*assistent*' or [Straße] like '*assistent*' or [Ort] like '*assistent*' or [Region] like '*assistent*' or [PLZ] like '*assistent*' or [Land] like '*assistent*' or [Telefon] like '*assistent*' or [Telefax] like '*assistent*' Am Ende erscheinen in dem Formular also nur noch die Datensätze, in denen der Suchbegriff in irgendeinem Text- oder Memofeld an einer beliebigen Stelle vorkommt. Zum Einsatz der Funktion in einem Formular gehen Sie folgendermaßen vor:
Dim strSearch As String, strFilter As String strSearch = Me.txtSearch If strSearch = "*" Then Me.Filter = "" Me.FilterOn = False Exit Sub End If strFilter = SearchAllFieldsFilter("Kunden", _ Me.txtSearch) If strFilter <> "" Then Me.Filter = strFilter Me.FilterOn = True End If End Sub Ersetzen Sie dabei "Kunden" durch den Namen der Tabelle, die Ihrem Formular zugrunde liegt. Diese Anweisungen prüfen zunächst die Eingabe: Handelt es sich um ein Sternchen "*", wird der Filter zurückgesetzt und die Routine verlassen. Das Formular zeigt dann wieder alle Datensätze an. Andernfalls rufen wir "SearchAllFieldsFilter()" mit dem Namen der Tabelle und dem Suchbegriff auf. Das Ergebnis ist ein Kriterium, das wir direkt der "Filter"-Eigenschaft des Formulars zuordnen und anschließend aktivieren können. Nachdem Sie diese Änderungen gespeichert und den Entwurfsmodus verlassen haben, können Sie das Formular einem ersten Test unterziehen: geben Sie einen Suchbegriff ein, von dem Sie wissen, dass er in einem Text- oder Memofeld vorkommt. Der Filter für das Formular wird entsprechend gesetzt und es erscheinen nur noch die passenden Datensätze. 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. Bericht zweimal anzeigen Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Mich beschäftigt folgendes Problem: Ein Bericht liefert eine Auswertung für mehrere Abteilungen oder Filialen. Ich möchte diesen Bericht gerne zweimal öffnen und nebeneinander angeordnet anzeigen, damit ich Zahlen verschiedener Abteilungen vergleichen kann. Wenn ich zweimal "DoCmd.OpenReport" verwende, wird der Bericht geöffnet, das zweite "DoCmd.OpenReport" aktiviert aber nur den zuerst geöffneten Bericht, anstatt eine Kopie zu öffnen. Lässt sich dieses Problem irgendwie lösen? L. Riehmann ANTWORT: "DoCmd.OpenReport" können Sie für diese Aufgabe nur bedingt einsetzen, da es bei der Ausführung über die Auflistung "Reports" prüft, ob der gewünschte Bericht bereits geöffnet ist - wenn ja, wird er einfach aktiviert. Sie können aber einen Bericht ein zweites Mal als Objekt öffnen und anzeigen. Eine API-Funktion hilft dann, die beiden Berichte nebeneinander anzuordnen:
Lib "user32" (ByVal hwnd As Long, _ ByVal hWndInsertAfter As Long, _ ByVal X As Long, ByVal Y As Long, _ ByVal W As Long, ByVal H As Long, _ ByVal wFlags As Long) As Long
Dim R1 As Report, R2 As Report '1. Bericht "normal" öffnen und referenzieren DoCmd.OpenReport "Testbericht", acViewPreview Set R1 = Reports("Testbericht") SetWindowPos R1.hwnd, 0&, 50, 50, 500, 800, 0& '2. Bericht als Objekt öffnen Set R2 = New Report_Testbericht SetWindowPos R2.hwnd, 0&, 550, 50, 500, 800, 0& R2.Visible = True Set R1 = Nothing Set R2 = Nothing End Sub "Testbericht" ersetzen Sie dabei durch den Namen des betreffenden Berichtes. Bei Eingabe der Zeile "Set R2 = New " wählen Sie aus dem dann angezeigten Dropdown-Menü den Eintrag "Report_NameIhresBerichtes" aus.
Eingaben in alle Felder sicherstellen Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Gibt es eine einfache Möglichkeit, Eingaben in alle Felder eines Formulars sicherzustellen, ohne im Entwurfsmodus der Tabelle für jedes Feld einzeln die Eigenschaft "Eingabe erforderlich" auf "Ja" zu setzen? N. Berghaus ANTWORT: Sie können in der Ereignisprozedur "Beim Entladen" eines Formulars folgende Anweisungen eingeben, die jedes Textfeld und jedes Kombinationsfeld prüfen. Wenn mindestens ein Feld leer ist, wird eine Fehlermeldung angezeigt und das Schließen des Formulars unterbunden: Private Sub Form_Unload(Cancel As Integer) Dim C As Control For Each C In Me.Controls If TypeOf C Is TextBox Or TypeOf C Is ComboBox Then If IsNull(C) Or IsEmpty(C) Then Beep MsgBox "Bitte Daten in alle Felder eingeben!", _ vbOKOnly + vbCritical, "Eingaben prüfen!" Cancel = True Exit For End If End If Next C End Sub Möglich ist das über den Parameter "Cancel" der Ereignisprozedur "Form_Unload". Wenn er auf "True" gesetzt wird, bricht Access den Schließenvorgang ab, so dass der Anwender gezwungen werden kann, vor dem Verlassen des Formulars Eingaben in alle Felder zu tätigen. Nachtrag: Erweiterte MultiInstr()-Funktion Versionen: Access 2003, 2002/XP, 2000 und 97 Zum Beitrag "'InStr' fuer mehrere Zeichen" aus Access Weekly vom 16.12.2005 hat uns Access Weekly-Leser G. Weil folgende Erweiterung zugesendet, die wir hier dankend weitergeben: In ihrem Newsletter haben sie den Tipp 'InStr' für mehrere Zeichen vorgestellt. Ich habe die Funktion so 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!
Outlook-Tipps kostenlos per E-Mail SmartTools Outlook Weekly bietet jede Woche Tipps, aktuelle Infos und Download-Links für Outlook 2003, 2002/XP, 2000 und 97/98:
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.
|