我有一个通过以下查询获得的Recordset:
SELECT DISTINCT [Number] FROM NUMBERS WHERE CODE = 7 ORDER BY [Number]
因此,Recordset将是一个有序数字列表,例如。 [6,14,37,59,81,145]
我想生成一个由0和1组成的长数字串,除了记录集中数字指定的位置外,全部为0:例如。 6,14,37,59等。
因此结果如下:
000000000000000000100000000000000000000001000000000000000000001000000 etc
假设rs
是Recordset,到目前为止我有以下代码。这会有用吗?
intLower = 1
While Not (rs.BOF Or rs.EOF)
intUpper = rs!Number
For intSlot = intLower To intUpper
strOutput = strOutput & IIf(rs!Number = intSlot, 1, 0)
Next intSlot
rs.moveNext
intLower = intUpper + 1
Wend
注意:我意识到这与我之前的一个问题类似,但是现在我想问一下当数字包含在Recordset中时如何做到这一点。另请注意,我不想使用将记录集转换为数组的函数,因为我使用的是DAO,显然GetRows存在问题。
答案 0 :(得分:0)
怎么样;
dim value as long
dim result as String
do while not rs.EOF
value = rs!Number
If (value > Len(result)) then result = result & String$(value - Len(result), "0")
Mid$(result, value, 1) = "1"
rs.moveNext
loop
msgbox result
按照排序进行编辑;
dim result as String
do while not rs.EOF
result = result & String$(rs!Number - Len(result) - 1, "0") & "1"
rs.moveNext
loop
msgbox result