当尝试处理数据库登录表单中的错误时,结果不同



我正在制作一个应用程序,该应用程序将验证登录到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")

相关内容

  • 没有找到相关文章

最新更新