{"id":55001303,"date":"2021-06-01T00:00:00","date_gmt":"2021-07-31T10:14:01","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1303"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"twinBASIC__VBVBA_mit_moderner_Umgebung","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/","title":{"rendered":"twinBASIC &#8211; VB\/VBA mit moderner Umgebung"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg07.met.vgwort.de\/na\/c4cb5cdaebdc45e1bf41dab917c1e471\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Wayne Philips ist Access-Entwicklern ein Begriff. Es ist der Erfinder von vbWatchDog, dem Tool f&uuml;r eine professionelle Fehlerbehandlung und er schafft es, .accde-Datenbanken wieder in .accdb-Datenbanken zur&uuml;ckzuverwandeln. Nun kommt sein n&auml;chster gro&szlig;er Coup: twinBASIC. Dabei handelt es sich um eine moderne Version der klassischen Programmiersprachen VB6 und VBA. Modern deshalb, weil Sie damit in einer modernen Entwicklungsumgebung arbeiten k&ouml;nnen statt im angestaubten VBA-Editor, n&auml;mlich in VS Code. Und weil es neue Elemente zu diesen Sprachen hinzuf&uuml;gt. Das Ergebnis sind eigenst&auml;ndige Anwendungen, DLLs und mehr. Wir schauen uns in diesem Beitrag an, wie Sie twinBASIC einsatzbereit machen. In weiteren Beitr&auml;gen geht es dann in die Details &#8211; hier lernen Sie dann, wie Sie beispielsweise eine COM-DLL bauen, die Sie unter Access referenzieren k&ouml;nnen.<\/b><\/p>\n<h2>VS Code f&uuml;r twinBASIC<\/h2>\n<p>Bevor wir starten: Was ist dieses VS Code eigentlich Es ist ein recht neuer Quelltext-Editor von Microsoft, der plattform&uuml;bergreifend verf&uuml;gbar ist, also f&uuml;r Windows, mac-OS und Linux. Es bietet einige Funktionen, die im Visual Basic Editor nur teilweise oder gar nicht vorhanden sind, zum Beispiel Syntaxhervorhebung, Code-Faltung, Debugging, Autovervollst&auml;ndigung oder Versionsverwaltung.<\/p>\n<p>Es ist nicht zu verwechseln mit Visual Studio. Visual Studio arbeitet mit Projektdateien, VS Code mit Quelltextdateien und Ordnern. Diese werden in einem Workspace verwaltet und der aktuelle Zustand des Workspaces kann gespeichert und wiederhergestellt werden.<\/p>\n<p>Es bietet ein Plug-In-System, das sich auch twinBASIC zunutze macht. Wayne Philips hat ein Plug-In programmiert, mit dem Sie in VS Code in der Sprache twinBASIC programmieren und auch die ausf&uuml;hrbaren Dateien kompilieren k&ouml;nnen.<\/p>\n<p>VS Code ist Open Source und wird von einem Entwicklerteam rund um Erich Gamma entwickelt. Erich Gamma hat bereits das Buch <b>Design Patterns &#8211; Elements of Reusable Object-Oriented Software <\/b>geschrieben und die Entwicklung der Entwicklungsumgebung <b>Eclipse <\/b>geleitet.<\/p>\n<h2>VS Code herunterladen und installieren<\/h2>\n<p>Den Download von VS Code finden Sie unter folgendem Link:<\/p>\n<pre>https:\/\/code.visualstudio.com\/download<\/pre>\n<p>Hier w&auml;hlen Sie die Windows-Version f&uuml;r Ihr System aus und laden die entsprechende Datei herunter. Anschlie&szlig;end starten Sie die heruntergeladene <b>.exe<\/b>-Datei, um VS Code zu installieren. Im Setup k&ouml;nnen Sie noch angeben, ob VS Code im Kontextmen&uuml; f&uuml;r Dateien untergebracht werden soll oder ob bestimmte Dateitypen direkt damit verkn&uuml;pft werden sollen.<\/p>\n<p>Danach k&ouml;nnen wir VS Code direkt starten. Es erscheint dann wie in Bild 1. Auch wenn der schwarze Hintergrund toll aussieht und die meisten sicher der englischen Sprache m&auml;chtig sind, nehmen wir hier gleich einmal zwei &Auml;nderungen bez&uuml;glich dieser Eigenschaften vor.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_001.png\" alt=\"VS Code direkt nach der Installation\" width=\"700\" height=\"325,0847\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: VS Code direkt nach der Installation<\/span><\/b><\/p>\n<h2>Farbschema einstellen<\/h2>\n<p>Als Erstes stellen wir die Farbe ein. Dazu nutzen wir dem Men&uuml;befehl <b>File|Preferences|Color Theme<\/b>. Hier w&auml;hlen wir das Schema <b>Light (Visual Studio) <\/b>aus (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_002.png\" alt=\"Einstellen des Farbschemas\" width=\"674,559\" height=\"202,0031\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Einstellen des Farbschemas<\/span><\/b><\/p>\n<h2>Sprache einstellen<\/h2>\n<p>Wir h&auml;tten gern deutsche Befehle und dazu ist die Installation eines Language Packs n&ouml;tig. Dazu w&auml;hlen Sie den Men&uuml;befehl <b>File|Preferences|Extensions <\/b>aus. Im nun erscheinenden Bereich <b>Extensions: Marketplace <\/b>geben Sie einfach <b>German <\/b>ein und erhalten direkt das <b>German Language Pack for Visual Studio Code<\/b>.<\/p>\n<p>Dazu klicken Sie auf die in Bild 3 sichtbare Schaltfl&auml;che <b>Install<\/b>. Die Installation geschieht in etwa einer Sekunde, der anschlie&szlig;ende Neustart liefert dann direkt die deutschen Bezeichnungen f&uuml;r die Befehle der Benutzeroberfl&auml;che.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_003.png\" alt=\"Installieren des deutschen Sprachpakets\" width=\"700\" height=\"335,608\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Installieren des deutschen Sprachpakets<\/span><\/b><\/p>\n<h2>twinBASIC-Plugin installieren<\/h2>\n<p>Da wir nun schon &Uuml;bung im Installieren von Extensions haben, f&uuml;gen wir gleich noch die Erweiterung f&uuml;r twinBASIC hinzu. Also &ouml;ffnen wir wieder den Bereich von eben, diesmal aber &uuml;ber den deutschsprachigen Men&uuml;befehl <b>Datei|Einstellungen|Erweiterungen<\/b>. Im nun erscheinenden Bereich <b>Erweiterungen <\/b>geben wir als Suchbegriff <b>twinBASIC <\/b>ein.<\/p>\n<p>Anschlie&szlig;end klicken Sie auch hier auf die Schaltfl&auml;che <b>Installieren<\/b> (siehe Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_004.png\" alt=\"Installieren der twinBASIC-Erweiterung\" width=\"699,559\" height=\"238,0444\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Installieren der twinBASIC-Erweiterung<\/span><\/b><\/p>\n<h2>twinBASIC nutzen: Hello World!<\/h2>\n<p>Nat&uuml;rlich starten wir mit einem <b>Hello World!<\/b>-Beispiel in die Nutzung von twinBASIC. Wir haben nun VS Code installiert und die twinBASIC-Erweiterung installiert &#8211; wie geht es nun weiter Wenn wir &uuml;ber den Befehl <b>Datei|Neue Datei <\/b>eine neue Datei anlegen, geschieht jedenfalls nichts besonderes &#8211; es erscheint eine leere Textdatei, die Sie f&uuml;llen k&ouml;nnen. Kein IntelliSense oder &auml;hnliches in Sicht.<\/p>\n<h2>Hello World!-Projekt &ouml;ffnen<\/h2>\n<p>twinBASIC verf&uuml;gt zu diesem Zeitpunkt noch nicht &uuml;ber die M&ouml;glichkeit, ein komplett neues Projekt zu erstellen, daher starten wir mit einem vorgefertigten Projekt. Dieses enth&auml;lt zwei Dateien:<\/p>\n<ul>\n<li>helloword.code-workspace<\/li>\n<li>helloworld.twinproj<\/li>\n<\/ul>\n<p><!--30percent--><\/p>\n<p>Nach dem Herunterladen der Dateien w&auml;hlen Sie in VS Code den Befehl <b>Datei|Arbeitsbereich &ouml;ffnen <\/b>aus und &ouml;ffnen &uuml;ber den <b>Arbeitsbereich &ouml;ffnen<\/b>-Dialog die Workspace-Datei. <\/p>\n<p>Wenn Sie den Explorer anzeigen und den Arbeitsbereich <b>HelloWorld <\/b>aufklappen, finden Sie wie in Bild 5 die Datei <b>HelloWorld.twin<\/b>, die Sie per Doppelklick &ouml;ffnen und so den Code des Moduls anzeigen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_005.png\" alt=\"Das Hello World!-Projekt in VS Code\" width=\"649,559\" height=\"361,8971\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Das Hello World!-Projekt in VS Code<\/span><\/b><\/p>\n<p>Klicken Sie nun in den Code der Prozedur <b>Public Sub Main<\/b>, k&ouml;nnen Sie diese mit der Taste <b>F5 <\/b>ausf&uuml;hren. Dies zeigt das erwartete Meldungsfenster an.<\/p>\n<p>Da es sich hier um die <b>Main<\/b>-Prozedur handelt, die auch beim Starten einer auf Basis dieses Projekts erstellten <b>.exe<\/b>-Datei aufgerufen wird, k&ouml;nnen Sie auch einfach auf die <b>Build<\/b>-Schaltfl&auml;che klicken.<\/p>\n<h2>.exe erstellen<\/h2>\n<p>Jetzt kommt der Clou: Mit einem Klick auf die <b>Build<\/b>-Schaltfl&auml;che erstellen Sie direkt die <b>.exe<\/b>-Datei f&uuml;r das Projekt (siehe Bild 6).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_006.png\" alt=\"Erstellen des Projekts\" width=\"324,5589\" height=\"329,4395\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Erstellen des Projekts<\/span><\/b><\/p>\n<p>Im Ordner <b>Build<\/b> finden wir dann die Datei <b>HelloWorldProject_win32.exe <\/b>vor, die wir per Doppelklick ausf&uuml;hren k&ouml;nnen (siehe Bild 7). Dies liefert die gew&uuml;nschte Meldung. Richtig spannend wird es bei der Dateigr&ouml;&szlig;e: Diese betr&auml;gt n&auml;mlich gerade mal 8 KB! Und wir ben&ouml;tigen neben dieser Datei keine weiteren Dateien.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_007.png\" alt=\"Die .exe-Datei und die dadurch angezeigte Meldung\" width=\"599,559\" height=\"301,6708\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Die .exe-Datei und die dadurch angezeigte Meldung<\/span><\/b><\/p>\n<h2>Dateien des Projekts<\/h2>\n<p>Weiter oben haben wir bereits die beiden Dateien des ersten Projekts erw&auml;hnt. Die Datei mit der Dateiendung <b>.code-workspace <\/b>ist etwa mit der Solution aus Visual Studio-Projekten vergleichbar.<\/p>\n<p>Die Datei mit der Endung <b>.twinproj <\/b>ist die Projektdatei, die ein virtuelles Dateisystem mit den verschiedenen Elementen des Projekts enth&auml;lt. Diese beiden Dateien m&uuml;ssen den gleichen Namen enthalten und im gleichen Verzeichnis gespeichert sein.<\/p>\n<h2>Funktionen des Code-Fensters<\/h2>\n<p>Wenn Sie eigenen Code in das Code-Fenster eingeben wollen, unterst&uuml;tzt Sie twinBASIC unter VS Code zun&auml;chst einmal mit einer IntelliSense-Funktion, die direkt nach Eingabe des ersten Buchstabens aktiviert wird. Geben Sie etwa die Buchstaben <b>ms <\/b>ein, erscheinen die Vorschl&auml;ge aus Bild 8. Es gibt zwei entscheidende Unterschiede zur Verwendung von IntelliSense im VBA-Editor:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_008.png\" alt=\"IntelliSense unter VS Code mit twinBASIC\" width=\"499,5589\" height=\"385,1924\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: IntelliSense unter VS Code mit twinBASIC<\/span><\/b><\/p>\n<ul>\n<li>Sie brauchen einfach nur die ersten Zeichen einzugeben und m&uuml;ssen nicht noch die Tastenkombination <b>Alt + Leertaste <\/b>bet&auml;tigen, um IntelliSense zu aktivieren.<\/li>\n<li>IntelliSense zeigt zuerst die Eintr&auml;ge an, die mit den eingegebenen Buchstaben beginnen (und auch mit dem ersten Teil der eingegebenen Buchstaben). Danach folgen Eintr&auml;ge, welche die Zeichenfolge (oder auch nur die ersten Zeichen) innerhalb des Eintrags enthalten.<\/li>\n<\/ul>\n<p>In der obigen Abbildung sehen Sie, dass der markierte Eintrag den zur&uuml;ckgegebenen Datentyp anzeigt. Hier sehen Sie auch noch einen Pfeil nach rechts. Klicken Sie diesen an, zeigt IntelliSense sogar noch die komplette Definition des aktuell markierten Befehls an (siehe Bild 9).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_009.png\" alt=\"IntelliSense mit Anzeige der Syntax eines Befehls\" width=\"649,559\" height=\"474,0209\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: IntelliSense mit Anzeige der Syntax eines Befehls<\/span><\/b><\/p>\n<h2>Definitionen aufgerufener Prozeduren anzeigen<\/h2>\n<p>Wenn Sie von einer Prozedur aus eine andere Prozedur aufrufen, k&ouml;nnen Sie im VBA-Editor mit der rechten Maustaste auf den Prozeduraufruf klicken und dann den Eintrag Definition aufrufen. Damit springen Sie zu der aufgerufenen Prozedur. Unter twinBASIC mit VS Code k&ouml;nnen Sie einen &auml;hnlichen Befehl per Kontextmen&uuml; aufrufen. Dieser hei&szlig;t <b>Gehe zu Definition<\/b>. Hier finden wir gleich den ersten Vorteil gegen&uuml;ber dem VBA-Editor: Sie k&ouml;nnen auch einfach den Prozeduraufruf markieren und dann die Definition mit der Taste <b>F12 <\/b>anzeigen lassen.<\/p>\n<p>Es geht aber noch weiter: Darunter finden Sie den Befehl <b>Vorschau<\/b>, der einen weiteren Eintrag namens <b>Definition einsehen <\/b>offeriert &#8211; aufzurufen mit der Tastenkombination <b>Alt + F12<\/b> (siehe Bild 10).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_010.png\" alt=\"Vorschau einer Prozedur anzeigen\" width=\"700\" height=\"223,282\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Vorschau einer Prozedur anzeigen<\/span><\/b><\/p>\n<p>Bet&auml;tigen Sie diesen, wird ein Bereich unterhalb des betroffenen Prozeduraufrufs eingeblendet, der die Definition dieser Prozedur samt Kontext anzeigt. Damit man darin direkt die Prozedur findet, wird diese mit einem gelben Hintergrund markiert (siehe Bild 11).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_011.png\" alt=\"Vorschau einer Prozedur im eigenen Bereich\" width=\"574,559\" height=\"468,6346\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Vorschau einer Prozedur im eigenen Bereich<\/span><\/b><\/p>\n<p>Den Bereich mit der eingeblendeten Definition k&ouml;nnen Sie &uuml;brigens auch noch in der H&ouml;he anpassen, falls dieser zu viel Platz wegnimmt oder nicht ausreichend Zeilen anzeigt. Den Bereich schlie&szlig;en Sie wieder, indem Sie auf die X-Schaltfl&auml;che oben rechts im Bereich klicken.<\/p>\n<h2>Tools zur Vereinfachung der Code-Eingabe<\/h2>\n<p>Neben der <b>Build<\/b>-Schaltfl&auml;che, die wir weiter oben bereits verwendet haben, finden wir noch weitere Schaltfl&auml;chen. Die erste mit dem Titel <b>Comment Block <\/b>dient beispielsweise zum Auskommentieren der aktuell markierten Zeilen (siehe Bild 12). Den umgekehrten Effekt hat das Bet&auml;tigen der Schaltfl&auml;che <b>Uncomment Block<\/b>.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_012.png\" alt=\"Kommentieren eines kompletten Blocks\" width=\"574,559\" height=\"359,3063\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Kommentieren eines kompletten Blocks<\/span><\/b><\/p>\n<p>Die beiden Schaltfl&auml;chen <b>Indent Block <\/b>und <b>Outdent Block <\/b>dienen zum Herstellen oder Entfernen einer Einr&uuml;ckung f&uuml;r alle aktuell markierten Zeilen.<\/p>\n<h2>Suchfunktion<\/h2>\n<p>Ebenfalls im Bereich <b>TWINBASIC <\/b>finden wir eine <b>Find in Files<\/b>-Schaltfl&auml;che. Diese &ouml;ffnet ein kleines Suchfenster im oberen Bereich von VS Code. Das Ergebnis der Suche zeigt ein eigener Bereich an, der die einzelnen Fundstellen unter Angabe der Datei auflistet (siehe Bild 13). Ein Klick auf einen dieser Eintr&auml;ge zeigt diesen im Codefenster an und setzt die Einf&uuml;gemarke an den Beginn der gesuchten Zeichenkette.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_014.png\" alt=\"Suchfunktion mit Fundstellen\" width=\"599,559\" height=\"327,9765\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 13: Suchfunktion mit Fundstellen<\/span><\/b><\/p>\n<h2>Code Folding<\/h2>\n<p>Unter Code Folding versteht man das Ein- und Ausklappen von Bereichen im Code. Visual Studio bietet das, aber der VBA-Editor nicht. Auch twinBASIC liefert in VS Code eine Code Folding-Funktion. Diese wird sichtbar, wenn Sie mit der Maus in den Bereich der Zeilennummerierung fahren. Es tauchen dann nach unten zeigende Pfeile auf (siehe Bild 14).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_013.png\" alt=\"Interessante nach unten zeigende Pfeile\" width=\"399,5589\" height=\"360,9914\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 14: Interessante nach unten zeigende Pfeile<\/span><\/b><\/p>\n<p>Klicken Sie auf einen dieser Pfeile, klappt VS Code den Bereich bis zu dem schlie&szlig;enden Element der ersten Zeile ein und zeigt nur noch die erste und die letzte Zeile an. Wenn Sie beispielsweise auf den Pfeil f&uuml;r die Prozedur <b>Main <\/b>klicken und auf den f&uuml;r die beiden mit <b>If&#8230;<\/b> und <b>Else&#8230;<\/b> beginnenden Zeilen, erhalten Sie das Code Folding aus Bild 15. Auf diese Weise k&ouml;nnen Sie gerade nicht ben&ouml;tigte Prozeduren oder Konstrukte minimieren und sehen nur noch die aktuell wichtigen Elemente des Codes.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_015.png\" alt=\"Eingeklappte Code-Bereiche\" width=\"424,5589\" height=\"283,0392\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 15: Eingeklappte Code-Bereiche<\/span><\/b><\/p>\n<h2>Hinweise auf Parameternamen einblenden<\/h2>\n<p>Wenn eine Ihrer Prozeduren Parameter verwendet, k&ouml;nnen Sie ihre Namen im Code einblenden lassen. Wir haben unsere Prozedur etwas angepasst, um einen Parameter zu sehen &#8211; dieser hei&szlig;t <b>i<\/b> und wird beim Aufruf der Prozedur <b>WeitereProzedur <\/b>&uuml;bergeben. Nun aktivieren wir mit der Schaltfl&auml;che <b>Toggle Param Hints <\/b>die Anzeige der Parameternamen. Danach werden diese wie bei benannten Parametern im Code angezeigt (siehe Bild 16).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_016.png\" alt=\"Eingeblendete Parameternamen\" width=\"424,5589\" height=\"391,7156\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 16: Eingeblendete Parameternamen<\/span><\/b><\/p>\n<p>Die Parameterhinweise werden auch bei der Codeeingabe direkt erg&auml;nzt, sobald ein Prozeduraufruf mit einem Parameter erkannt wurde.<\/p>\n<h2>Explorer<\/h2>\n<p>Der Explorer schlie&szlig;lich zeigt die Elemente des aktuellen Projekts samt Variablen und Routinen (siehe Bild 17).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1303_017.png\" alt=\"Gliederung des Dateiinhalts\" width=\"474,5589\" height=\"506,793\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 17: Gliederung des Dateiinhalts<\/span><\/b><\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Dieser Beitrag zeigt die Installation von VS Code und die Einrichtung der twinBASIC-Erweiterung. Au&szlig;erdem experimentieren wir mit einem ersten Beispielprojekt. In weiteren Beitr&auml;gen schauen wir uns an, wie Sie damit debuggen, wie Sie COM-Add-Ins erstellen und welche weiteren Neuerungen twinBASIC noch liefert.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>HelloWorld.zip<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/CE853888-F792-4830-B3B5-45BA7191BBDA\/aiu_1303.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wayne Philips ist Access-Entwicklern ein Begriff. Es ist der Erfinder von vbWatchDog, dem Tool f&uuml;r eine professionelle Fehlerbehandlung und er schafft es, .accde-Datenbanken wieder in .accdb-Datenbanken zur&uuml;ckzuverwandeln. Nun kommt sein n&auml;chster gro&szlig;er Coup: twinBASIC. Dabei handelt es sich um eine moderne Version der klassischen Programmiersprachen VB6 und VBA. Modern deshalb, weil Sie damit in einer modernen Entwicklungsumgebung arbeiten k&ouml;nnen statt im angestaubten VBA-Editor, n&auml;mlich in VS Code. Und weil es neue Elemente zu diesen Sprachen hinzuf&uuml;gt. Das Ergebnis sind eigenst&auml;ndige Anwendungen, DLLs und mehr. Wir schauen uns in diesem Beitrag an, wie Sie twinBASIC einsatzbereit machen. In weiteren Beitr&auml;gen geht es dann in die Details &#8211; hier lernen Sie dann, wie Sie beispielsweise eine COM-DLL bauen, die Sie unter Access referenzieren k&ouml;nnen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","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":""},"categories":[662021,66032021,44000025],"tags":[],"class_list":["post-55001303","post","type-post","status-publish","format-standard","hentry","category-662021","category-66032021","category-VBA_und_Programmiertechniken"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>twinBASIC - VB\/VBA mit moderner Umgebung - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"twinBASIC - VB\/VBA mit moderner Umgebung\" \/>\n<meta property=\"og:description\" content=\"Wayne Philips ist Access-Entwicklern ein Begriff. Es ist der Erfinder von vbWatchDog, dem Tool f&uuml;r eine professionelle Fehlerbehandlung und er schafft es, .accde-Datenbanken wieder in .accdb-Datenbanken zur&uuml;ckzuverwandeln. Nun kommt sein n&auml;chster gro&szlig;er Coup: twinBASIC. Dabei handelt es sich um eine moderne Version der klassischen Programmiersprachen VB6 und VBA. Modern deshalb, weil Sie damit in einer modernen Entwicklungsumgebung arbeiten k&ouml;nnen statt im angestaubten VBA-Editor, n&auml;mlich in VS Code. Und weil es neue Elemente zu diesen Sprachen hinzuf&uuml;gt. Das Ergebnis sind eigenst&auml;ndige Anwendungen, DLLs und mehr. Wir schauen uns in diesem Beitrag an, wie Sie twinBASIC einsatzbereit machen. In weiteren Beitr&auml;gen geht es dann in die Details - hier lernen Sie dann, wie Sie beispielsweise eine COM-DLL bauen, die Sie unter Access referenzieren k&ouml;nnen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-07-31T10:14:01+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg07.met.vgwort.de\/na\/c4cb5cdaebdc45e1bf41dab917c1e471\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"10\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/twinBASIC__VBVBA_mit_moderner_Umgebung\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/twinBASIC__VBVBA_mit_moderner_Umgebung\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"twinBASIC &#8211; VB\\\/VBA mit moderner Umgebung\",\"datePublished\":\"2021-07-31T10:14:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/twinBASIC__VBVBA_mit_moderner_Umgebung\\\/\"},\"wordCount\":1990,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/twinBASIC__VBVBA_mit_moderner_Umgebung\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/c4cb5cdaebdc45e1bf41dab917c1e471\",\"articleSection\":[\"2021\",\"3\\\/2021\",\"VBA und Programmiertechniken\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/twinBASIC__VBVBA_mit_moderner_Umgebung\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/twinBASIC__VBVBA_mit_moderner_Umgebung\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/twinBASIC__VBVBA_mit_moderner_Umgebung\\\/\",\"name\":\"twinBASIC - VB\\\/VBA mit moderner Umgebung - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/twinBASIC__VBVBA_mit_moderner_Umgebung\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/twinBASIC__VBVBA_mit_moderner_Umgebung\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/c4cb5cdaebdc45e1bf41dab917c1e471\",\"datePublished\":\"2021-07-31T10:14:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/twinBASIC__VBVBA_mit_moderner_Umgebung\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/twinBASIC__VBVBA_mit_moderner_Umgebung\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/twinBASIC__VBVBA_mit_moderner_Umgebung\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/c4cb5cdaebdc45e1bf41dab917c1e471\",\"contentUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/c4cb5cdaebdc45e1bf41dab917c1e471\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/twinBASIC__VBVBA_mit_moderner_Umgebung\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"twinBASIC &#8211; VB\\\/VBA mit moderner Umgebung\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"twinBASIC - VB\/VBA mit moderner Umgebung - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/","og_locale":"de_DE","og_type":"article","og_title":"twinBASIC - VB\/VBA mit moderner Umgebung","og_description":"Wayne Philips ist Access-Entwicklern ein Begriff. Es ist der Erfinder von vbWatchDog, dem Tool f&uuml;r eine professionelle Fehlerbehandlung und er schafft es, .accde-Datenbanken wieder in .accdb-Datenbanken zur&uuml;ckzuverwandeln. Nun kommt sein n&auml;chster gro&szlig;er Coup: twinBASIC. Dabei handelt es sich um eine moderne Version der klassischen Programmiersprachen VB6 und VBA. Modern deshalb, weil Sie damit in einer modernen Entwicklungsumgebung arbeiten k&ouml;nnen statt im angestaubten VBA-Editor, n&auml;mlich in VS Code. Und weil es neue Elemente zu diesen Sprachen hinzuf&uuml;gt. Das Ergebnis sind eigenst&auml;ndige Anwendungen, DLLs und mehr. Wir schauen uns in diesem Beitrag an, wie Sie twinBASIC einsatzbereit machen. In weiteren Beitr&auml;gen geht es dann in die Details - hier lernen Sie dann, wie Sie beispielsweise eine COM-DLL bauen, die Sie unter Access referenzieren k&ouml;nnen.","og_url":"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-07-31T10:14:01+00:00","og_image":[{"url":"http:\/\/vg07.met.vgwort.de\/na\/c4cb5cdaebdc45e1bf41dab917c1e471","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"10\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"twinBASIC &#8211; VB\/VBA mit moderner Umgebung","datePublished":"2021-07-31T10:14:01+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/"},"wordCount":1990,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/c4cb5cdaebdc45e1bf41dab917c1e471","articleSection":["2021","3\/2021","VBA und Programmiertechniken"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/","url":"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/","name":"twinBASIC - VB\/VBA mit moderner Umgebung - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/c4cb5cdaebdc45e1bf41dab917c1e471","datePublished":"2021-07-31T10:14:01+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/#primaryimage","url":"http:\/\/vg07.met.vgwort.de\/na\/c4cb5cdaebdc45e1bf41dab917c1e471","contentUrl":"http:\/\/vg07.met.vgwort.de\/na\/c4cb5cdaebdc45e1bf41dab917c1e471"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/twinBASIC__VBVBA_mit_moderner_Umgebung\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"twinBASIC &#8211; VB\/VBA mit moderner Umgebung"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55001303"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001303\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}