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 の連結子は & ではなく + です。文字列の 1 つが null の場合に + を使用すると、null が返される場合があります。

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

もしかして:

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