在按钮中放了以下代码,第一次单击按钮正常,第二次单击就会出现错误提示“abc不存在名为“客户”的列”,请教高手,下面代码哪里有错?
Dim q As new QueryBuilder
q.TableName = "abc"
q.SelectString = "Select * From {表A}"
q.Build
With DataTables("abc")
.DataCols.Add("日期", GetType(Date))
.DataCols.Add("客户", GetType(String),10)
.DataCols.Add("产品", GetType(String),10)
End with
Tables("窗口1_Table1").DataSource = DataTables("abc")
e.Form.Controls("Table1").Visible = true
QueryBuilder 是
按条件生成查询表呀,你增加列的目的是什么?
如是要统计,你参阅:
CrossTableBuilderDataTableBuilderGroupTableBuilder
[此贴子已经被作者于2009-9-5 16:16:54编辑过]
以下是引用狐哥在2009-9-5 16:14:00的发言:QueryBuilder 是
按条件生成查询表呀,你增加列的目的是什么?
如是要统计,你参阅:
CrossTableBuilderDataTableBuilderGroupTableBuilder
[此贴子已经被作者于2009-9-5 16:16:54编辑过]
附件是从我的系统中把出错的部份分解精简出来的,QueryBuilder是用来从SQL Server中查询数据的。
q.SelectString = "Select ×××,×××,××× from a union Select ×××,×××,××× from b"
这样把多个表的数据查询出来并放到一个表中。增加临时列用于统计一些数据。
出错应该跟QueryBuilder没什么关系,但是找了好久也没找到哪里出了错。
[此贴子已经被作者于2009-9-5 16:27:11编辑过]
不好意思。刚错了,这个语句我也没搞懂。
但我认为你不能用这个查询表。
[此贴子已经被作者于2009-9-5 16:34:07编辑过]
以下是引用狐哥在2009-9-5 16:30:00的发言:
for each dc as col in tables("abc").cols
if dc.name = "客户" then
Return
end if
next
这一段的目的是什么?加在哪里?
以下是引用狐哥在2009-9-5 16:35:00的发言:
贴出你全部公式,想办法改一下
全部贴出来不太方便,用的外部数据而且代码很长。
以下是引用狐哥在2009-9-5 16:41:00的发言:
苯办法一个:
If tables("abc").Cols.Contains("客户") Then
Return
Else
With DataTables("abc")
.DataCols.Add("日期", GetType(Date))
.DataCols.Add("客户", GetType(String),10)
.DataCols.Add("产品", GetType(String),10)
End with
End If
Tables("窗口1_Table1").DataSource = DataTables("abc")
e.Form.Controls("Table1").Visible = true
照你的方法试过还是出现同样的错误提示。按说再次单据按钮就是一个全新的开始,为什么为出现这种提示呢?