楼主你要理解,不管是查询现有的表,还是从后台筛选,都是合成条件表达式,不同的只是最后的代码。
一个是:
Tables("xxx").Filter = 合成的条件表达式
一个是:
DataTables("xxx").LoadFilter = 合成的条件表达式
DataTables("xxx").Load()
另外不要滥用Fill,看看帮助说的:
请不要滥用Fill
通过Fill生成的Table,在打开窗口后,如果需要从同一个表加载其它数据进来,请采用LoadFilter和Load,切不可再用Fill(除非需要从另一个表加载数据), 因为Fill会重新生成DataTable和Table,不仅效率低,还会导致设置好的绑定失效。
例如窗口中有个“最近七天”按钮,希望单击此按钮,加载最近七天的订单,可以将按钮的代码设置为:
Dim dt As Date = Date.Today.AddDays(-7)
DataTables("订单").LoadFilter = "日期 > #" & dt & "#"
DataTables("订单").Load()
总之, 只有需要从不同的表中加载数据时,使用Fill方法,如果从同一个表中加载数据,应该使用LoadFilter和Load。