Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
我看见的变量是:Vars.Add("colname",GetType(String))是这样的,这个列名称是怎么赋予的?代码怎么写,望狐爸指教一下.
Vars.Add("colname",GetType(String),"IO")
czy版主,你好,将ComboBox1的Click事件改成你给的代码后,选完类别等 在将光标落在【请选择项目】空框中不会提示错误了。而且,得到运算结果的速度提高到只需两三秒钟(也还显慢!)
但是【请选择项目】有内容时 再将光标落在【请选择项目】框中又会提示错误?!~
此主题相关图片如下:【请选择项目】.jpg
6楼的代码我测试正常,也不应该出错的。
我解决的是当ComboBox1为空值时返回不操作,速度方面没有涉及,我想最好的解决办法是不用每次都增加临时表,这样速度就会大幅提升。
Vars.Add("colname",GetType(String),"IO")
是这样做的呀,昨日我就是按照这一个弄得但是还是如图所说的出错,所以我才发上来的.CZY版主你帮我测试一下文本框有没有这个问题出来?狐爸你有没有测试,是不是变量的问题?谢谢!因为发上来的示例复选款是人家做的,文本框的是我自己做的.
调试技巧
很多错误只有在运行的时候,才会发现。
虽然对于运行中的错误,系统会明确提示是哪一个对象的哪一个事件发生了错误,以及错误的原因;但是要具体定位是哪一行代码有问题,往往是一件非常艰巨的工作,特别是代码很长,逻辑较为复杂的时候。我们可以在代码段中插入MessageBox.show(x),将代码分割成多段,x是一个数字,例如:
代码段一
MessageBox.Show(1)
代码段二
MessageBox.Show(2)
代码段三
MessageBox.Show(3)
代码段四
MessageBox.Show(4)
代码段五
MessageBox.Show(5)
...
这样每执行一段代码,就提示一个数字,在上面的例子中,如果提示2后发生了错误,那么说明问题发生在第三段代码,这样我们就可以重点分析该段代码了。
此外,在调试代码的时候,我们还可以利用MessageBox来显示关键变量或数据,这对于分析错误原因,会有很大的帮助。
调试结束后,删除所有用于调试的MessageBox语句即可。
MessageBox语句如果出现在一些特定的事件中,可能会导致死循环,例如表事件PrepareEdit,那么如何来进行调试呢?可以参考下面的例子:
代码段一
If ModifierKey = Keys.Control Then
MessageBox.Show(1)
End If
代码段二
If ModifierKey = Keys.Control Then
MessageBox.Show(2)
End If
这样只有始终按下Ctrl键,才会执行MessageBox语句,松开Ctrl键,就回到正常状态,从而避免死循环的出现。
需要注意的是,代码是前后关联的,有的时候某处代码执行时发生错误,并不是该处代码有问题,而是前面的代码造成的,例如:
Dim dr As
DataRow
dr = DataTables("产品").Find("编号 = '03'") '找出编号为03的产品
dr("单价") = 0.1
如果产品表中不存在编号为03的记录,那么上面的代码执行到第三行:
dr("单价") = 0.1
将出现错误提示,但是显然该行代码本身并没有问题,我们需要的是应该加上判断语句:
Dim dr As
DataRow
dr = DataTables("产品").Find("编号 = '03'") '找出编号为03的产品
If dr IsNot Nothing Then '如果找到的话
dr("单价") = 0.1
End If
原因找出来了,代码中变量删掉就正常了.
原因找出来了,了代码中变量删掉就正常.
能再发一个‘代码中变量删掉就正常’的样例来测试一下吗,我还是没有搞懂,呵呵·~