Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 数据输入表单在以前记录的大多数列中显示#错误_Ms Access_Ms Access 2013_Adodb - Fatal编程技术网

Ms access 数据输入表单在以前记录的大多数列中显示#错误

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=“数据提供

我有一个2010 MS Access应用程序,在导入MS Access 2013之前运行良好。现在,在插入新记录时,所有数据输入表单都会在以前记录的大多数列中显示
#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