Неправильное использование Null MS Access для Vb6 - PullRequest
0 голосов
/ 23 сентября 2019

Я проверяю ежедневное время нахождения / выходе сотрудников из базы данных MS Access в VB6:

Private Sub Command5_Click()

    hours = DateDiff("h", DTPicker1, DTPicker2)
    days = DateDiff("d", DTPicker3, DTPicker4) + 1
    X = hours * days

End Sub

Sub loaddata()
    Dim list As ListItem

    Listview1.ListItems.Clear
    dbconnection
    rs.Open "Select *From ATTENDANCE", con, adOpenDynamic, adLockOptimistic

    Do Until rs.EOF
        Set list = Listview1.ListItems.Add(, , rs!EMPID)
        list.SubItems(1) = rs!EMPNAME
        list.SubItems(2) = rs!Department
        list.SubItems(3) = rs!LOGIN
        list.SubItems(4) = rs!LOGOUT
        list.SubItems(5) = rs!LOGDATE
        list.SubItems(6) = rs!TOTALMIN
        rs.MoveNext
    Loop

    rs.Close

End Sub

Sub dbconnection()
    If con.State = 1 Then
       con.Close
    End If
    Set con = New ADODB.Connectioncon.Open "Provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:\Users\MIS02\Documents\Backup1.accdb;Persist Security Info = false"
End Sub

Произошла ошибка, когда в базе данных нет значения времени ожидания enter image description here

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019

Я понял, в чем моя проблема, ребята, вот мой код

        If IsNull(rs(5).Value) Then
        list.SubItems(5) = ""
        MsgBox "NO TIME OUT"
        Else
        list.SubItems(5) = rs(5).Value
        End If
0 голосов
/ 24 сентября 2019

Я написал небольшую оболочку, которую я использую почти для любого поиска в базе данных, который может иметь значение Null, просто для предотвращения ложных сбоев:

Public Function FixNull(Value As Variant, Optional NullValue As Variant = vbNullString) As Variant
   ' This function returns Value as a string (or other passed type), even if it's a NULL.
   If IsNull(Value) Then
      FixNull = NullValue
   Else
      FixNull = Value
   End If
End Function

Обратите внимание, что любое выражение, содержащее Null, будет иметь значение Null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...