0

我试图做到这一点,以便当用户从组合框中选择一个人时,他们的完整详细信息会显示出来,但是当条件应该返回 true 时,如果语句继续给出 false 一些错误处理

Private Sub ComboOwnerID_Change()
Dim SelID As Integer
Dim rs As DAO.Recordset
Dim db As Database
Dim strSQL As String
Dim result As String
SelID = 0
SelID = Me.ComboOwnerID.Text
If Not (SelID = 0) Then
    If Not (SelID = Null) Then
        Set db = CurrentDb
        strSQL = "SELECT * FROM Owners WHERE OwnerID = " + SelID
        Set rs = db.OpenRecordset(strSQL)
        Do While Not rs.EOF
            result = ""
            result = rs!Title + ". "
            result = result + rs!Forname + " "
            result = result + rs!Surname
            rs.MoveNext
        Loop
        Me.lblOwnerName.Caption = result
    Else
        Me.lblOwnerName.Caption = "error"
    End If
Else
    Me.lblOwnerName.Caption = "error"
End If
End Sub

它甚至还没有达到 SQL 位,所以我不知道这是否有效

4

1 回答 1

2

不要在 VBA 中使用 .text 属性,它仅在控件具有焦点时可用。VBA 中的连接符是 & 不是 +。当其中一个字符串为 null 时使用 + 可以返回 null。

If Not (SelID = Null) Then
    Set db = CurrentDb

你的意思是:

If Not IsNull(SelID) Then
    Set db = CurrentDb
于 2012-04-16T13:05:05.860 回答