设计思路:
我的数据库中数据有2万多条了,并且经常不断追加,增加新数据的方法是使用EXCEL数据表导入(因为是从网络数据中导出来的)的,有些记录是录入过的,因此,导入时先在一个临时表(表名“追加”)中先导入,再与现有数据库表(表名“已发证”)中的数据进行比较(比较公式设在“追加”表的“对比”字段中),如果已经导入过,就标记不追加并删除该重复记录,如果没有导入过,则把“追加”表中的新数据导入到“已发证”表中,并进行相关列的刷新计算,同时标记“追加批次、追加文件名”等内容便于查对。为此设计一导入功能按键,公式为:
Do(112) And if(msgbox("导入前请确认已对EXCEL文件进行了必要处理!",2)= True , if(msgbox("本功能只导入数据库中没有的记录,确定吗?",2)= True ,OpenGrid("追加") And delfor(GridName) And SetVariable("%文件名%",GetFileName("Excel文件|*.xls","从EXCEL文件中导入发证数据" ,0)) And ImportDBFile([%文件名%],6, Substitute(Split([%文件名%],"\",[%\号数%]),".xls","")) And DelFor(GridName,"林权申请号", "=","") And RecalcCol("追加","对比") And DelFor("追加","对比", "=" , -1) And Copyrows("已发证") And OpenGrid("已发证") And SetVariable("%文件名%",Substitute(Split([%文件名%],"\",[%\号数%]),".xls","")) And RecalcColfor("已发证","座落","追加批次", "=" ,"") And RecalcColfor("已发证",34,"追加批次", "=" ,"") And RecalcColfor("已发证",35,"追加批次", "=" ,"") And RecalcColfor("已发证",36,"追加批次", "=" ,"") And RecalcColfor("已发证",37,"追加批次", "=" ,"") And RecalcColfor("已发证",38,"追加批次", "=" ,""),""),"") And Setvariable("%批次%",maxfor("已发证","追加批次")+1) And ReplaceFor("已发证","追加文件名",[%文件名%],"追加批次", "=" ,"") And ReplaceFor("已发证","追加批次",[%批次%],"追加批次", "=" ,"") And MsgBox("本次追加"+Text([追加!Rows])+"条记录!",1,4)
问题:
1、点击按钮功能时:有时程序直接退出;有时运行其他程序功能后,再点击运行这一按钮功能,又能正常运行,完成预期功能。请教:为什么有时会不运行而关闭程序退出?(注:系统为正式注册版)
2、随着数据不断追加,发现运行速度越来越慢。请教:可以怎样优化公式提高运行速度?同时,怎样增加一个提示性的功能,提示进行到了哪一步?
请各位老师指教!学生谢谢了!