【发布时间】:2020-05-16 05:24:36
【问题描述】:
我在尝试获取“站点”组合框的值时收到此错误。下面是 Excel 工作表和错误消息的图像,以及发生错误的代码部分。任何帮助将不胜感激。谢谢!
硬编码 - 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
【问题讨论】:
-
出错时
rstSite.Fields("mfg_site")的值是多少? -
出错时的值为NULL
-
听起来值(Null)不允许用于“站点”。问 fpor 值是否有效 - 例如msgbox rstSite.Fields("mfg_site") ?您可以手动将 NULL 放入该字段吗?
-
试试这个
If Not IsNull(rstSite.Fields("mfg_site")) Then Site.AddItem rstSite.Fields("mfg_site") -
解决了问题,谢谢!!
标签: excel vba runtime-error type-mismatch