不好意思,动态加载数据的问题已问得很多了,但是还是不能解决我的问题。你举的例子一是内部表,二是ACCESS外部表。而我是要动态加载SQL SERVER外部表的大量数据,因而采用你的例子中的代码还是报错,不能运行。我以SQL SERVER 自带的示例数据库NORTHWIND为例。
1)、目录树的NodeMouseDoubleClick代码:其中加颜色部分报错。Dim Value() As String
Value = e.Node.FullPath.Split("\")
Select Case e.Node.Level
Case 0
Tables("Orders").Filter = "[shipCountry] = '" & Value(0) & "'"
Case 1
Tables("Orders").Filter = "[shipCountry] = '" & Value(0) & "' And [customerID] = '" & Value(1) & "'"
Case 2
Tables("Orders").Filter = "[shipCountry] = '" & Value(0) & "' And [customerID] = '" & Value(1) & "' And [EmployeeID] = '" & Value(2) & "'"
End Select
DataTables("Orders").LoadFilter = Filter
DataTables("Orders").Load()
因此双击节点没有反应。
2)、你说要用个临时表,不知怎么创建?
能否给个基于SQL SERVER 的NORTHWIND数据库的例子。谢谢!
呵呵,为什么不告诉我错误提示是什么呢?
有的时候,一看错误提示,就知道怎么回事的。
最好将提示错误信息的窗口,抓图发上来。
在下面的语句之前:
DataTables("Orders").LoadFilter = Filter
加一句
MessageBox.Show(Filter)
看看你生成的表达式是什么,这个地方报错,只有一个原因,条件表达式语法有误
也许你的customerID和customerID如果是整数型,那么是不能用单引号的,应该是:
Tables("Orders").Filter = "[shipCountry] = '" & Value(0) & "' And [customerID] = " & Value(1) & " And [EmployeeID] = " & Value(2)
[此贴子已经被作者于2009-3-18 12:28:54编辑过]
下面的代码,在SQL SERVER下通过测试的,比对一下,就知道你原来为什么不行了,你将筛选和动态加载搞混了:
Dim Value() As String
Dim Filter As String
Value = e.Node.FullPath.Split("\")
Select Case e.Node.Level
Case 0
Filter = "[shipCountry] = '" & Value(0) & "'"
Case 1
Filter = "[shipCountry] = '" & Value(0) & "' And [customerID] = '" & Value(1) & "'"
Case 2
Filter = "[shipCountry] = '" & Value(0) & "' And [customerID] = '" & Value(1) & "' And [EmployeeID] = " & Value(2)
End Select
DataTables("Orders").LoadFilter = Filter
DataTables("Orders").Load()
[此贴子已经被作者于2009-3-18 12:42:04编辑过]