我想从关系数据库中读取一些数据,作为对话框列表的备选项。但是数据不能作为备选项,而是全部列出来了。
首先,取出数据,存入一个多值域tem_name ;
给多值域赋值代码是这样写的,应该没有错:
While(Not EmpRS.EOF)
...
tem_name = tem_name +Cstr( EmpRS("员工姓名").Value) + ";" '拼接成“A;B;C;D……”这样的形式
...
Wend
doc.tem_name = tem_name'把取出来的字符串赋值给多值域tem_name
跟踪程序:多值域doc.tem_name里显示的是 “A;B;C;D;E;F;……”
tem_name域我勾选了多值。
多值域的分隔符都是用的默认的:输入数据时的分隔符 逗号+分号
显示数据时的分隔符 分号
然后,设置对话框列表的域属性->选择->为选项使用公式
公式如下:
FIELD name:= @GetField("tem_name");从多值域tem_name中取数据然后赋值作为备选项
name
应该是没错,以前CS下也是这做的,但不知道为什么没有我想要的效果。是不是BS下设置问题?
仔细看了一下,感觉可能是把“A;B;C;D;E;F;……”这样的一个整体作为一个值存到多值域下面了。
现在不知如何处理。希望能得到大家的帮助!
或者能介绍一下其它的给对话框列表赋值的办法。非常感谢~~
------解决方案--------------------
1、tem_name的属性设置里选上"Allow Multiple Values" (允许多值)
2、代理里面应该这样写:
doc.tem_name=split("A;B;C", ";")
因为这个"A;B;C"是一个字符串,不是多值的。