Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database MS Access VBA Listbox.ItemData基础数据类型 请考虑下面的小片段: If rs!Manufacturer = myListbox.ItemData(Index) Then_Database_Ms Access_Vba_Type Conversion - Fatal编程技术网

Database MS Access VBA Listbox.ItemData基础数据类型 请考虑下面的小片段: If rs!Manufacturer = myListbox.ItemData(Index) Then

Database MS Access VBA Listbox.ItemData基础数据类型 请考虑下面的小片段: If rs!Manufacturer = myListbox.ItemData(Index) Then,database,ms-access,vba,type-conversion,Database,Ms Access,Vba,Type Conversion,这两块手表: Watch : rs!Manufacturer.Value : 1 : Variant/Long Watch : Me.myListbox.ItemData(Index) : "1" : Variant/String 是rs!Manufacturer.Value由recordsetrs和Me.myListbox.ItemData(Index)检索的表myTable中的整数值。ItemData(Index)完全相同的数据,但以我的形式显

这两块手表:

Watch :  rs!Manufacturer.Value            :  1    : Variant/Long
Watch :  Me.myListbox.ItemData(Index)     : "1"   : Variant/String
rs!Manufacturer.Value
由recordset
rs
Me.myListbox.ItemData(Index)
检索的表
myTable
中的整数值。ItemData(Index)完全相同的数据,但以我的形式显示在
ListBox
控件中,并从同一个表中检索

很明显,listbox正在将原始数据类型转换为原始值的字符串表示形式,因此,与给定值的比较失败,而我希望它会成功

所以问题是:有没有一种(简单的)方法可以从我的列表框中检索原始数据类型的数据(换句话说,与我的表中的数据类型相同)?

许多人可能会指出,我可以使用
CInt()
CLng()
轻松地将listbox值转换回整数,但这会使我的代码在检索原始类型的数据时严重绑定到每种特定情况,无论是哪种类型,都会使代码更干净,并且仍然完全可靠

好的,另一个想法是将记录集值也转换为
字符串
,但是从C程序员的角度来看,这对我来说太痛苦了,所以我宁愿避免它

提前谢谢

列表和组合框始终返回字符串

这真的没什么大不了的。您将知道记录集字段的数据类型,因此只要根据需要进行转换即可-如:

rs!Manufacturer.Value = Val(Me!myListbox.ItemData(Index))
附录

如果您希望继续使用数据类型,只需在填充列表框时向列表框中添加值的
VarType
列即可


从列表框中读取值时,还要读取保存数据类型的(隐藏)列,并具有一个带有
Select。。Case
构造将文本值转换为原始数据类型。

Hello Gustav。谢谢你的回答。不幸的是,
Val()
Val()
仅用于从
字符串
到数字的转换,并且严格限制了本地化数字。最后,我没有原始信息,而是经过解析的信息。我不知道“你在找什么”。我从1.0版开始就在Access中编程,从未遇到过这样的问题,你无法轻松解决,所以我感觉你在追逐幽灵
Val
适用于您提到的任何整数/长整数。如果小数没有点作为小数分隔符,请使用
CCur
CDbl