Ms access 数据输入表单在以前记录的大多数列中显示#错误
我有一个2010 MS Access应用程序,在导入MS Access 2013之前运行良好。现在,在插入新记录时,所有数据输入表单都会在以前记录的大多数列中显示Ms access 数据输入表单在以前记录的大多数列中显示#错误,ms-access,ms-access-2013,adodb,Ms Access,Ms Access 2013,Adodb,我有一个2010 MS Access应用程序,在导入MS Access 2013之前运行良好。现在,在插入新记录时,所有数据输入表单都会在以前记录的大多数列中显示#Error。表单使用ADODB.recordset。#错误一直存在,直到单击每个字段,返回原始数据 供应商更新新记录之前 RowID供应商票据 1达夫林12345 2拉法基54321 3弥尔顿 供应商更新后 RowID供应商票据 1达夫林12345 3#错误#错误 3弥尔顿123 我的连接字符串: ConnectADO=“数据提供
#Error
。表单使用ADODB.recordset。#错误一直存在,直到单击每个字段,返回原始数据
供应商更新新记录之前
RowID供应商票据
1达夫林12345
2拉法基54321
3弥尔顿
供应商更新后
RowID供应商票据
1达夫林12345
3#错误#错误
3弥尔顿123
我的连接字符串:
ConnectADO=“数据提供程序=SQLOLEDB.1”&_
“数据源=”&TMServerName&_
“初始目录=”&TMDatabaseName&_
“Persist Security Info=False”和_
“用户id=”&TMUserName&_
“password=”&TMPassword
Cn.Provider=“MSDataShape”
Cn.CommandTimeout=120
Cn.ConnectionString=ConnectADO
中国公开赛
我的光标设置好了
Set rs=New ADODB.Recordset
rs.CursorType=adOpenKeyset
rs.CursorLocation=adUseClient
rs.LockType=LockType
rs.ActiveConnection=Cn
开放式Sql
我终于明白了这一点
如果在表单插入时ADO活动连接打开,则会发生#错误
行为。如果连接关闭,一切正常。插入和更新仍然会发生。因此,请尽快关闭连接。我是这样做的(Cnn.RecordsetOpen
函数是定制的,在ADODB recordset open语句之前有一个连接.open
语句)
“表单加载事件”
次级负荷
关于错误转到标准\u错误
将TSQL设置为字符串
Set Me.Recordset=Cnn.RecordsetOpen(SQL)
标准出口:
Cnn.connection.close
出口接头
标准错误:
Msgbox err.description
恢复标准退出
端接头
代码帖子的格式不正确。在供应商更新之前和供应商更新之后是三列宽的表和三条记录。我将应用程序简化为一个带有RowID、vendor和Ticket字段的表单。我添加了openconnection函数和openrecordset函数,该函数从表单的onload事件中调用它。数据显示,但插入时行为仍然存在。Dll调用只是四个普通和ADO6.1调用。MSAcces2013是32位版本。我简直疯了。你说的“导入MS Access 2013”是什么意思?不必将2010 db导入2013年。Access 2013应该能够在不进行任何导入的情况下运行使用2013创建的db,只需打开2010文件即可。如果您希望清理损坏的Access数据库并消除隐藏的临时查询等。将其对象导入新数据库。它比紧凑和修理更彻底。甚至代码也会遇到反编译,需要重新编译。每个Access开发人员都可以使用的提示。LockType是adlock