我试图在下面的VB Script的帮助下将一些记录插入到MS Access Table中。但是当我试图执行它时,它会抛出编译错误:语句的预期结束。请有人帮我弄清楚我哪里出错了。
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
答案 0 :(得分:3)
VBScript(与VBA或其他方言相对)不支持键入的Dims。所以
Dim dbs As DAO.Database
Dim DbFullNAme As String
需要
Dim dbs
Dim DbFullNAme
VBscript没有本机OpenDatabase()函数。您需要使用ADO连接到您的Access'数据库'。首先创建一个连接
Set dbs = CreateObject("ADODB.Connection")
然后确定connection string和
dbs.Open cs
其余代码应该有效。
更新评论:
错误消息:
D:\G\Diamond\FINAL MS-Access\query1.vbs(2, 9) Microsoft VBScript compilation error: Expected end of statement
证明OT试图写一个VBScript(误导性的vba / access标签的添加是(C)Pankaj Jaju)。
答案 1 :(得分:2)
因此,让我们分解一下这段代码无法正常工作的真正原因。
我将Visual Basic for Applications(VBA)复制并粘贴到.VBS(Visual Basic脚本)文件中,并期望它能够正常工作。
这个问题是VBA和VBScript的语言略有不同。获得商机后,在stackoverflow上查看两个标签的info部分。
现在,我们只需修补您的代码并维护您的DAO对象,这样您就不必使用ADODB重建数据库使用情况。
ExecuteInsert
Sub ExecuteInsert()
Dim dbs, DbFullName, acc
Set acc = createobject("Access.Application")
DbFullName = "D:\G\Diamond\FINAL MS-Access\MS-Access project.accdb"
Set dbs = acc.DBEngine.OpenDatabase(DbFullName, False, False)
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
msgbox "done"
End Sub
所做的更改。
As ***
语句以获取vbscript兼容性acc.DBEngine.
之前添加OpenDatabase
附加参数。Form_Click
重命名为ExecuteInsert,然后将ExecuteInsert
放在代码顶部,以便vbscript激活该子代码。如果你只是在vbscript文件中放置一个sub,它不一定会运行,你必须直接激活它。 此代码经过测试和功能。祝你好运。
答案 2 :(得分:0)
添加到Ekkehard.Horner http://www.csidata.com/custserv/onlinehelp/vbsdocs/vbs6.htm
VBScript只有一种名为Variant的数据类型。变体是一个 可以包含不同种类的特殊数据类型 信息,取决于它的使用方式。因为Variant是唯一的 VBScript中的数据类型,它也是所有人返回的数据类型 VBScript中的函数。