Project Member
Reported by
deepcast,
Jul 29, 2007
1,把FRMVIEW中留后的PUBLIC 函数改写到公用模块去,保持良好编程习惯
2,把FRMQUERY中留后的代码优化
3, 界面美化
4, 把FRMMAIN中的全局变量txtTablePub,txtSpectNmae等改写到公用模块去,保持良好编程
习惯
5, excel access 行数限制 EXCEL的6万记录限制
6, bUG:TXT导入时在WINXP下会有打开ACCESS的提示
除错记录:
1, vb 至少一个参数没有被指定值
”至少一个参数没有被指定值“???
http://topic.csdn.net/t/20030103/13/1323430.html
2, 子窗体 "无效属性值" startupposition
怎样使子窗体在父窗体的屏幕中心显示 并且是设计时的大小
http://community.csdn.net/Expert/TopicView3.asp?id=5439604
http://topic.csdn.net/t/20021101/16/1140592.html
最后是发现frmimport中多了一个把窗体居中的SUB,去掉就好了
3, vb byref 参数类型不符 关于VB提示ByRef参数类型不符的分析-.NET教程,VB.Net语
言 http://www.z6688.com/info/48099-1.htm
4, 错误类型: 错误编号 3001 ADODB.Recordset 参数类型不正确,或不在可以接受的范围
之内,或与其他参数冲突
出错语句:rsTmp.AbsolutePage = PaginaActual 因为rsTmp为空,PaginaActual =-1
很痛苦,最后勉强过关,做法是
rsTmp.Open sSQL, conn, adOpenKeyset, adLockPessimistic, adCmdText
If rsTmp.RecordCount = 0 Then
MsgBox "SORRY,未检索到任何指定内容。请返回重新设定搜索条件。"
GoTo Salir_Error 'exit sub
End If
5, vb jet database 至少一个参数没有被指定值
怀疑是sql 语句的问题,先设置断点取得SQL语句,再把SQL语句在ACCESS查询分析器里运行分
析原因。
SELECT * FROM 对公余额 WHERE [对账单编号] = '190100002007063020000025'
照做,最后得出正确的SQL语句……
SELECT * FROM 对公余额 WHERE ((([对帐单编号])='190100002007063020000025'));
很是没天理啊,同样的语句一句能过一句不能通过,无语。怀疑是CONN状态不同,但不想深究
了。
6,error 7866 Microsoft Office Access不能打开这个数据库,因为它已丢失或
已被其它用户按独占方式打开
先看看进程管理器里是否有多个MSACCESS.EXE打开,没有
再看语法是否有错误:如 acImport误写成acExport,没有
再看ACCESS的宏的安全性设置,如不是但低就很有可能。可以先打开MSACCESS软件,然后执行
VB导入程序,会提示安全警告是打开还是取消文件,如果打开则无误,而取消则出现error
7866 提示,于是确定错误原因为此。
BUT,安装程序后再运行Automation导入,又出现同样错误,郁闷。调试时没有错误,而编译发
布后错误!
把代码弄到ACCESS2003的VBA里运行了一下同样错误,后来把代码中打开数据库的删去,直接用
当前数据库来Docmd,无错,后来灵光一闪,会不会是……,以为查到原因了,以为是因为CONN
没有关闭(调试时却不会显示该错误),所以在用Automation法导入文本之前先关闭相关CONN,
然后导入完后记得还要OPEN该CONN,去失败
郁闷,不可理解,换了个打包工具setup factory,就好了。
7,error 2147168242 试着不先使用 BeginTrans 而提交或退回事务
8,输入超出文件尾 sFileContents = InputB(LOF(iFileNum), #iFileNum)
VB 5提示错误:"输入超出文件尾" http://www.china-askpro.com/msg1/qa51.shtml
Visual Basic文件操作全攻略 http://www.programfan.com/blog/article.asp?
id=12273
用文本框打开文件提示输入超出文件尾?
http://topic.csdn.net/t/20050724/09/4164168.html
解决问题的第1种办法,不过ADO导入速度很慢:sFileContents = StrConv(InputB(LOF
(iFileNum), #iFileNum), vbUnicode)
这个是解决问题的第二种办法,不过速度也很慢
'Open FileFullPath For Binary As #iFileNum
'sFileContents = Space(LOF(iFileNum))
'Get iFileNum, , sFileContents
9, sql "select top 1" SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点
符号不正确
最后通过单步查询发现是有一个变量出了问题,传了空值
10, 给MDB加密后连接字串出错
连接数据库查询手册
http://blog.csdn.net/langkew/archive/2004/12/27/231079.aspx
11, 实时错误'-2147217843 (80040e4d)' 无法启动应用程序.工作组信息文件丢失,或是已补
其它用户以独占方式打开
http://www.cnblogs.com/liangqihui/archive/2005/09/26/244338.aspx
问题出在:
ADOConnection.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Persist
Security Info=False; Password=Psd;Data Source=filename.mdb"
不能用Password的形式定义数据库密码,应该改成:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=filename.mdb ;Persist
Security Info=False;Jet OLEDB:Database Password=Psd