以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于填充代码问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1234) |
-- 作者:老有所乐 -- 发布时间:2008/11/24 22:16:00 -- 关于填充代码问题 dim f As New Filler f.SourceTable = DataTables("任课老师表") \'指定数据来源 f.SourceCols = "班主任" \'指定数据来源列 f.DataTable = DataTables("班主任成绩表") \'指定数据接收表 f.DataCols = "班主任" \'指定数据接收列 f.ExcludeExistValue=true \'逻辑型,设为True,排除接收表中已经存在的内容. f.ExcludeNullValue=false \'排除空白值 f.Distinct= false \'将不会排除重复内容,也不会排除已有内容和空白值. f.Filter="[年级]=\'年级\' And [班级]=\'班级\' " f.Fill() \'填充 请教这个代码中的这句: F.Filter="[年级]=\'年级\' And [班级]=\'班级\' " 是否正确?如果不正确应该如何改写? [此贴子已经被作者于2008-11-24 22:24:32编辑过]
|
-- 作者:老有所乐 -- 发布时间:2008/11/25 8:34:00 -- 也许这个问题得由贺老师来指教 |
-- 作者:狐狸爸爸 -- 发布时间:2008/11/25 8:42:00 -- 完全不对的。 |
-- 作者:狐狸爸爸 -- 发布时间:2008/11/25 8:44:00 -- 但是也没有办法帮你改正,具体问题具体分析,而你提的问题不清晰。 |
-- 作者:狐狸爸爸 -- 发布时间:2008/11/25 8:46:00 -- 单引号和双引号 不少初次接触编程的用户,对于何时使用双引号,何时使用单引号,感到非常困惑。 其实很简单,代码中的字符串都是用双引号括起来的。 例如: Dim s As String 而单引号主要用于表达式,表达式可以用于计算、筛选。 例如: CurrentTable.Filter = "[产品] = \'PD01\'" 上面的代码意思是在当前表中筛选出产品为PD01的行,筛选表达式本身是一个字符串,所以用双引号括起来,表达式中的PD01也是一个字符串,是表达式的一个内部字符串,所以用单引号括起来。 例如: CurrentTable.Filter = "[产品] = \'PD01\' And [日期] = #3/17/1999# And [折扣] = 0" 通过表达式列的Expression属性,可以动态设置其计算公式 例如: DataTables("表A").DataCols("ID").Expression = "\'CA\' + [_Identify]" 实际编程的时候,经常要根据用户的输入,动态合成表达式。 例如: 例如要计算某个产品的销售数量,要计算的产品名称由用户输入,假定输入的结果保存在全局变量Vars("产品")中: Dim Sum As Integer Compute的第二个参数为计算条件表达式,假定全局变量Vars("产品")的值为PD01,第二个参数就等于: "[产品] = \'PD01\'" 假定表A和表B都有品名、型号两列,我们在表A中选择了一行,希望从表B中找出相同品名、规格的行: Dim dr1 As DataRow = Tables("表A").Current.DataRow 上面代码的最后一行,初看非常难以理解。 "[品名] = \'要找品名\' And [规格] = \'要找的规格\'" 其中红色的部分要被dr1中的实际的品名和规格代替,所以最终的表达式成了: "[品名] = \'" & dr1("品名") & "\'And [规格] = \'" & dr1("规格") & "\'" 再例如我们要筛选出指定月份的订单,但是因为表达式没有求得日期月份的函数,我们只能这样设置代码: Dim StartDate As Date
\'起始日期变量 DataTable和Table都有很多属性和方法用到了表达式,我们必须掌握单引号和双引号的区别,并学会动态合成表达式,才能设计出强大而又灵活的管理系统。 |
-- 作者:老有所乐 -- 发布时间:2008/11/25 15:26:00 -- 以下是引用狐狸爸爸在2008-11-25 8:44:00的发言:
但是也没有办法帮你改正,具体问题具体分析,而你提的问题不清晰。 谢贺老师! |
-- 作者:don -- 发布时间:2008/11/25 15:38:00 -- 以下是引用老有所乐在2008-11-25 15:26:00的发言:
我想如"年級"列、"班級"列是整數型的話,則兩列的內容是:1,2,3... |
-- 作者:老有所乐 -- 发布时间:2008/11/25 19:34:00 -- 以下是引用don在2008-11-25 15:38:00的发言:
我想如"年級"列、"班級"列是整數型的話,則兩列的內容是:1,2,3... 是整数列,应该如何表述?谢谢指点。 |
-- 作者:don -- 发布时间:2008/11/26 9:09:00 -- 猜楼主的意思:“班主任成绩表”的[年级] 和[班级]两列都已有数据,想根据这两列的数据在"班主任"列得到相应“任课老师表”的班主任名称! 这样岂可用Filler,Filler相当易表的AppendFor,CopyFor,SelectFill等,是接在已有数据的后面,这时只能赋值或重算!磨刀不误砍柴工,认真细致多看几次帮助文件才是上策. Dim T1,T2 As String For Each dr As DataRow in DataTables("老师成绩表").Select(T1) T2 = "年级 = " & dr("年级") & "and 班级 =" & dr("班级") dr("班主任") = DataTables("任课老师表").FInd(T2)("班主任") Next |
-- 作者:老有所乐 -- 发布时间:2008/11/26 13:44:00 -- 谢谢dou先生!没有编程基础,感到狐表太难了,帮助看来几遍,一到应用就感到不知如何下手。 |