{"id":55000039,"date":"2001-12-01T00:00:00","date_gmt":"2021-02-10T18:59:56","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=39"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Der_EuroAssistent","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/","title":{"rendered":"Der Euro-Assistent"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg04.met.vgwort.de\/na\/b1e942d2be364de19d980e51583ecb80\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Autor: Christoph Spielmann, D&uuml;sseldorf und Klaus Giesen, Wuppertal<\/p>\n<p><\/b><\/p>\n<p><b>Es ist eine Binsenweisheit, dass gro&szlig;e Entscheidungen einen Rattenschwanz von Konsequenzen auch im Kleinen nach sich ziehen k&ouml;nnen. Bezogen auf die Einf&uuml;hrung des Euro und Microsoft Access bedeutet das beispielsweise, dass mit Sicherheit eine Unmenge von W&auml;hrungsfeldern in Access-Tabellen auf die neue W&auml;hrung umgestellt werden m&uuml;ssen. Schlie&szlig;lich muss in vielen Datenbankanwendungen mit diesen Feldern genau gerechnet werden. Im folgenden Beitrag lernen Sie einen Assistenten kennen, der Ihnen bei der W&auml;hrungsumstellung Ihrer Access-Datenbanken behilflich ist.<\/b><\/p>\n<p>Der Begriff &#8222;W&auml;hrungsumstellung&#8220; bedeutet in diesem Zusammenhang zun&auml;chst einmal eine mathematische Umrechnung der DM-Werte mit einem konstanten und obendrein hinl&auml;nglich bekannten Quotienten (1,95583).<\/p>\n<p>Etwas genauer betrachtet, bedeutet die Umstellung allerdings noch eine ganze Menge mehr:<\/p>\n<p>Bei einer W&auml;hrungsumstellung in Datenbanktabellen muss in der Regel sichergestellt sein, dass alle W&auml;hrungsfelder in einer Datenbank auch korrekt umgerechnet werden. Anderenfalls wird beispielsweise bei einer Fakturierung ganz schnell das gro&szlig;e Chaos ausbrechen.<\/p>\n<p>Wie ist eine solche Aufgabe am besten zu erledigen<\/p>\n<p>Die richtige Antwort h&auml;ngt &#8211; wie so oft im Leben &#8211; von den vorliegenden Umst&auml;nden ab.<\/p>\n<p>Bei nur einer oder zwei Tabellen ist ohne weiteres der Einsatz einer kleinen Aktualisierungsabfrage zu empfehlen, um die entsprechenden Felder umrechnen zu lassen. Anders ausgedr&uuml;ckt: Das kann manuell erledigt werden.<\/p>\n<p>Ab einer bestimmten Gr&ouml;&szlig;enordnung wird jedoch das Aufsp&uuml;ren und Umrechnen der entsprechenden Tabellenfelder m&uuml;hsam bis unm&ouml;glich. Ganz abgesehen davon, besteht dann &#8211; wie bei jeder manuellen Methode &#8211; die Gefahr, etwas zu &uuml;bersehen oder zu vergessen. Das kann gerade bei W&auml;hrungsfeldern unangenehme Konsequenzen haben.<\/p>\n<p>An dieser Stelle bietet sich der Einsatz eines Tools an, mit dem das Aufsp&uuml;ren und Umrechnen der infrage kommenden Tabellenfelder in jedem Fall sichergestellt werden kann. Obendrein sollte ein solches Tool auch einfach zu bedienen sein.<\/p>\n<p>Installation bedeutet in diesem Fall lediglich:<\/p>\n<li>Sie m&uuml;ssen eine Tabelle und zwei Formulare in Ihre Arbeitsdatenbank importieren.<\/li>\n<li>Weiterhin m&uuml;ssen die Verweise zu den erforderlichen Programmbibliotheken f&uuml;r den Euro-Assistenten eingerichtet werden.<\/li>\n<p><b>Datenbankobjekte importieren<\/b><\/p>\n<p>Der Euro-Assistent besteht aus der Tabelle tblEuroFields und den Formularen frmEuroAssistent und frmEuroAssistentSub. Als Arbeitsdatenbank wird bei diesem Beitrag die zusammen mit Access ausgelieferte Beispieldatenbank Nordwind benutzt.<\/p>\n<p><IMG height=\"237\" src=\"..\/fileadmin\/_temp_\/{E40D12FE-689D-4C8F-BF1D-98EF1425CA9B}\/pic001.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Das Dialogfenster Objekte importieren<\/span><\/b><\/p>\n<p><IMG height=\"358\" src=\"..\/fileadmin\/_temp_\/{E40D12FE-689D-4C8F-BF1D-98EF1425CA9B}\/pic002.png\" width=\"467\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Das Dialogfenster Verweise<\/span><\/b><\/p>\n<li>W&auml;hlen Sie in Ihrer Arbeitsdatenbank aus dem Men&uuml; Datei den Befehl Externe Daten ( Importieren aus.<\/li>\n<li>Markieren Sie im Dialogfenster Importieren die Beispieldatenbank Euro-Assistent.mdb zu diesem Beitrag, die den Euro-Assistenten enth&auml;lt und klicken Sie anschlie&szlig;end auf die Schaltfl&auml;che Importieren.<\/li>\n<li>Aktivieren Sie im Dialogfenster Objekte importieren das Register Tabellen und markieren Sie die Tabelle tblEuroFields (siehe Bild 1).<\/li>\n<h3>Hinweis<\/h3>\n<p>Die beim Klick auf die Schaltfl&auml;che Optionen sichtbaren Einstellungsm&ouml;glichkeiten beim Import von Tabellen (Nur Definition oder Definition und Daten) haben bei diesem Import keine Bedeutung. <\/p>\n<li>Aktivieren Sie dann das Register Formulare und markieren Sie dort die beiden Formulare frmEuroAssistent und frmEuroAssistentSub.<\/li>\n<li>Starten Sie den Import mit OK.<\/li>\n<p><b>Verweise einstellen<\/b><\/p>\n<p>Der VBA-Code des Euro-Assistenten ben&ouml;tigt zur Lauff&auml;higkeit den Zugriff auf ganz bestimmte Programmbibliotheken. Die Einstellung erfolgtim Visual Basic-Fenster von Access.<\/p>\n<li>Klicken Sie im Modulbereich des Datenbankfensters von Access auf die Schaltfl&auml;che Entwurf.<\/li>\n<h3>Hinweis<\/h3>\n<p>Falls kein Modul in Ihrer Datenbank vorhanden sein sollte, klicken Sie stattdessen auf die Schaltfl&auml;che Neu. <\/p>\n<li>W&auml;hlen Sie aus dem Me-n&uuml; Extras den Befehl Verweise. Es wird das Dialogfenster Ver-weise, in dem alle verf&uuml;gbaren Verweise angezeigt werden, ge&ouml;ffnet. Bestehende Verweise sind durch das aktivierte Kontrollk&auml;stchen gekennzeichnet.<\/li>\n<li>&uuml;berpr&uuml;fen Sie, ob &#8211; wie in Bild 2 &#8211; ein Verweis auf die Programmbibliotheken Microsoft ActiveX Data Objects 2.5 Library und Microsoft ADO Ext. 2.5 for DDL and Security besteht.<\/li>\n<p><IMG height=\"358\" src=\"..\/fileadmin\/_temp_\/{E40D12FE-689D-4C8F-BF1D-98EF1425CA9B}\/pic003.png\" width=\"467\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Markierte Verweise<\/span><\/b><\/p>\n<p><IMG height=\"50\" src=\"..\/fileadmin\/_temp_\/{E40D12FE-689D-4C8F-BF1D-98EF1425CA9B}\/pic004.png\" width=\"315\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Der Men&uuml;befehl Kompilieren<\/span><\/b><\/p>\n<p><IMG height=\"284\" src=\"..\/fileadmin\/_temp_\/{E40D12FE-689D-4C8F-BF1D-98EF1425CA9B}\/pic005.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Die Tabellenentwurf<\/span><\/b><\/p>\n<h3>Hinweis<\/h3>\n<p>Sie k&ouml;nnen &#8211; falls vorhanden &#8211; auch die Versionen 2.1, 2.6 oder 2.7 dieser beiden Programmbibliotheken verwenden. <\/p>\n<li>Falls beide Verweise existieren, klicken Sie auf OK oder Abbrechen.<\/li>\n<li>Anderenfalls scrollen Sie in dem Fenster nach unten und markieren den entsprechenden Eintrag bzw. die entsprechenden Eintr&auml;ge. Dies kann gleichzeitig erfolgen (siehe Bild 3).<\/li>\n<li>Schlie&szlig;en Sie das Dialogfenster mit OK.<\/li>\n<p>Abschlie&szlig;end sollte die Datenbank kompiliert werden, um etwaige Fehlerquellen zu erkennen bzw. auszuschlie&szlig;en (siehe Bild 4).<\/p>\n<li>W&auml;hlen Sie aus dem Men&uuml; Debuggen den Befehl Kompilieren aus.<\/li>\n<li>Schlie&szlig;en Sie den Visual Basic Editor mit dem Men&uuml;befehl Datei\/Schlie&szlig;en und kehren Sie zur&uuml;ck zu Microsoft Access.<\/li>\n<p>Jetzt sollte der Euro-Assistent problemlos funktionieren. Au&szlig;erdem k&ouml;nnen Sie nun einen Blick auf seine Bestandteile werfen und ihn anschlie&szlig;end ausprobieren.<\/p>\n<p>Wie schon oben erw&auml;hnt besteht der Euro-Assistent aus der Tabelle tblEuroFields und den Formularen frmEuroAssistent und frmEuroAssistentSub.<\/p>\n<p><!--30percent--><\/p>\n<p><b>Die Tabelle tblEuroFields<\/b><\/p>\n<p>In der Tabelle tblEuroFields werden die Informationen &uuml;ber die numerischen Felder Ihrer Datenbank gespeichert (siehe Bild 5).<\/p>\n<p>Die Tabelle besteht lediglich aus vier Spalten, ist also keinesfalls kompliziert zu nennen.<\/p>\n<p>Neben dem Prim&auml;rschl&uuml;sselfeld gibt es je ein Feld, in dem sp&auml;ter Tabellen- und Feldnamen gespeichert werden.<\/p>\n<p><IMG height=\"444\" src=\"..\/fileadmin\/_temp_\/{E40D12FE-689D-4C8F-BF1D-98EF1425CA9B}\/pic006.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Das Formular in der Entwurfsansicht<\/span><\/b><\/p>\n<p><IMG height=\"263\" src=\"..\/fileadmin\/_temp_\/{E40D12FE-689D-4C8F-BF1D-98EF1425CA9B}\/pic007.png\" width=\"383\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Das Unterformular als Datenblatt<\/span><\/b><\/p>\n<p>Ein Ja\/Nein-Feld wird durch ein Kontrollk&auml;stchen mit dem entsprechenden Wert versehen.<\/p>\n<p>Eine Besonderheit ist beim Prim&auml;rschl&uuml;sselfeld zu finden. Hier ist beim Felddatentyp AutoWert die Feldgr&ouml;&szlig;e ReplikationsID eingestellt. Eine andere und gebr&auml;uchlichere Bezeichnung daf&uuml;r ist GUID, was f&uuml;r Globally Unique Identifier steht. Dies ist eine 16 Byte gro&szlig;e Zahl, die weltweit einmalig sein soll.<\/p>\n<p>Auf die Funktionalit&auml;t des Euro-Assistenten hat die Einstellung der Feldgr&ouml;&szlig;e auf Long Integer oder ReplikationsID allerdings keinen Einfluss.<\/p>\n<p><b>Das FormularfrmEuroAssistent<\/b><\/p>\n<p>Auch das Formular frmEuroAssistent ist sehr einfach aufgebaut (siehe Bild 6).<\/p>\n<p>Hauptbestandteil des Formulars ist das Unterformular-Steuerelement, in dem das Unterformular frmEuroAssistent Sub angezeigt wird. Es besteht keine Verkn&uuml;pfung.<\/p>\n<p>Daneben sind noch ein Feld zur Anzeige von Statusmeldungen, ein Bezeichnungsfeld zur Information und eine einzelne Schaltfl&auml;che vorhanden.<\/p>\n<p><b>Das Unterformular frmEuroAssistentSub<\/b><\/p>\n<p>Das Unterformular frmEuroFieldsSub ist an die Tabelle tblEuroFields (siehe Bild 7) gebunden. Seine einzige Funktionalit&auml;t ist die Anzeige der Tabelle tblEuroFields im Formular frmEuroFields.<\/p>\n<p>Die Datenherkunft des Unterformulars ist auf die SQL-Anweisung<\/p>\n<pre>SELECT * FROM tblEuroFields ORDER BY TableName, FieldName;<\/pre>\n<p>eingestellt. Die Tabellenfelder werden &#8211; wie schon die Bild 7 zeigt &#8211; aufsteigend nach Tabellennamen und innerhalb der Tabellen nach Feldnamen sortiert.<\/p>\n<p>Die Standardansicht f&uuml;r das Unterformular ist Datenblatt.<\/p>\n<p><IMG height=\"289\" src=\"..\/fileadmin\/_temp_\/{E40D12FE-689D-4C8F-BF1D-98EF1425CA9B}\/pic008.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8:  Das Klassenmodul im Visual Basic Editor<\/span><\/b><\/p>\n<p><IMG height=\"409\" src=\"..\/fileadmin\/_temp_\/{E40D12FE-689D-4C8F-BF1D-98EF1425CA9B}\/pic009.png\" width=\"483\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 9:  Der Euro-Assistent<\/span><\/b><\/p>\n<p><b>Das Klassenmodul Form_frmEuroAssistent<\/b><\/p>\n<p>Das Klassenmodul Form_frmEuroAssistent enth&auml;lt die gesamte Programmlogik.<\/p>\n<h3>Hinweis<\/h3>\n<p>Dieses Klassenmodul ist Bestandteil des Formulars frmEuroAssistent, das beim Import des Formulars automatisch mit importiert wurde (siehe Bild 8). <\/p>\n<p>Der genaue Programmablauf wird im &uuml;bern&auml;chsten Abschnitt detailliert vorgestellt.<\/p>\n<p>Die Umrechnung von W&auml;hrungsfeldern mit dem Euro-Assistenten l&auml;uft praktisch in drei Schritten ab.<\/p>\n<p><b>Start des Euro-Assistenten<\/b><\/p>\n<p>Gestartet wird der Euro-Assistent durch den Aufruf des Formulars frmEuroAssistent im Datenbankfenster Ihrer Arbeits-datenbank.<\/p>\n<p>Im Unterformular werden alle Tabellen der Datenbank, die Felder mit numerischen Felddatentypen enthalten, zusammen mit diesen Feldern angezeigt (siehe Bild 9). Auf diese Weise k&ouml;nnen Sie leicht erkennen, zu welcher Tabelle die entsprechenden Felder geh&ouml;ren.<\/p>\n<p><IMG height=\"409\" src=\"..\/fileadmin\/_temp_\/{E40D12FE-689D-4C8F-BF1D-98EF1425CA9B}\/pic010.png\" width=\"483\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 10:  Zur Umrechnung markierte Felder<\/span><\/b><\/p>\n<p><b>Auswahl und Markierung derW&auml;hrungsfelder<\/b><\/p>\n<p>W&auml;hrungsbetr&auml;ge sollten eigentlich immer in Feldern mit dem Felddatentyp W&auml;hrung erfasst werden.<\/p>\n<p>In der Praxis kommt es aber h&auml;ufig vor, dass W&auml;hrungsbetr&auml;ge auch in Feldern mit einem anderen numerischen Felddatentyp zu finden sind: Single, Double oder bei ganzzahligen Betr&auml;gen auch Integer bzw. Long Integer. Es kommen sogar Datenbanken mit W&auml;hrungsbetr&auml;gen in Textfeldern vor.<\/p>\n<p>Da dies die Realit&auml;t darstellt, muss sich auch der Euro-Assistent daran orientieren. Keine noch so ausgefeilte Programmierlogik vermag herauszufinden, ob beispielsweise die Zahl 1024 in einem Long Integer-Feld einen W&auml;hrungsbetrag oder eine Entfernung in Metern darstellen soll.<\/p>\n<p><IMG height=\"92\" src=\"..\/fileadmin\/_temp_\/{E40D12FE-689D-4C8F-BF1D-98EF1425CA9B}\/pic011.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 11:  Fehlermeldung bei fehlgeschlagener Umrechnung<\/span><\/b><\/p>\n<p>Aus diesen Gr&uuml;nden ist nun der Anwender gefordert, nur die Kontrollk&auml;stchen derjenigen Felder zu markieren, die W&auml;hrungsbetr&auml;ge enthalten (siehe Bild 10). Das d&uuml;rfte eigentlich &#8211; vor allem bei sprechenden Feldnamen &#8211; kein Problem sein.<\/p>\n<p>Sie sollten trotzdem Acht geben, da es Ihnen sonst passieren kann, dass Sie Ihren Kunden faktisch den Rabatt halbieren.<\/p>\n<p>Schlimmeres kann kaum geschehen. Beim Versuch, Prim&auml;r- oder Sekund&auml;rschl&uuml;sselfelder umzurechnen, bricht der Euro-Assistent mit einer Fehlermeldung ab (siehe Bild 11).<\/p>\n<p><b>Umrechnung durchf&uuml;hren<\/b><\/p>\n<p>Die Umrechnung wird mit einem Klick auf die Schaltfl&auml;che Start ausgel&ouml;st. Nach einer Sicherheitsabfrage (siehe Bild 12) erfolgt die Verarbeitung.<\/p>\n<p><IMG height=\"100\" src=\"..\/fileadmin\/_temp_\/{E40D12FE-689D-4C8F-BF1D-98EF1425CA9B}\/pic012.png\" width=\"393\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 12:  Sicherheitsabfrage<\/span><\/b><\/p>\n<p>Der Status der Verarbeitung wird in dem gelben Statusfenster unterhalb der Tabelle mit der Auflistung der Felder angezeigt.<\/p>\n<p><IMG height=\"119\" src=\"..\/fileadmin\/_temp_\/{E40D12FE-689D-4C8F-BF1D-98EF1425CA9B}\/pic013.png\" width=\"365\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 13:  Meldung nach erfolgreicher Verarbeitung<\/span><\/b><\/p>\n<p>Nach erfolgreicher Verarbeitung wird der Anwender durch ein Meldungsfenster informiert (siehe Bild 13).<\/p>\n<p>Abschlie&szlig;end braucht nur noch das Formular frmEuroAssistent geschlossen zu werden.<\/p>\n<p><b>Abschlie&szlig;ende Bemerkungen<\/b><\/p>\n<p>Nach einem Blick in die Datenblattansicht einer der ausgew&auml;hlten Tabellen k&ouml;nnen Sie sich von der erfolgreichen Umrechnung &uuml;berzeugen.<\/p>\n<p>Dabei sind allerdings noch zwei Dinge zu beachten, die in den folgenden beiden Abschnitten beschrieben werden.<\/p>\n<h3>Mehrfachumrechnung<\/h3>\n<p><IMG height=\"148\" src=\"..\/fileadmin\/_temp_\/{E40D12FE-689D-4C8F-BF1D-98EF1425CA9B}\/pic014.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 14:  Umgerechnetes W&auml;hrungsfeld in einer Tabelle<\/span><\/b><\/p>\n<p>Es ist ohne weiteres m&ouml;glich, den Euro-Assistenten auf einem W&auml;hrungsfeld mehrfach auszuf&uuml;hren. Dabei wird dann nat&uuml;rlich auch der angezeigte Betrag jedes Mal fast halbiert.<\/p>\n<p>Sie sollten also irgendwie sicher stellen, dass dies nicht geschehen kann.<\/p>\n<h3>W&auml;hrungseinheiten<\/h3>\n<p>Die Wirkung des Euro-Assistenten ist lediglich auf die &auml;nderung der reinen Daten fokussiert. Demnach werden auch eventuell vorhandene W&auml;hrungseinheiten nicht ge&auml;ndert.<\/p>\n<p>Formulare und Berichte m&uuml;ssen also vom Anwender selbst umgestellt werden. Dies k&ouml;nnte beispielsweise komfortabel mit Hilfe eines globalen Tools Suchen &#038; Ersetzen erfolgen.<\/p>\n<p>Nun wird es aber langsam Zeit f&uuml;r einen Blick hinter die Kulissen des Euro-Assistenten.<\/p>\n<p>Der VBA-Code und damit die gesamt Programmlogik befindet sich, wie schon erw&auml;hnt, im Klassenmodul Form_frmEuroAssistent.<\/p>\n<p>Der VBA-Code wird hier nur auszugsweise abgedruckt. Den vollst&auml;ndigen Code k&ouml;nnen Sie der Beispieldatenbank der Heft-CD entnehmen.<\/p>\n<p><b>Auslesen von Tabellen und Feldern der Datenbank<\/b><\/p>\n<p>Beim &ouml;ffnen des Formulars frmEuroFields wird eine Ereignisprozedur ausgef&uuml;hrt (s. Quellcode 1).<\/p>\n<p>Die entscheidende Aktion ist der Aufruf der Sub Prozedur LoadTables.<\/p>\n<p>Nach den obligatorischen Variablendeklarationen (s. Quellcode 2) werden alle Datens&auml;tze in der Tabelle tblEuroFields gel&ouml;scht. <\/p>\n<pre>Private Sub Form_Open(Cancel As Integer)\r\n    LoadTables\r\n    Me.Sub.Requery\r\nEnd Sub\r\nDim MyCatalog As ADOX.Catalog\r\nDim MyTable As ADOX.Table\r\nDim MyColumn As ADOX.Column\r\nDim MyEuroFields As ADODB.Recordset\r\n    SetStatus \"Lade Tabellen\"\r\n    CurrentProject.Connection.Execute \"DELETE * FROM tblEuroFields\"\r\nFor Each MyTable In .Tables\r\n    If MyTable.Type = \"TABLE\" Then\r\n        For Each MyColumn In MyTable.Columns\r\n            Select Case MyColumn.Type\r\n            Case DataTypeEnum.adDouble, _\r\n                DataTypeEnum.adCurrency, _\r\n                DataTypeEnum.adInteger, _\r\n                DataTypeEnum.adDecimal, _\r\n                DataTypeEnum.adSingle, _\r\n                DataTypeEnum.adNumeric\r\n                With MyEuroFields\r\n                    .AddNew\r\n                    !TableName = MyTable.Name\r\n                    !FieldName = MyColumn.Name\r\n                    !Selected = False\r\n                    .Update\r\n                End With\r\n            End Select\r\n        Next MyColumn\r\n    End If\r\nNext MyTable<\/pre>\n<p>Damit ist sichergestellt, dass sich in der Tabelle keine Angaben zu Objekten aus anderen Datenbanken befinden k&ouml;nnen. Stichwort: Import des Euro-Assistenten aus einer anderen Datenbank (unter Pkt. 3.1).<\/p>\n<p>Nach der Erstellung eines Recordsets wird in zwei  verschachtelten For Each-Schleifen jede Tabelle der Datenbank mit den dazugeh&ouml;rigen Feldern durchlaufen, auf Felder mit numerischen Felddatentypen &uuml;berpr&uuml;ft und ausgelesen (s. Quellcode 3).<\/p>\n<pre>...\r\nMyConnection.BeginTrans\r\n    InTrans = True\r\n...\r\nMyConnection.CommitTrans\r\n    InTrans = False\r\n...\r\nFehler:\r\n    If InTrans Then MyConnection.RollbackTrans\r\n    MsgBox \"Es ist ein Fehler aufgetreten: \" & _        Err.Description\r\n    StartCalculation = False\r\n    Exit Function\r\nQuellcode 4\r\nWhile Not .EOF\r\n    SQL = \"UPDATE [\" & !TableName & \"]\"\r\n    SQL = SQL & \" SET [\" & !FieldName & \"] = \"\r\n    SQL = SQL & \"[\" & !FieldName & \"] \/ 1.95583\"\r\n    SetStatus \"Bearbeite \" & !TableName & \".\" _        & !FieldName\r\n    CurrentProject.Connection.Execute SQL\r\n    .MoveNext\r\nWend\r\nQuellcode 5<\/pre>\n<p>Diese Werte werden dann in die Tabelle tblEuroFields &uuml;bertragen.<\/p>\n<p>Abschlie&szlig;end wird mit der Codezeile<\/p>\n<pre>Me.Sub Requery<\/pre>\n<p>die Datenherkunft oder Recordsource des Unterformularsteuerelements aktualisiert, damit dort auch die aktuellen Datens&auml;tze der Tabelle tblEuroFields angezeigt werden.<\/p>\n<p><b>Die Umrechnung<\/b><\/p>\n<p>Durch einen Klick auf die Schaltfl&auml;che Start im Formular wird &#8211; das wird Sie nicht sonderlich &uuml;berraschen &#8211; eine Funktion aufgerufen.<\/p>\n<h3>Safety First<\/h3>\n<p>In der Funktion StartCalculation werden die Transaktionsmethoden BeginTrans, CommitTrans und RollBackTrans verwendet (s. Quellcode 4).<\/p>\n<p>Der Hintergrund daf&uuml;r wird hoffentlich durch folgendes Beispiel deutlich:<\/p>\n<p>Es ist durchaus denkbar, dass die Verarbeitung nach zwei aktualisierten Tabellen aufgrund eines Fehlers abbricht. Die restlichen f&uuml;nf Tabellen werden dann nicht mehr aktualisiert. Dadurch w&uuml;rde ein unm&ouml;glicher Datenzustand auftreten, der f&uuml;r jeden Anwender unzumutbar ist.<\/p>\n<p>Durch die Verwendung der Transaktionsmethoden wird genau dies verhindert. Bei einem Fehler erfolgt ein so genanntes RollBack, das alle bisherigen &auml;nderungen r&uuml;ckg&auml;ngig macht.<\/p>\n<p>Dadurch ist also in jedem Fall sichergestellt, dass entweder alle Tabellen aktualisiert werden oder &uuml;berhaupt keine Tabelle aktualisiert wird.<\/p>\n<p>Anders ausgedr&uuml;ckt: Der Anwender braucht sich um derartige Dinge &uuml;berhaupt nicht zu k&uuml;mmern, geschweige denn dar&uuml;ber einen Gedanken zu verschwenden.<\/p>\n<h3>Die Aktualisierung<\/h3>\n<p>Die eigentliche Aktualisierung der Tabellenfelder erfolgt dann nach dem &ouml;ffnen des obligatorischen Recordsets innerhalb einer While-Schleife (s. Quellcode 5).<\/p>\n<p>An dieser Stelle k&ouml;nnen Sie auch den Code anpassen, falls Sie eine finanzbuchhalterische Umrechnung w&uuml;nschen.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>Euro-Assistent00.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/F95274F6-513C-46BA-8690-E0F99B0802F2\/aiu_39.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es ist eine Binsenweisheit, dass gro&szlig;e Entscheidungen einen Rattenschwanz von Konsequenzen auch im Kleinen nach sich ziehen k&ouml;nnen. Bezogen auf die Einf&uuml;hrung des Euro und Microsoft Access bedeutet das beispielsweise, dass mit Sicherheit eine Unmenge von W&auml;hrungsfeldern in Access-Tabellen auf die neue W&auml;hrung umgestellt werden m&uuml;ssen. Schlie&szlig;lich muss in vielen Datenbankanwendungen mit diesen Feldern genau gerechnet werden. In diesem Beitrag lernen Sie einen Assistenten kennen, der Ihnen bei der W&auml;hrungsumstellung Ihrer Access-Datenbank behilflich ist.<\/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":[662001,66062001,44000027],"tags":[],"class_list":["post-55000039","post","type-post","status-publish","format-standard","hentry","category-662001","category-66062001","category-Loesungen"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Der Euro-Assistent - 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\/Der_EuroAssistent\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Der Euro-Assistent\" \/>\n<meta property=\"og:description\" content=\"Es ist eine Binsenweisheit, dass gro&szlig;e Entscheidungen einen Rattenschwanz von Konsequenzen auch im Kleinen nach sich ziehen k&ouml;nnen. Bezogen auf die Einf&uuml;hrung des Euro und Microsoft Access bedeutet das beispielsweise, dass mit Sicherheit eine Unmenge von W&auml;hrungsfeldern in Access-Tabellen auf die neue W&auml;hrung umgestellt werden m&uuml;ssen. Schlie&szlig;lich muss in vielen Datenbankanwendungen mit diesen Feldern genau gerechnet werden. In diesem Beitrag lernen Sie einen Assistenten kennen, der Ihnen bei der W&auml;hrungsumstellung Ihrer Access-Datenbank behilflich ist.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-10T18:59:56+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg04.met.vgwort.de\/na\/b1e942d2be364de19d980e51583ecb80\" \/>\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=\"11\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_EuroAssistent\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_EuroAssistent\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Der Euro-Assistent\",\"datePublished\":\"2021-02-10T18:59:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_EuroAssistent\\\/\"},\"wordCount\":2100,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_EuroAssistent\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/b1e942d2be364de19d980e51583ecb80\",\"articleSection\":[\"2001\",\"6\\\/2001\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_EuroAssistent\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_EuroAssistent\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_EuroAssistent\\\/\",\"name\":\"Der Euro-Assistent - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_EuroAssistent\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_EuroAssistent\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/b1e942d2be364de19d980e51583ecb80\",\"datePublished\":\"2021-02-10T18:59:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_EuroAssistent\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_EuroAssistent\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_EuroAssistent\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/b1e942d2be364de19d980e51583ecb80\",\"contentUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/b1e942d2be364de19d980e51583ecb80\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Der_EuroAssistent\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Der Euro-Assistent\"}]},{\"@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":"Der Euro-Assistent - 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\/Der_EuroAssistent\/","og_locale":"de_DE","og_type":"article","og_title":"Der Euro-Assistent","og_description":"Es ist eine Binsenweisheit, dass gro&szlig;e Entscheidungen einen Rattenschwanz von Konsequenzen auch im Kleinen nach sich ziehen k&ouml;nnen. Bezogen auf die Einf&uuml;hrung des Euro und Microsoft Access bedeutet das beispielsweise, dass mit Sicherheit eine Unmenge von W&auml;hrungsfeldern in Access-Tabellen auf die neue W&auml;hrung umgestellt werden m&uuml;ssen. Schlie&szlig;lich muss in vielen Datenbankanwendungen mit diesen Feldern genau gerechnet werden. In diesem Beitrag lernen Sie einen Assistenten kennen, der Ihnen bei der W&auml;hrungsumstellung Ihrer Access-Datenbank behilflich ist.","og_url":"https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-02-10T18:59:56+00:00","og_image":[{"url":"http:\/\/vg04.met.vgwort.de\/na\/b1e942d2be364de19d980e51583ecb80","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"11\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Der Euro-Assistent","datePublished":"2021-02-10T18:59:56+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/"},"wordCount":2100,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/#primaryimage"},"thumbnailUrl":"http:\/\/vg04.met.vgwort.de\/na\/b1e942d2be364de19d980e51583ecb80","articleSection":["2001","6\/2001","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/","url":"https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/","name":"Der Euro-Assistent - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/#primaryimage"},"thumbnailUrl":"http:\/\/vg04.met.vgwort.de\/na\/b1e942d2be364de19d980e51583ecb80","datePublished":"2021-02-10T18:59:56+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/#primaryimage","url":"http:\/\/vg04.met.vgwort.de\/na\/b1e942d2be364de19d980e51583ecb80","contentUrl":"http:\/\/vg04.met.vgwort.de\/na\/b1e942d2be364de19d980e51583ecb80"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Der_EuroAssistent\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Der Euro-Assistent"}]},{"@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\/55000039","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=55000039"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000039\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000039"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000039"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}