Issue 1: 1.0 解决的问题
Status:  Accepted
Owner:
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