Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共16 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:按钮代码报错问题

1楼
yingtianyiyao 发表于:2011/5/25 14:49:00

我自己设计了个窗口,窗口内一个按钮的click事件如下:

以下内容为程序代码:

1 DataTables("fa piao发货出库跟踪表").DataRows.clear()
2 Dim SQL As String
3 SQL = " select * from V_FPFHCK_FOXTABLE "
4 SQL = SQL & " WHERE [发货日期] BETWEEN '" & replace(e.Form.Controls("DateTimePicker1").text,"-","") & "'"
5 SQL = SQL & " AND '" & replace(e.Form.Controls("DateTimePicker2").text,"-","") & "'"
6 SQL = SQL & " AND ([发货合同供方编号] in (select list from getinstr('" & e.Form.Controls("TextBox1").value & "'))"
7 SQL = SQL & "OR '" & e.Form.Controls("TextBox1").value & "' = '' )"
8 SQL = SQL & " AND ([发货合同购方编号] IN(SELECT LIST FROM GETINSTR('" & e.Form.Controls("TextBox3").value & "'))"
9 SQL = SQL & "OR '" & e.Form.Controls("TextBox3").value & "' = '' )"
10 'messagebox.show(SQL)
11 DataTables("fa piao发货出库跟踪表").Fill(SQL,"生产机",True)

 

结果:我每次打开狐表第一下点击按钮就会报: [Select语句执行错误,请检查语法及数据源设置。] 之后再点击同一按钮第二下,结果又能正常显示.之后每次点击都不会再报错.

 每次都是这样,打开狐表第一下点击这个按钮都会报同样的错误,之后的点击又不报错了.这是什么原因啊?

2楼
狐狸爸爸 发表于:2011/5/25 14:51:00
做个例子发上来。
3楼
yingtianyiyao 发表于:2011/5/25 15:09:00
我是连接我本地的SQL数据库的,很难做例子哦
4楼
狐狸爸爸 发表于:2011/5/25 15:18:00

打开命令窗口,然后单击按钮:

 

1 DataTables("fa piao发货出库跟踪表").DataRows.clear()
2 Dim SQL As String
3 SQL = " select * from V_FPFHCK_FOXTABLE "
4 SQL = SQL & " WHERE [发货日期] BETWEEN '" & replace(e.Form.Controls("DateTimePicker1").text,"-","") & "'"
5 SQL = SQL & " AND '" & replace(e.Form.Controls("DateTimePicker2").text,"-","") & "'"
6 SQL = SQL & " AND ([发货合同供方编号] in (select list from getinstr('" & e.Form.Controls("TextBox1").value & "'))"
7 SQL = SQL & "OR '" & e.Form.Controls("TextBox1").value & "' = '' )"
8 SQL = SQL & " AND ([发货合同购方编号] IN(SELECT LIST FROM GETINSTR('" & e.Form.Controls("TextBox3").value & "'))"
9 SQL = SQL & "OR '" & e.Form.Controls("TextBox3").value & "' = '' )"
10 Output.show(SQL)
11 DataTables("fa piao发货出库跟踪表").Fill(SQL,"生产机",True)

 

看看第一次和第二次合成的SQL语句有何不同。

5楼
yingtianyiyao 发表于:2011/5/25 15:32:00
完全是一样的,我刚刚做了一下改动: 把 select * from V_FPFHCK_FOXTABLE  (V_FPFHCK_FOXTABLE 为视图view) 中的 V_FPFHCK_FOXTABLE 换成物理表就不报错了.这是啥原因啊
6楼
mr725 发表于:2011/5/25 15:33:00
把 value 都改成 text 试试。 通常最后输入的 textbox 没有回车时,value还是原来的值。
7楼
yingtianyiyao 发表于:2011/5/25 15:39:00
我 select * from V_FPFHCK_FOXTABLE  这样写的,这里的 V_FPFHCK_FOXTABLE 是个视图,我把他换成物理表就不再报错了,啥原因啊,大师们
8楼
狐狸爸爸 发表于:2011/5/25 15:41:00

看不出来原因,把他整成access数据源发上来测试看看。

9楼
yingtianyiyao 发表于:2011/5/25 15:51:00

你们试一下,直接做一个连接到SQL的外部数据源.然后做个按钮.click中触发:

DataTables("表A").DataRows.clear()
Dim SQL As String = ""
SQL = " select * from VIEW_NAME"
DataTables("表A").Fill(SQL,"外部数据源连接名",True)

这样点击第一下就会报错了.

(这里的VIEW_NAME是个视图)

10楼
狐狸爸爸 发表于:2011/5/25 15:59:00

兄弟,Fill会自动清除以前数据的,所以你的这一行代码是多余的:

 

DataTables("表A").DataRows.clear()

 

删除吧。


共16 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.