Excel / Visual Basi c Ошибка типа несовпадения во время выполнения 2147352571 - PullRequest
1 голос
/ 30 января 2020

Я получаю эту ошибку при попытке получить значения для поля со списком "Сайт". Ниже приведены изображения листа Excel и сообщения об ошибке, а также часть кода, в которой происходит ошибка. Любая помощь будет принята с благодарностью. Спасибо!

enter image description here

(снимок экрана кода)

Жесткий код - ошибки в строке Site.AddItem rstSite.Fields("mfg_site")

Private Sub Site_Enter()
    Dim stSQL As String
    Dim rstSite As ADODB.Recordset

    ' First remove any existing
    Site.Clear
    DoEvents
    ' Load Widget
    stSQL = "select distinct mfg_site from suserflds join sample on sample.sampno=suserflds.sampno" & _
        " where cast(coldate as date) between '" & DateValue(DateFrom) & "' and '" & DateValue(DateTo) & "'" & _
        " order by mfg_site "
    Set rstSite = con.Execute(stSQL)
    While Not rstSite.EOF
        Site.AddItem rstSite.Fields("mfg_site")
        rstSite.MoveNext
    Wend
    Set rstSite = Nothing
End Sub

1 Ответ

0 голосов
/ 30 января 2020

Значение на момент ошибки - NULL - CShep878 11 минут a go

Нельзя добавить нулевые значения. См. Этот пример

Private Sub CommandButton1_Click()
    ComboBox1.AddItem Null
End Sub

enter image description here Для обработки Null используйте это

If Not IsNull(rstSite.Fields("mfg_site")) Then Site.AddItem rstSite.Fields("mfg_site")

Интересное прочтение о NULL

Легко думать о пустых и пустых записях как об одном и том же, но они не равны. Термин «ноль» просто означает, что данные отсутствуют или неизвестны. Это не то же самое, что сказать, что данные не существуют, хотя могут и не существовать. Часто нулевые записи указывают на то, что значение будет получено или что кто-то все еще ищет данные. В конце концов, вы можете обнаружить, что данные недействительны для этой конкретной записи, но до достижения этого консенсуса значение должно оставаться нулевым.

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