Access-News & Downloads
Access-Helpline
Spotlight: Neue Version der umfangreichsten Sourcecode-Bibliothek für Access Das Total Visual SourceBook ist das absolute Muss für jeden Entwickler in Access 2003, 2002/XP und 2000. Für Ihre Projekte in Access erhalten Sie komplett ungeschützten, offenen und frei verwendbaren Sourcecode. Ab sofort steht die neue Version 2003 mit erweiterten und neuen Prozeduren zur Verfügung. Alles in allem erhalten Sie:
Alle Prozeduren sind getestet, voll dokumentiert und so entwickelt, dass Sie sie sofort in Ihren Projekten einsetzen können. Sie können die Bibliothek außerdem mit wenig Aufwand um Ihre persönlichen Prozeduren erweitern und so Stück für Stück Ihre individuelle Code-Datenbank aufbauen. Weitere Infos unter: http://www.add-in-world.com/katalog/tvsourcebook2003/ Download-Tipp: Flexible Formulare per SQL Normalerweise liefern Tabellen oder Abfragen die Datenbasis für Ihre Formulare in Access. Häufig möchten Sie jedoch eine Selektion von Datensätzen bearbeiten, die bestimmten Kriterien entsprechen. In der Regel definieren Sie dann einen Formularbasierten Filter, der die entsprechenden Datensätze zusammenfasst - beispielsweise alle Kunden aus Belgien oder alle Artikel mit einem Preis kleiner 5,00 EUR. Schneller und komfortabler wäre in solchen Fällen der Einsatz einer kurzen SQL-Anweisung wie "select * from Kunden where Land='Belgien'" - allerdings bietet Access keine Möglichkeit, SQL-Statements schnell einzugeben und das Ergebnis direkt in einem Formular anzuzeigen. SmartTools SQL für Formulare hilft weiter: Das Add-In steht Ihnen in allen Datenbanken von Access 2003, 2002/XP, 2000 und 97 über das Menü Extras-Add-Ins zur Verfügung und erlaubt die Eingabe und Zuordnung von SQL-Anweisungen für das aktuell geöffnete Formular. Nach dem Aufruf geben Sie einfach eine entsprechende SQL-Anweisung ein und klicken auf Ok - anschließend können Sie die selektierten Datensätze wie gewohnt im Formular durchblättern und bearbeiten. Das Add-In merkt sich die durchgeführten Abfragen, so dass Sie auf die am häufigsten benötigten Anweisungen jederzeit mit wenigen Mausklicks zugreifen können. Möchten Sie dem Formular wieder die ursprüngliche Datenbasis, also die beim Entwurf festgelegte Tabelle oder Abfrage, zuordnen, klicken Sie im Add-In einfach auf Zurücksetzen. Sie finden den kostenlosen Download unter:
Techinfo: SQL Server 2005 Express absichern Mit dem SQL Server 2005 Express stellt Microsoft eine kostenlose Version des SQL Server 2005 als Nachfolger der bislang angebotenen MSDE zur Verfügung, die auch mit Access 2003, 2002/XP und 2000 ausgeliefert wurde. Die Express-Version des SQL Server 2005 eignet sich einerseits für den Einsatz als SQL-Back-End in kleinen Netzwerken und soll andererseits Entwicklern Aufbau und Test SQL-basierter Lösungen vereinfachen. An eine solche "Light"-Version werden die gleichen Sicherheitsanforderungen gestellt, wie an einen "großen" SQL Server. Welche Möglichkeiten der SQL Server 2005 Express dazu bietet und wie sie genutzt werden, erläutert ein umfangreiches White Paper, das Sie unter der folgenden Adresse finden: Techinfo zur Absicherung des SQL Server 2005 Express Die Autoren befassen sich aber nicht nur mit der Absicherung des SQL Server 2005 Express; sie vermitteln gleichzeitig Grundlagen, geben wertvolle Tipps und Hinweise zur Installation, erläutern die Einrichtung der Verbindungen und zeigen Lösungsansätze für eventuell auftretende Probleme.
Hyperlinks aus Memofeldern direkt im Browser öffnen Versionen: Access 2003, 2002/XP, 2000 und 97 In Ihren Datenbanken speichern Sie regelmäßig Texte in Memofeldern, die häufig Hyperlinks der Form "http://www.anbieter.de/seite.htm" enthalten. Um eine solche Webseite aufzurufen, markieren Sie normalerweise die Adresse im Memofeld, kopieren die Adresse in die Zwischenablage, starten den Browser Explorer, fügen die Adresse dort wieder ein und drücken die Return-Taste. Dieser Vorgang lässt sich jedoch mit wenig Aufwand auf das Markieren der Adresse im Memofeld und einen Klick auf eine Schaltfläche neben dem Memofeld reduzieren. Schlüssel zu dieser Lösung ist die API-Funktion "ShellExecute()", die normalerweise eingesetzt wird, um eine DOS- oder Windows-Anwendung zu starten: ShellExecute 0&, vbNullString, "access.exe", _ vbNullString, vbNullString, vbNormalFocus Wenig bekannt ist die Tatsache, dass dieser API-Funktion anstelle des Dateinamens einer Anwendung auch eine Hyperlink-Adresse übergeben werden kann. "ShellExecute()" erkennt am Zusatz wie beispielsweise "http://", dass es sich um eine Internet-Adresse handelt, startet automatisch die dazugehörige Anwendung und übergibt ihr die anzuzeigende Adresse als Parameter. Um eine solche Lösung in Ihren Datenbanken einzusetzen, gehen Sie wie folgt vor:
Alias "ShellExecuteA" ( _ ByVal hWnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Function OpenURL(strURL As String) As Boolean Dim R As Variant On Error Resume Next OpenURL = True R = ShellExecute(0&, vbNullString, strURL, _ vbNullString, _ vbNullString, _ vbMaximizedFocus) If Err <> 0 Or R < 32 Then Beep MsgBox strURL & " konnte nicht geöffnet werden...", _ vbOKOnly + vbExclamation, "OpenURL:" OpenURL = False End If End Function
strHyperlinkAusMemo = Me.Testfeld.SelText End Sub
strHyperlinkAusMemo = "" End Sub
Dim fOK As Boolean If strHyperlinkAusMemo = "" Then Exit Sub fOK = OpenURL(Chr$(34) & strHyperlinkAusMemo & Chr$(34)) End Sub Diese Anweisung prüft zunächst, ob in "strHyperlinkAusMemo" eine Adresse vorhanden ist - wenn nicht, wird die Routine ohne weitere Aktionen verlassen. Andernfalls ruft die Ereignisprozedur die Funktion "OpenURL()" auf und übergibt dabei die zuvor in die Variable "strHyperlinkAusMemo" übertragene Adresse als Parameter.
Haben Sie Fragen zu Access 2003, 2002/XP, 2000 oder 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. Ergebnisse von Abfragen importieren Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: In verschiedenen Datenbanken mit Adressen wähle ich über Auswahlabfragen Datensätze als Basis für den Word-Seriendruck aus. Die Ergebnisse übertrage ich per Rechtsklick auf die Abfragen und Speichern unter bzw. Exportieren in eine zentrale Datenbank "Adressen Word Seriendruck". Darauf basierend werden dann einmal wöchentlich Angebote erstellt. Ich muss also jede Woche mehrere Datenbanken öffnen und die Ergebnisse der einzelnen Abfragen in die zentrale Seriendruck-Datenbank übertragen. Lässt sich diese Aufgabe irgendwie automatisieren oder zumindest vereinfachen? S. Thomsen ANTWORT: Sie können sich das Öffnen der einzelnen Datenbanken sparen und stattdessen die Ergebnisse der einzelnen Abfragen wie folgt importieren:
Prüfen auf laufende Word- oder Excel-Instanzen Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Aus einer Datenbank sollen unsere Anwender zum Beispiel eine Adresse oder Preise in ein Word-Dokument oder ein Excel-Tabellenblatt übernehmen. Voraussetzung soll sein, dass sie ein bestimmtes Dokument oder eine bestimmte Arbeitsmappe bereits geöffnet haben, damit wir dort die Daten an entsprechenden Textmarken oder in benannte Bereiche einfügen können. Wie lässt sich 1. prüfen, ob Word oder Excel überhaupt laufen und wie können wir 2. feststellen, ob die benötigten Textmarken und Bereiche vorhanden sind? U. Wilken ANTWORT: Um festzustellen, ob Word oder Excel laufen, nutzen Sie folgenden Mechanismus: Dim objWord As Word.Application On Error Resume Next Set objWord = GetObject(, "Word.Application") If Err <> 0 Or objWord Is Nothing Then 'Word läuft nicht Dim objExcel As Excel.Application On Error Resume Next Set objExcel = GetObject(, "Excel.Application") If Err <> 0 Or objExcel Is Nothing Then 'Excel läuft nicht Beides setzt voraus, dass eine Referenz auf "Microsoft Word x.x Object Library" bzw. "Microsoft Excel x.x Object Library" gesetzt ist. "x.x" steht für "11.0" bei Word/Excel 2003, "10.0" für Word/Excel 2002/XP, "9.0" für Word/Excel 2000 oder "8.0" für Word/Excel 97. "GetObject()" liefert eine Referenz auf eine laufende Instanz einer Anwendung. Ist die betreffende Anwendung nicht gestartet, kommt es zu einem Laufzeitfehler, der sich entsprechend abfangen lässt. Das Vorhandensein einer bestimmten Textmarke in einem Word-Dokument können Sie dann wie folgt prüfen: With objWord If .ActiveDocument.Bookmarks.Exists("Name") Then 'Textmarke vorhanden Else 'Textmarke nicht vorhanden End If End With "Name" ersetzen Sie durch den Namen der zu prüfenden Textmarke. Im Gegensatz zu Word stellt Excel keine "Exists"-Funktion für Bereiche zur Verfügung. Hier hilft folgende Abfrage: Dim n As Name On Error Resume Next Set n = ActiveWorkbook.Names("Name") If Err <> 0 Or n Is Nothing Then 'Nicht vorhanden "Name" ersetzen Sie durch den Namen des zu prüfenden Bereiches.
Beschreibung aus Datenbankfenster in Bericht setzen Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Wir haben für alle Objekte im Datenbankfenster über die Eigenschaften eine detaillierte Beschreibung eingegeben. Diese Beschreibungen sollen bei Berichten in einem Bezeichnungsfeld unter dem Berichtstitel ausgegeben werden. Ist das möglich ist? B. Roth ANTWORT: Öffnen Sie die Berichte im Entwurfsmodus und setzen Sie zunächst eine Referenz auf "Microsoft DAO x.x Object Library". "x.x" steht für "3.6" bei Access 2003/2002 und "3.51" bei Access 2000/97. Geben Sie dann jeweils in der Ereignisprozedur "Beim Öffnen" die folgenden Anweisungen ein: Private Sub Report_Open(Cancel As Integer) Dim db As DAO.Database Dim cnt As DAO.Container Dim dmt As DAO.Document Dim strDescr As String On Error Resume Next Set db = CurrentDb() Set cnt = db.Containers("Reports") Set dmt = cnt.Documents(Me.Name) strDescr = dmt.Properties("Description") Me.lblDescr.Caption = strDescr Set dmt = Nothing Set cnt = Nothing Set db = Nothing End Sub "lblDescr" ersetzen Sie dabei durch den Namen des Bezeichnungsfeldes, in das die Beschreibung übertragen werden soll. Die Anweisungen setzen beim Öffnen des Berichtes eine Referenz auf die Definition des Berichtes (Database.Containers("Reports").Documents("BerichtsName"). Diese Definition verfügt über eine Auflistung "Properties" (Eigenschaften), eine dieser Eigenschaften ist "Description" (Beschreibung) und entspricht der im Eigenschaftenfenster eingegeben Beschreibung.
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.
|