Access-News & Downloads
Access-Helpline
Neu: SmartTools QuickText Pro 2.0 für Word - Textbausteine, Musterbriefe und Vorlagen perfekt im Griff Vergessen Sie die AutoTexte von Word! Noch nie war es so einfach, Briefe, E-Mails, 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. 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: Front- und Back-End-Datenbanken optimal nutzen Die Aufteilung einer Datenbank in Front-End und Back-End ist für den Einsatz im Netzwerk unerlässlich, bietet aber auch für den "normalen" Einsatz viele Vorteile. In unserer kostenlosen Techinfo finden Sie dazu die wichtigsten Grundlagen und erfahren, worauf Sie bei der Aufteilung achten müssen. Lernen Sie Ihre Datenbanken im Netzwerk noch effizienter einzusetzen: In einer Schritt-für-Schritt-Anleitung teilen Sie sie ganz einfach in Front-End und Back-End auf:
Bug: Problem beim Aktualisieren von Datensätzen auf dem SQL Server 2000 In einer aktuellen Techinfo weist Microsoft auf einen Fehler in Access 2003 in Kombination mit dem SQL Server 2000 hin: Unter bestimmten Umständen werden geänderte Datensätze nicht korrekt in die verknüpfte Tabelle auf dem SQL Server zurück geschrieben. Weitere Informationen und einige Vorschläge zum Umgehen des Bugs (einen Patch gibt es zurzeit nicht) finden Sie unter: Techinfo zum Aktualisierungsbug von Access 2003 Techinfo: TreeView-Inhalte als Datei sichern In Access setzen Sie häufig das TreeView-Steuerelement ein, um den Zugriff auf Daten übersichtlich anhand einer hierarchisch gegliederten Auswahl zu ermöglichen. Dieser Aufbau soll häufig als Basis für Dokumentationen oder Schulungsunterlagen weiterverarbeitet werden, aber das TreeView-Steuerelement stellt keine Methode bereit, um den aktuellen Inhalt in einem entsprechenden Format zu speichern oder auf anderem Wege übernehmen zu können. Hier kann eine kleine VBA-Routine helfen, die die Spezialisten des MSDN unter folgender Adresse erläutern: Techinfo zur Sicherung der TreeView-Inhalte Die Techinfo ist zwar auf Visual Basic 5.0/6.0 ausgelegt, aber Sie können die Routine unverändert in VBA übernehmen. Eine Schritt-für-Schritt-Anleitung zeigt außerdem, wie zunächst ein kleines Beispiel zum Testen der Prozedur aufgebaut wird.
Tabellen beim Datenbankstart automatisch sichern Versionen: Access 2003, 2002/XP, 2000 und 97 Als Ergänzung zur regelmäßigen Sicherung der kompletten Datenbank bietet es sich häufig an, Tabellen mit kritischen Inhalten beim Öffnen der Datenbank in eine zweite Datenbank zu kopieren. Bei kleineren Unstimmigkeiten in den Daten müssen Sie dann nicht die komplette Datenbank zurücksichern, sondern können die ursprünglichen Inhalte kurz nachschlagen und die Originale so schnell und einfach wieder herstellen. Gegebenenfalls lassen sich auch komplette Datensätze über die Zwischenablage zurückkopieren oder gezielt eine komplette Tabelle im Original wiederherstellen. Um eine solche Lösung zu realisieren, gehen Sie wie folgt vor:
Dim strDestTab As String Dim strDestDB As String Dim strSQL As String On Error Resume Next strDestDB = "Z:\Test\Datsi.mdb" strDestTab = "Datsi " & _ Format$(Now, "yyyy-mm-dd hh:nn") _ & " - " & strTabName strSQL = "SELECT [" & strTabName & "].* " & _ "INTO [" & strDestTab & "] " & _ "IN '" & strDestDB & "' " & _ "FROM [" & strTabName & "];" DoCmd.RunSQL strSQL, False TabelleSichern = (Err = 0) End Function
Um das zu testen, öffnen Sie die Original-Datenbank und anschließend die DATSI.MDB. Hier finden Sie wie gewünscht die automatisch angelegten Kopie(n) der Ursprungstabelle(n) mit Namen wie "Datsi 2005-07-17 08:45 - Kunden" vor.
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. Parameter für Abfragen per VBA setzen Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: In meiner Datenbank habe ich verschiedene Parameter-Abfragen, die normalerweise Formularen und Berichten zugrunde liegen und dort nach Abfrage der Parameter die gewünschten Daten anzeigen oder ausdrucken. Die Ergebnisse einiger dieser Abfragen möchte ich nun per VBA in Recordsets verarbeiten, weiß aber nicht, wie ich sie dazu öffne und die Parameter angebe. Können Sie mir ein paar Hinweise dazu geben? D. Kammer ANTWORT: Zu diesem Zweck müssen Sie direkt auf die Abfrage-Definition zugreifen. Die folgenden Anweisungen öffnen die Abfrage "Umsatzübersicht", setzen die Parameter für das Land sowie das auszuwertende Jahr und initialisieren dann einen Recordset mit dem Ergebnis: Sub QDefPara() Dim db As Database, rs As Recordset Dim qd As QueryDef Set db = CurrentDb() Set qd = db.QueryDefs("Umsatzübersicht") qd("Für welches Land") = "Deutschland" qd("Für welches Jahr") = 2005 Set rs = qd.OpenRecordset() 'rs.MoveLast 'MsgBox rs.RecordCount 'Hier Ihre Verarbeitung... rs.Close End Sub Die auskommentierten Anweisungen würden zu Testzwecken die Anzahl gefundener Datensätze anzeigen, sie sind für die Funktionalität nicht von Bedeutung.
Unerwünschte Leerzeichen vermeiden Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Wir setzen in Berichten ein Textfeld aus verschiedenen anderen Feldern mit dem Operator "&" zusammen und trennen die Felder durch Leerzeichen dazwischen. Das sieht dann beispielsweise so aus: [Titel] & " " & [Vorname] & " " & [Nachname] Wenn nun jedoch eines der vorderen Felder leer ist, wird das Leerzeichen trotzdem eingefügt und das stört uns. Lässt sich das abstellen? W. Enders ANTWORT: Um störende Leerzeichen bei zusammengesetzten Feldern zu vermeiden, verwenden Sie für das Anhängen der Leerzeichen den Operator "+" anstelle des Operators "&" und klammern Sie die Felder, die eventuell leer sein können wie folgt: ([Titel]+ " ") & ([Vorname]+ " ") & [Nachname] Zeichenketten an API-Funktionen übergeben Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Ich nutze verschiedene API-Funktionen, die als Parameter "strSZxyz" oder "lpXYZ" eine Zeichenkette erwarten. Wenn ich das richtig sehe, sind das Null-terminierte Zeichenketten, so dass ich doch theoretisch vor dem Aufruf der API-Funktion ein "Chr$(0)" hinzufügen müsste, oder? Ich frage, weil einige API-Funktionen nicht wie erwartet arbeiten und mir immer falsche Ergebnisse liefern. V. Luft ANTWORT: Nein, das ist nur bedingt notwendig. VBA konvertiert vor dem Aufruf von API-Funktionen die als "String" deklarierten Parameter automatisch in das C-Format, entfernt also die in VBA-Strings am Anfang vorhandenen Längenbytes und fügt ein "vbNullChar" am Ende hinzu. Es muss hier jedoch unterschieden werden nach "In"- und "Out"-Parametern: "In"-Parameter übergeben eine Zeichenfolge an die API-Funktion. Oftmals liefern API-Funktionen jedoch ein Ergebnis über eine als "Out"-Parameter angegebene Zeichenkette. In der Regel ist dann auch ein weiterer Parameter "MaxStrLen" oder ähnlich anzugeben, der mitteilt, wie viele Zeichen maximal im "Out"-Parameter zurückgeliefert werden können. In diesen Fällen ist dafür Sorge zu tragen, dass die Variable vor dem Aufruf der API-Funktion entsprechend initialisiert ist: Const MaxLen = 250 ..... strOut = String$(MaxLen, vbNullChar) ..... R = APIFunctionCall(.., strOut, MaxLen, ...) ..... "MaxLen" legt hier fest, wie viele Zeichen als Ergebnis geliefert werden dürfen. Damit initialisieren wir über "Space$()" eine Variable "strOut" mit der entsprechenden Anzahl Nullbytes vor dem Aufruf der API-Funktion. Würden wir das nicht tun, hätte die Variable "strOut" bei der Übergabe an die API-Funktion eine Länge von "0" - dementsprechend wird Platz auf dem für die Parameterübergabe verwendeten Stack reserviert. Wenn die API-Funktion nun ein Ergebnis der Länge "72" liefert, ist nicht ausreichend Platz vorhanden, es werden also hinter "strOut" 72 Bytes überschrieben, was gegebenenfalls zu einem "Stack Overflow" führt - und das kann sogar zum Absturz von Access führen.
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.
|