{"id":88012026,"date":"2026-03-10T15:46:05","date_gmt":"2026-03-10T15:46:05","guid":{"rendered":"http:\/\/access-basics.de\/index.php\/88012026.html"},"modified":"2026-03-10T15:46:05","modified_gmt":"2026-03-10T15:46:05","slug":"88012026","status":"publish","type":"page","link":"https:\/\/vbentwickler.de\/88012026\/","title":{"rendered":"Visual Basic Entwickler 01\/2026"},"content":{"rendered":"<h3>ADODB: Datenbankinformationen mit OpenSchema<\/h3>\n<p>Wenn Du per VBA auf eine Datenbank zugreifst, stellt sich manchmal die Frage: Welche Tabellen gibt es eigentlich? Welche Spalten hat eine bestimmte Tabelle und welche Datentypen verwenden diese? Gibt es Indizes oder Prim\u00e4rschl\u00fcssel? Die OpenSchema-Methode der Connection-Klasse aus der ADODB-Bibliothek liefert genau solche Metadaten \u2013 und zwar unabh\u00e4ngig davon, ob Du mit einer Access-Datenbank oder einem SQL Server arbeitest. In diesem Artikel zeigen wir, wie Du mit OpenSchema die Struktur einer Datenbank abfragen kannst. Dabei stellen wir die wichtigsten Schema-Typen vor und zeigen f\u00fcr jeden ein praktisches Beispiel.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/ADODB_Datenbankinformationen_mit_OpenSchema\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Codeschnipsel f\u00fcr SSMS per Access erstellen<\/h3>\n<p>Im Artikel Code-Snippets im \u00bbSQL Server Management Studio\u00ab (www.vbentwickler.de\/476) haben wir die Codeschnipsel-Funktion f\u00fcr das SQL Server Management Studio vorgestellt und gezeigt, wie man eigene Codeschnipsel erstellen kann. Wir wollen nun eine Access-Datenbank programmieren, mit der wir die Codeschnipsel einfach verwalten und anlegen k\u00f6nnen. Dabei wollen wir das umst\u00e4ndliche manuelle Eintragen der verschiedenen Attribute, das Definieren von Platzhaltern und das Einf\u00fcgen von Platzhaltern im Codeschnipsel vereinfachen. Die Anwendung soll Codeschnipsel einfach zum Bearbeiten einlesen und diese auch wieder in das Verzeichnis der benutzerdefinierten Codeschnipsel schreiben.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Codeschnipsel_fuer_SSMS_per_Access_erstellen\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Access und SQL Server-FileTables<\/h3>\n<p>Im Artikel \u00bb Access und SQL Server-FileTables\u00ab (www.vbentwickler.de\/489) haben wir gezeigt, wie man einer SQL Server-Datenbank eine sogenannte FileTable-Tabelle hinzuf\u00fcgt, in der man Dateien speichern kann, die gleichzeitig in einem vom SQL Server verwalteten Verzeichnis liegen. Im vorliegenden Artikel kommt nun Microsoft Access als Frontend ins Spiel, mit dem wir nicht nur die Dateien in der FileTable-Tabelle im SQL Server verwalten wollen, sondern wir m\u00f6chten diese am Beispiel von Bilddateien auch in Access-Formularen anzeigen. Letzteres ist leicht realisierbar, denn wir k\u00f6nnen dem Bild-Steuerelement einfach den Pfad zu der jeweiligen Datei in dem von SQL Server verwalteten Bereich des Dateisystems zuweisen. Etwas aufwendiger ist es, erst einmal \u00fcber Access an diese Daten in der FileTable-Tabelle zu gelangen. Wie dies gelingt und wie wir die darin gespeicherten Dateien letztlich verwalten k\u00f6nnen, zeigen wir auf den folgenden Seiten.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Access_und_SQL_ServerFileTables\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Timer ohne Formular mit VBA programmieren<\/h3>\n<p>Unter Access kennt man eigentlich nur den Timer, den das Formular-Objekt mitbringt. Damit k\u00f6nnen wir ein Ereignis definieren, das in einem bestimmten Zeitintervall ausgel\u00f6st wird.\u00a0Was aber, wenn wir einen Timer einmal au\u00dferhalb des Kontexts eines Formulars ben\u00f6tigen? Dann erstellen wir uns einfach eine eigene Timer-Klasse. Dazu sind zwar ein paar Tricks und API-Funktionen n\u00f6tig, aber das soll kein Hindernis sein. Deshalb zeigen wir in diesem Beitrag im Detail, wie das gelingt und wie sich dieser Timer in der Praxis einsetzen l\u00e4sst. Und im Gegensatz zum Formulartimer haben wir noch einen Vorteil: Wir k\u00f6nnen n\u00e4mlich nicht nur einen, sondern beliebig viele Timer einsetzen und laufen lassen.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Timer_ohne_Formular_mit_VBA_programmieren\">Zum Artikel &#8230;<\/a><\/p>\n<h3>SQL Server-Migration: Anpassen des VBA-Codes<\/h3>\n<p>Wenn Du Deine Datenbank zum SQL Server migriert hast, also alle Tabellen in einer SQL Server-Datenbank liegen und mit dem Frontend verkn\u00fcpft sind, kannst Du ohne Probleme \u00fcber die Tabellenverkn\u00fcpfungen auf die Tabellen im SQL Server zugreifen. Wenn Du jedoch per VBA, speziell mit den Methoden OpenRecordset und Execute, auf diese Tabellen zugreifen m\u00f6chtest, kann es zu Fehlermeldungen kommen. In diesem Artikel erl\u00e4utern wir, welche Fehler dies sind, warum sie auftreten und wie Du Deine Datenzugriffe auf die Tabellen der SQL Server-Datenbank so anpasst, dass sie fehlerfrei laufen. Au\u00dferdem schauen wir uns eine Besonderheit an, die beim Anlegen neuer Datens\u00e4tze mit der AddNew-Methode des Recordset-Objekts auftritt \u2013 und schlie\u00dflich gibt es noch eine Besonderheit bei Formularen, die wir ebenfalls ber\u00fccksichtigen.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/SQL_ServerMigration_Anpassen_des_VBACodes\">Zum Artikel &#8230;<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ADODB: Datenbankinformationen mit OpenSchema Wenn Du per VBA auf eine Datenbank zugreifst, stellt sich manchmal die Frage: Welche Tabellen gibt es eigentlich? Welche Spalten hat eine bestimmte Tabelle und welche Datentypen verwenden diese? Gibt es<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"yst_prominent_words":[],"class_list":["post-88012026","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/pages\/88012026","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=88012026"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/pages\/88012026\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=88012026"}],"wp:term":[{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=88012026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}