Ich habe eine Textdatei mit ein paar SQL-Anweisungen, die ich auf einer Access-Datenbank ausführen möchte. Ich dachte, das sollte mit Access ' Query Editor möglich sein. Also gehe ich in diesem Editor und fügen Sie die Anweisungen:Wie führe ich mehrere SQL-Anweisungen in Access 'Query Editor aus?
insert into aFewYears (yr) values ('2000')
insert into aFewYears (yr) values ('2001')
insert into aFewYears (yr) values ('2002')
insert into aFewYears (yr) values ('2003')
Der Versuch, sie zu laufen (mit dem roten Ausrufezeichen Schlagen) Ich erhalte eine
Missing semicolon (;) at end of SQL statement.
Dies als Hinweis darauf gewertet werden könnte, dass die Editor würde ermöglichen, mehrere Anweisungen auszuführen. Also, ich die Anweisungen ändern und fügen Sie ein solches Semikolon am Ende:
insert into aFewYears (yr) values ('2000');
insert into aFewYears (yr) values ('2001');
insert into aFewYears (yr) values ('2002');
insert into aFewYears (yr) values ('2003');
Dann bekomme ich eine
Characters found after end of SQL statement.
, die wahrscheinlich als Hinweis darauf gewertet werden könnte, dass es nicht möglich ist zu mehreren Anweisungen ausführen .
Ok, also die Frage: ist es möglich, im Abfrageeditor mehrere Anweisungen auszuführen, oder ist es möglich, sql-Anweisungen in einer Datei in/on/gegen Access in Stapelverarbeitung auszuführen.
Dank/Rene
bearbeiten Die Insert-Anweisungen als Beispiel verwendet wurden, und ich merke, dass sie weniger als perfekt, weil sie alle auf den gleichen Tisch gehen und so etwas kann natürlich irgendwie durch gelöst werden Verwenden einer Anweisung, die eine Union oder etwas hat. In meinem tatsächlichen Fall, den ich zu lösen versuche, enthält die Datei nicht nur insert-Anweisungen, sondern auch Tabellenanweisungen und fügt Anweisungen mit verschiedenen zugrunde liegenden Tabellen ein. Ich hoffte also (und hoffe immer noch), dass es so etwas wie meine geliebte SQL * Plus für Oracle gibt, die eine Datei mit allen Arten von SQL-Anweisungen ausführen kann.
Warum eine Variable vom Typ Variant verwenden? Nur so können Sie mit einem Zähler ein UBound() überspringen? Als ich das zum ersten Mal gesehen habe, dachte ich, es sehe aus wie Code eines Nichtzugangsflüchtlings, und dann sehe ich, dass es von dir ist, Albert. Ich würde es nie so machen. Ich spalte Strings, daher sollte das Array meiner Meinung nach vom Typ String sein. –
@David W. Fenton - "Warum eine Variable vom Typ Variant verwenden?" - manchmal VBA gibt Ihnen nicht viel Auswahl in der Sache und das ist einer von ihnen. Der Vorteil von Split und For Each ist, dass der Code IMO besser lesbar ist ... aber das ist eine Frage des Geschmacks. Ich bemerke, dass Sie die ByVal/ByRef-Schlüsselworte häufig weglassen, was zu implizitem ByRef führt, während expliziter ByVal angemessener wäre. Aber nur eine Frage des Geschmacks, kein Problem. – onedaywhen
Ja für jedes Mittel verwende ich nicht ubound() Befehl. Es speichert auch Deklarationszähler für die For/Next-Schleife. Ich finde es ein bisschen weniger tippen und ich brauche keine Array-Referenzen wie vSql (I). Und auch anstelle von "Next I" kann ich folgendes verwenden: "Next" (also kann ich die verwendete Variable ändern und weniger andere Stellen im Code bewirken, wenn man die verwendete Var umbenennt). "für jede" Var muss Variante sein, jedoch sollte das Array (wie Dave hervorhebt) eigentlich als String-Array deklariert werden. Dim vSql() Als String –