首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定列表框绑定列VBA的类型

确定列表框绑定列VBA的类型
EN

Stack Overflow用户
提问于 2018-11-30 20:48:49
回答 1查看 236关注 0票数 0

我正在基于多选择列表框中的选择构建一个SQL字符串,为了实现这一点,我试图确定我的列表框的绑定列的类型是否为字符串。我编写了以下代码:

代码语言:javascript
复制
    If lstBox.ItemsSelected.Count > 0 Then
    lstVar = lstBox.ItemData(i)
    Debug.Print VarType(lstVar)
    For Each varItem In lstBox.ItemsSelected
        strCrit = strCrit & "," & "'" & lstBox.ItemData(varItem) & "'"
    Next varItem

    ' remove first comma
    strCrit = Mid(strCrit, 2)

在debug.print VarType语句上,即使列表框的绑定列是自动编号字段,它也总是会生成字符串类型。我想知道类型是否是数字的,而不是字符串,以便以后,在SQL语句中

代码语言:javascript
复制
 SELECT … FROM … WHERE … IN (x,y,z) 

我可以在哪里写正确的…在以后不会导致类型不匹配的标准中。是否有一种方法可以准确确定列表框绑定列的变量类型?也许我应该以另一种方式来处理,通过查看列表框的行源的类型。因为我使用这个函数来迭代构建where标准的多个列表框,所以我需要它是动态的和灵活的,因为某些列表框绑定列将是数字列,而其他列将是字符串,所以我不能仅仅将它硬编码到循环中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-01 07:50:12

对于绑定列表框,可以使用基础记录集获取绑定列的类型。

请参阅下列代码:

代码语言:javascript
复制
Dim rs As Object 'most likely DAO.Recordset but could be ADODB.Recordset
With lstBox
    Set rs = .Recordset
    Debug.Print rs.Fields(.BoundColumn - 1).Type
End With

如果使用DAO记录集,则打印DAO.DataTypeEnum;如果使用ADODB记录集,则打印ADODB.DataTypeEnum。它们很容易转换成VBA数据类型。

但是Mathieu Guindon关于使用参数的观点仍然存在。我强烈推荐。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53564709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档