我正在制作一个应用程序,该应用程序将验证登录到MySQL服务器,这是用ADODB.Connection
完成的,然后打开另一个HTA,如果没有错误给出。我正试图实现这一目标,但使用HTA, VBScript和辛勤工作 &帮助;如果用户输入了错误的用户名/密码,我想捕获一条错误消息,而不涉及太多细节。
通常情况下,如果你输入了错误的密码或用户名,它会显示一个HTML错误消息,这看起来不太友好。这就是这段代码试图捕捉并使之更友好的原因。下面的代码段:
Sub MainLogin_click
dim strError
Uname = usertext.Value
Pword = passtext.Value
cstring = "DRIVER={MySQL ODBC 5.2w Driver};SERVER=Localhost;UID=" & Uname _
& ";PWD=" & Pword & ";DATABASE=maindb;"
conn = CreateObject("ADODB.Connection")
On Error Resume Next
conn.Open cstring
Call MakeDSN
If Err.Number <> 0 Then
strError = "LongBow Error" & VbCrLf & " Error Number: " & Err.Number _
& VbCrLf & " Error Source: " & Err.Source _
& VbCrLf & " Error Description: " & Err.Description
MsgBox(strError)
Err.Clear
Else
Set objShell = CreateObject("WScript.Shell")
objShell.Run("binLongBowAgent.hta")
Window.close
conn.Close
End If
On Error GoTo 0
End Sub
基本上当我运行这段代码时,我的HTA作为一个整体,要么
- 什么也没有发生,当'login'按钮被按下时没有任何活动。
或
- 我得到一个很好的错误框(即使有正确的用户名/密码)说
Error 424, VBScript runtime error, object Required
。
老实说-我已经在这个2天了,尝试了很多东西。没有一个是真正有效的,但谷歌搜索只能做这么多。
任何帮助,任何建议将是伟大的。我不介意在这里尝试一些完全不同的东西,只要它保持在HTA的范围内。VBScript。
你的OERN的作用域太大了——它不仅隐藏了。open的错误,还隐藏了MakeDSN和错误处理代码中的问题。
具有讽刺意味的是,第一个罪魁祸首并没有被OERN所涵盖:
conn = CreateObject("ADODB.Connection")
是错误的,因为你赋值了一个对象。试着
Set conn = CreateObject("ADODB.Connection")