【问题标题】:Returning an error message when typed a wrong spelling in input box在输入框中输入错误的拼写时返回错误消息
【发布时间】:2013-10-28 17:27:42
【问题描述】:

我有这段代码,我使用 VBA 在 mySQL 数据库中插入、更新和删除数据。我有一个输入框,可以使用它们的编号搜索 SQL 表中的特定数据,当我输入数字并且有匹配的记录时,程序会显示“找到记录”。但是每次我输入一个数字并且没有匹配的数据时程序都会出错。我的问题是,当没有匹配的数据时,我将如何返回一条显示“未找到记录”的错误消息?我作为初学者正在学习 vba,使用的一些代码对我来说并不熟悉.. 谢谢。

  Dim rs As New ADODB.Recordset
myConn
Dim holdstr As String
holdstr = InputBox("Enter name")
If holdstr = "" Then
MsgBox "Please fill up the requirements", vbInformation, "Message"
conn.Close
Exit Sub
End If
rs.Open "SELECT * FROM lemployees where ENumber = '" & holdstr & "'", conn

MsgBox "Record found!", vbInformation, "Message"

UserForm2.TextBox2.Text = rs!ELName

【问题讨论】:

  • 调用rs.Open后测试rs.EOF的值

标签: mysql sql vb.net vba


【解决方案1】:

您要做的是在打开 Recordset RecordCount 属性后检查它。

Dim rcCount As Integer
rs.Open "SELECT * FROM lemployees where ENumber = '" & holdstr & "'", conn
rcCount = rs.RecordCount
If rcRecordCount = 0 Then
    MsgBox "No Record found", vbInformation, "Message"
Else
    MsgBox "Record found!", vbInformation, "Message"
    UserForm2.TextBox2.Text = rs!ELName
End If

【讨论】:

  • 顺便说一句,如果你注意到的话,我使用了一个变量 rcCount,而不是简单地使用 rs.RecordCount 属性进行“If”测试。在 VB 的情况下,这实际上是没有必要的。但是,养成良好的习惯。这是因为您确定加载变量的代码只会执行一次,并且当稍后引用它时,您肯定会存储在本地。如果这没有意义,请不要担心。只需养成在 If 和 For Each 循环等中使用局部变量的习惯即可。
  • @Jakester26 ..我已经尝试了你提供的代码,即使我输入了正确的数字,它仍然显示“未找到记录”。我可以在哪里插入您的代码?也许它不能正常工作,因为我插入不正确..
  • 您将记录数分配给一个变量 (rcCount) 并在 If 语句中考虑另一个变量 (rcRecordCount)。
  • 非常感谢您的回答:D
  • @user2123999 - 你试过测试rs.EOF 的值吗?如果没有返回记录,这将是 True
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-13
  • 1970-01-01
  • 2019-05-07
  • 2012-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多