Microsoft VBScript compilation error: Expected end of statement
Ich versuche, fügen Sie einige Datensätze in MS Access-Tabelle mit Hilfe von unter VB-Script. Aber wenn ich versuche, es auszuführen, es wirft Compilation error: Expected end of statement. Könnte jemand bitte mir helfen herauszufinden, wo mache ich falsch.
Private Sub Form_Click()
Dim dbs As DAO.Database
Dim DbFullNAme As String
DbFullName = "D:\G\Diamond\FINAL MS-Access\MS-Access project.accdb"
Set dbs = OpenDatabase(DbFullName)
dbs.Execute "INSERT INTO [2014_Status] ( Prompt, Project_Name, STATUS,Release_Name )SELECT RoadMap.SPRF_CC, RoadMap.SPRF_Name, RoadMap.Project_Phase,RoadMap.Release_Name FROM RoadMap WHERE (((Exists (select 1 FROM [2014_Status] where RoadMap.SPRF_CC = [2014_Status].[Prompt]))=False));"
dbs.Close
End Sub
- Die Kompilierung Fehlermeldung ist da , D:\G\Diamond\FINAL MS-Access\Abfrage1.vbs(2, 9) Microsoft VBScript compilation oder err: Expected end of statement
- und nur um sicher zu gehen, der obige code ist der code in
query1.vbs
? Wenn nicht, poste bitte den code für die Abfrage1.vbs in Ihrer Frage. - Ich glaube, Sie müssen () um den sql-code - dbs.Execute ("...;")
- Sind Sie sicher, dass Sie mit diesem ein korrekt (((Exists (select 1 FROM [2014_Status] wo RoadMap.SPRF_CC = [2014_Status].[Prompt]))=False)). Ich glaube nicht, dass der Zugriff haben oder diese features unterstützen. Aber in jedem Fall Ihre where-Klausel würde seltsam Aussehen "...wobei null=false;", oder "..., wo: 1=false;" und in jedem Fall wird es scheitern, weil es nichts zum einfügen auf allen. Versuchen Sie, um zu sehen, wie deine SQL-Anweisung aussieht, bevor Sie es ausführen.
- Bitte denken Sie nicht, sondern prüfen Sie die Fakten bevor: Sie müssen nicht mit param list () beim Aufruf einer sub in VBScript.
- Obwohl ich Stimme mit deiner ersten Aussage als Don ' s Kommentar nicht beweisen, genau oder nützlich sind, ist es absolut in Ordnung zu verwenden
()
im code beim Aufruf einer sub. Sie müssen jedoch zur Aktivierung der sub durch eineCall
Anweisung, z.B.Call dbs.Execute('sql statement')
Du musst angemeldet sein, um einen Kommentar abzugeben.
VBScript (im Gegensatz zu VBA oder andere Dialekte) ist nicht Unterstützung eingegeben Dimmt. So
werden müssen
VBscript hat keine native OpenDatabase () - Funktion. Sie benötigen ADO Verbindung zu Ihrem Access - "Datenbank". Erstellen Sie zuerst eine Verbindung
Dann bestimmen die connection-string und
Den rest des Codes sollte funktionieren.
Update-wrt Kommentar:
Die Fehlermeldung:
beweist, dass die OT zu schreiben versucht, ein VBScript (die neben der irreführenden vba/access-tags (C) Pankaj Jaju).
OpenDatabase()
genutzt. Wenn die OP hatte, nutzte dieSet acc = createobject("Access.Application")
dann könnte er es alsacc.OpenDatabase
. Aber egal, dies ist eine unvollständige und ungenügende Antwort.OpenDatabase
ist nicht ein 'Access VBA-Befehl' gegeben, es verfügbar sein wird, über keine VBA-oder COM-basierten VB-Umgebung, die einen Verweis auf die DAO-Typbibliothek geladen.So ermöglicht Abbau der wahre Grund, warum dieser code nicht funktioniert.
Den Sie kopiert und eingefügt haben, die Visual Basic für Applikationen(VBA) in eine .VBS(Visual Basic Script) Datei und erwartet, dass es funktioniert, nehme ich an.
Das problem mit diesem ist, dass VBA und VBScript sind etwas anders Sprachen. Überprüfen Sie die info-Abschnitt für beide tags auf stackoverflow, wenn Sie die Gelegenheit dazu bekommen.
Für jetzt können nur patch-code und pflegen Sie Ihre DAO-Objekt, so dass Sie nicht haben, zu rekonstruieren, Ihre Datenbank-Nutzung mit ADODB.
Änderungen.
As ***
Aussagen für vbscript Kompatibilitätacc.DBEngine.
vorOpenDatabase
mit zusätzlichen Parametern.Form_Click
zu ExecuteInsert, dann platziertExecuteInsert
oben im code, so dass die vbscript aktiviert den sub. Wenn Sie legen Sie einfach einen sub in eine vbscript-Datei, wird es nicht unbedingt ausführen, müssen Sie es aktivieren direkt.Dieser code ist getestet und Funktionen. Viel Glück für Sie.
Hinzufügen zu Ekkehard.Horner
http://www.csidata.com/custserv/onlinehelp/vbsdocs/vbs6.htm