【发布时间】:2018-09-21 16:31:12
【问题描述】:
要打开,我从来没有写过vbs脚本。我编写了许多 SQL 脚本、视图、开发的数据库。我在 Access 应用程序中写了很多 VBA。
为此,我只是尝试将 SQL 脚本设置为 VBS 脚本,因此用户不必进入 SSMS 即可运行它。他们只需双击 VBS 脚本,在提示时指定服务器和数据库,快速脚本将为他们运行。
这是我到目前为止所得到的,但我不断收到 Microsoft VBScript 编译错误。最新的是第 3 行 char 17,它位于 Dim 语句中。只是想看看是否有人能判断我是否缺少该脚本的基本内容,即阻止它正确编译或处理。
这是非常短的脚本:
Dim conn
Set conn = createobject("Adodb.Connection")
Dim sConnString As String
Dim SqlStatement As String
sSourceServer = InputBox ("Enter the name of the SQL Server","Enter SQL Server Name","")
If Len(sSourceServer) = 0 Then
MsgBox "No SQL Server was specified.", , "Unable to Continue"
Exit Sub
End if
sSourceDB = InputBox ("Enter the name of the Law SQL Database","Enter Law SQL DB Name","")
If Len(sSourceDB) = 0 Then
MsgBox "No SQL DB was specified.", , "Unable to Continue"
Exit Sub
End if
' Create the connection string.
sConnString = "Provider=SQLOLEDB;Data Source=" & sSourceServer & "; Initial Catalog=" & sSourceDB & "; Integrated Security=SSPI;"
MsgBox sConnString
' Open the connection and execute.
conn.Open sConnString
conn.CommandTimeout = 900
SqlStatement = "UPDATE [tablename] " & _
"SET UUID = CASE WHEN CHARINDEX('.',[Filename]) > 1 THEN LEFT(CAST([Filename] AS VARCHAR),CHARINDEX('.',[Filename])-1) ELSE [Filename] END " & _
"WHERE [Filename] IS NOT NULL"
conn.Execute(SqlStatement)
conn.Close
Set rs = Nothing
SqlStatement = vbNullString
MsgBox "All Done! Go Check your results!"
如果有人能提供帮助,我将不胜感激。
谢谢
【问题讨论】:
-
这是真正的 VBS 脚本,还是 Excel 中的 VBA?尝试删除 As String,因为在 VBS 中您不能显式键入任何内容。
-
感谢您的回复。我是基于 2 个 vbs 脚本编写的。一个是真正的 vbs 脚本。另一个,我在一个论坛上找到的,用户说他们一直在用excel写它,并计划把它变成一个真正的vbs脚本。那是我的问题,似乎。我很高兴我能这么快就让它工作。让我想了解更多关于真正的 vbs 脚本。我已经习惯了 Access 中的 VBA,所以我必须了解两者之间的区别。
标签: sql vbscript compiler-errors adodb