0

我正在制作一个应用程序,它将验证对 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("bin\LongBowAgent.hta")
    Window.close
    conn.Close
  End If  
  On Error GoTo 0 
End Sub

基本上,当我运行此代码以及整个 HTA 时,要么

  • 没有任何反应,按下“登录”按钮时没有任何活动。

或者

  • 我得到一个很好的错误框(即使使用正确的用户名/密码)说 Error 424, VBScript runtime error, object Required

老实说 - 我已经在这里待了 2 天,并尝试了很多东西。没有一个真正起作用,但是 Google 搜索只能做这么多。

任何帮助和任何建议都会很棒。我不介意在这里尝试完全不同的东西,只要它保持在 HTA 和 VBScript 中。

4

1 回答 1

1

您的 OERN 的范围很大——它不仅隐藏了 .Open 的错误,而且还隐藏了 MakeDSN 和错误处理代码中的问题。

具有讽刺意味的是,OERN 并未涵盖第一个罪魁祸首:

conn = CreateObject("ADODB.Connection")

是错误的,因为您分配了一个对象。尝试

Set conn = CreateObject("ADODB.Connection")
于 2013-05-24T11:28:34.157 回答