Dateien per VBA öffnen

Es gibt viele Gelegenheiten, zu denen man gern eine Datei per VBA öffnen möchte. Ein gutes Beispiel ist ein soeben auf Basis eines Berichts erstelltes PDF-Dokument. Doch der Standardumfang von VBA liefert keine Möglichkeit, diese Aufgabe zu erledigen. Und tatsächlich ist das Anzeigen einer Datei nicht trivial, zumindest dann nicht, wenn wir vorher noch nicht wissen, welchen Dateityp die Datei hat und mit welcher Anwendung diese geöffnet werden soll. Allerdings weiß Windows ja auch meistens, mit welcher Anwendung eine Datei geöffnet werden soll, wenn wir diese im Windows Explorer doppelt anklicken. Also muss es einen Weg geben, diese Aufgabe per Code zu erledigen. Und die Lösung ist eine API-Funktion namens ShellExecute.

Weiterlesen

Access-Applikation mit Runtime installieren

Office-Dokumente wie Word- oder Excel-Dateien lassen sich mittlerweile auf fast allen Geräten lesen. Wenn das nicht möglich ist, kann man diese oft in die jeweils vorhandene Textverarbeitung oder Tabellenkalkulation importieren. Bei Datenbankanwendungen ist das anders: Dass der Entwickler eine Vollversion von Microsoft Access auf dem Rechner hat, ist Voraussetzung. Aber was ist, wenn wir eine Datenbankanwendung in einem Unternehmen an viele Arbeitsplätze verteilen oder diese online an Kunden verkaufen wollen? Muss in dem Fall für alle User ebenfalls eine Vollversion von Access beschafft werden? Glücklicherweise lautet die Antwort nein. Es gibt eine kostenlose Runtime-Version von Access, die das Nötigste für den Betrieb von Access-Anwendungen mit sich bringt. Der vorliegende Artikel zeigt, welche Vorbereitungen dafür in unserer Applikation erforderlich sind und wie man die Runtime in ein eigenes Setup integriert.

Weiterlesen

Dynamische Bereichshöhe im Endlosformular

Ein Leser stellt mir neulich die Frage, ob und wie man die Höhe der einzelnen Bereiche im Endlosformular dynamisch so einstellen kann, dass beispielsweise immer drei Datensätze angezeigt werden – auch, wenn der Benutzer die Höhe des Endlosformulars während der Anzeige ändert. Dieser Beitrag zeigt, wie das möglich ist. Dabei behelfen wir uns einer Ereignisprozedur, die immer beim Ändern der Größe eines Formulars ausgelöst wird – und eines kleinen Tricks, der wegen der enthaltenen Steuerelemente nötig wurde.

Weiterlesen

Bestellposition per Datenmakro ergänzen

Bestellpositionen speichern wir in einer eigenen Tabelle beispielsweise namens tblBe-stellpositionen, die als m:n-Verknüpfungstabelle zwischen Tabellen wie tblBestellungen und tblProdukte dient. Diese Tabelle nimmt dann jeweils noch Felder auf wie Einzelpreis, Mehrwertsteuersatz und Einheit, die wir aus der Produkte-Tabelle in die Bestellpositionen-Tabelle kopieren. Damit das automatisch beim Anlegen einer Bestellposition geschieht, fügen wir normalerweise ein Ereignis zum Eingabeformular für die Bestellpositionen hinzu, das diese Daten ausliest und in die Bestellposition einträgt. Es gibt jedoch noch eine Alternative: Dabei verwenden wir ein Datenmakro, das durch das Ereignis “Vor Änderung” des Datensatzes ausgelöst wird und verlegen die Logik damit in die Tabelle selbst. Wie das gelingt, zeigt der vorliegende Beitrag.

Weiterlesen

E-Mail-Adressen validieren per VBA

Immer mehr Vorgänge werden per E-Mail verarbeitet. Dazu gehören auch Bestellungen, Rechnungen et cetera. Früher wurden beispielsweise Rechnungen an die Postadresse geschickt, was einigermaßen fehlertolerant war. Spätestens der Briefträger hat die falsche Hausnummer erkannt und die Sendung dank regelmäßigem Zustellungsgebiet beim richtigen Adressaten abgeliefert. Bei E-Mails verhält sich dies völlig anders: Hier führt jede Ungenauigkeit zur Unzustellbarkeit, toleriert werden allenfalls noch Abweichungen bei der Groß-/Kleinschreibung. Daher lohnt es sich, die E-Mail-Adressen von Kunden und anderen Adressaten zumindest oberflächlich zu prüfen.

Weiterlesen

Nummern für Bestellungen et cetera generieren

In vielen Beispieltabellen, die wir in diesem Magazin vorstellen, verwenden wir einfach das Primärschlüsselfeld als Kundennummer, Bestellnummer und so weiter. In manchen Fällen ist das nicht praktikabel, weil diese Nummern nach bestimmten anderen Regeln erstellt werden müssen. Dann bietet es sich an, dennoch ein Primärschlüsselfeld mit Autowertfunktion zu nutzen, um die Datensätze eindeutig zu identifizieren und dieses auch für das Herstellen von Beziehungen zu nutzen. Die Kundennummern oder Bestellnummern möchte man aber dennoch nicht von Hand eingeben, sondern die Datenbank soll das erledigen. Wie Sie das realisieren können, zeigt der vorliegende Beitrag.

Weiterlesen

Textfeld nur mit bestimmten Zeichen füllen

Manche Felder in Tabellen dürfen nur bestimmte Zeichen aufnehmen. So soll beispielsweise eine Postleitzahl nur aus Zahlen bestehen, Namen sollen keine Zahlen enthalten, Telefonnummern nur Zahlen und bestimmte Zeichen wie Plus, Minus und Klammern. Um dies durchzusetzen, gibt es verschiedene Möglichkeiten. Die einfachste ist, nach der Eingabe zu prüfen, ob das Feld nur die zulässigen Zeichen enthält und den Benutzer darauf hinzuweisen. Man könnte aber auch direkt bei der Eingabe nur die zulässigen Zeichen akzeptieren. Dabei gibt es jedoch einige Fallstricke. In diesem Beitrag schauen wir uns die verschiedenen Möglichkeiten an.

Weiterlesen

Bezeichnungsfelder im Griff

Bezeichnungsfelder oder auch Beschriftungsfelder sind ein wichtiger Bestandteil von Formularen und Berichten, denn sie geben in der Regel an, welche Daten der Benutzer in Steuerelemente eingeben kann oder dienen als Überschriften in Datenblättern oder Berichten in der Tabellenansicht. Beschriftungen für gebundene Felder lassen sich bereits im Tabellenentwurf festlegen, sodass das Anlegen dieser Felder in Formularen und Berichten ein Kinderspiel werden könnte. Wenn Sie allerdings noch wünschen, dass Beschriftungsfelder wie in Vorname: mit einem Doppelpunkt ausgestattet werden, müssen Sie eigentlich doch wieder jedes Beschriftungsfeld von Hand ändern. Außer natürlich, Sie lesen diesen Beitrag. Hier erfahren Sie nämlich alle Tricks rund um Beschriftungsfelder.

Weiterlesen

Rechnungsverwaltung: Beispieldaten

Nachdem wir im Beitrag “Rechnungsverwaltung: Datenmodell” das Datenmodell für die Rechnungsverwaltung definiert haben, könnten wir eigentlich zur Programmierung der für die Dateneingabe benötigten Formulare übergehen. Allerdings macht die Programmierung von Formularen deutlich mehr Spaß, wenn bereits einige Beispieldaten vorliegen und man direkt damit ausprobieren kann, ob die Formulare funktionieren. Als Hilfsmittel zum Erstellen der Beispieldaten verwenden wir das im Beitrag “Beispieldaten generieren mit .NET und Bogus” vorgestellte Werkzeug.

Weiterlesen

Rechnungsverwaltung: Bestellübersicht

Im Beitrag “Rechnungsverwaltung: Bestellformular” (www.access-im-unternehmen.de/1382) aus der kommenden Ausgabe 5/2022 stellen wir ein Formular zur Eingabe neuer Bestellungen inklusive Bestellpositionen vor. Damit der Benutzer komfortabel auf bereits angelegte Bestellungen zugreifen und neue Bestellungen anlegen kann, stellen wir ihm ein Übersichtsformular für die Bestellungen zur Seite. Wie Sie dieses erstellen, zeigen wir im vorliegenden Beitrag. Dabei wollen wir nicht nur die Bestellungen in der Übersicht anzeigen, sondern auch Möglichkeiten zum Durchsuchen der Rechnungen sowie für die Anzeige der zuletzt verwendeten Rechnungen anbieten.

Weiterlesen