应该是这样的吧: VB6+ADO+ACCESS的组合中,provider根本就不支持RecordSet.AddNew方法。所以你就不能用ADO的RecordSet.AddNew去添加记录了。这种情况一般应该调用Supports()方法测试以下最好。 改用SQL,再调用RecordSet.Open就可以添加一条新记录了。 代码如下: dim adords as new Adodb.recordsetwith adords .Connection=连接字符串 .Source='insert into 表名 values(......)' .Open end with
因为DATA PROVIDER OLEDB FOR JET 不支持ADDNEW方法,所以出错了。建议在使用ADDNEW等方法时先用SUPPORTS()方法测试数据提供者是否支持。 添加记录只能用SQL语句了: dim adocon as new adodb.connection dim adords as adodb.recordset with adocon .connection="连接字符串" .source="insert into tablename values(记录的内容)" .execute end with或者用command对象的 exexcute 方法: dim adocom as new adodb.command with adocom .commandtext="insert into tablename values(记录的内容)" .commandtype= .execute end with还有一种最简单的办法,就是数据提供者使用ODBC for jet,它支持ADODB.RECORDSET.ADDNEW方法。 试试这个办法,不会错的。
因为DATA PROVIDER OLEDB FOR JET 不支持ADDNEW方法,所以出错了。建议在使用ADDNEW等方法时先用SUPPORTS()方法测试数据提供者是否支持。 添加记录只能用SQL语句了: dim adocon as new adodb.connection dim adords as adodb.recordset with adocon .connection="连接字符串" .source="insert into tablename values(记录的内容)" .execute end with或者用command对象的 exexcute 方法: dim adocom as new adodb.command with adocom .commandtext="insert into tablename values(记录的内容)" .commandtype= .execute end with还有一种最简单的办法,就是数据提供者使用ODBC for jet,它支持ADODB.RECORDSET.ADDNEW方法。 试试这个办法,不会错的。
以下代码段通过测试,原因是打开Recordset时没有加LockType,不加的话默认值为adLockUnsepcified,所以不能用AddNew。Dim con As ADODB.Connection Set con = New ADODB.Connection con.CursorLocation = adUseClient con.Open "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=D:\db1.mdb"InsCmd = "CREATE TABLE test (P_No SHORT,P_Name TEXT)" con.Execute InsCmdDim rs1 As ADODB.Recordset Set rs1 = New ADODB.Recordset rs1.CursorLocation = adUseClient rs1.Open "test", con, adOpenDynamic, adLockBatchOptimistic rs1.AddNew rs1!p_no = 1 rs1!p_name = "abc" rs1.UpdateBatchrs1.Close con.Close
以下代码段通过测试,原因是打开Recordset时没有加LockType,不加的话默认值为adLockUnsepcified,所以不能用AddNew。Dim con As ADODB.Connection Set con = New ADODB.Connection con.CursorLocation = adUseClient con.Open "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=D:\db1.mdb"InsCmd = "CREATE TABLE test (P_No SHORT,P_Name TEXT)" con.Execute InsCmdDim rs1 As ADODB.Recordset Set rs1 = New ADODB.Recordset rs1.CursorLocation = adUseClient rs1.Open "test", con, adOpenDynamic, adLockBatchOptimistic rs1.AddNew rs1!p_no = 1 rs1!p_name = "abc" rs1.UpdateBatchrs1.Close con.Close
以下代码段通过测试,原因是打开Recordset时没有加LockType,不加的话默认值为adLockUnsepcified,所以不能用AddNew。Dim con As ADODB.Connection Set con = New ADODB.Connection con.CursorLocation = adUseClient con.Open "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=D:\db1.mdb"InsCmd = "CREATE TABLE test (P_No SHORT,P_Name TEXT)" con.Execute InsCmdDim rs1 As ADODB.Recordset Set rs1 = New ADODB.Recordset rs1.CursorLocation = adUseClient rs1.Open "test", con, adOpenDynamic, adLockBatchOptimistic rs1.AddNew rs1!p_no = 1 rs1!p_name = "abc" rs1.UpdateBatchrs1.Close con.Close
GRANT DBA TO 用户名;
GRANT SELECT any table to 用户名;
类似的改你的表名为 order1
本着神秘主义的原则,没有什么是不可能的是rdo吗?系统报什么错?
你这么问太不清楚
你的裱结构, 你的sql语句全贴上来.
Con.Execute InsCmd
mTitleName是存放表名的String变量。
然后执行:
rs1.Open mTitleName, Con, adOpenDynamic
rs1.AddNew
开始报错。
rs1.Open mTitleName, Con, adOpenDynamic
程序开头执行了
Con.Open ("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" _
+ "d:\manager\manager.mdb")
希望能多帮帮我,会给你分的。
你没有sql语句呀
程序改后结果不变。你加的那句话是什么意思?
VB6+ADO+ACCESS的组合中,provider根本就不支持RecordSet.AddNew方法。所以你就不能用ADO的RecordSet.AddNew去添加记录了。这种情况一般应该调用Supports()方法测试以下最好。
改用SQL,再调用RecordSet.Open就可以添加一条新记录了。
代码如下:
dim adords as new Adodb.recordsetwith adords
.Connection=连接字符串
.Source='insert into 表名 values(......)'
.Open
end with
添加记录只能用SQL语句了:
dim adocon as new adodb.connection
dim adords as adodb.recordset
with adocon
.connection="连接字符串"
.source="insert into tablename values(记录的内容)"
.execute
end with或者用command对象的 exexcute 方法:
dim adocom as new adodb.command
with adocom
.commandtext="insert into tablename values(记录的内容)"
.commandtype=
.execute
end with还有一种最简单的办法,就是数据提供者使用ODBC for jet,它支持ADODB.RECORDSET.ADDNEW方法。
试试这个办法,不会错的。
添加记录只能用SQL语句了:
dim adocon as new adodb.connection
dim adords as adodb.recordset
with adocon
.connection="连接字符串"
.source="insert into tablename values(记录的内容)"
.execute
end with或者用command对象的 exexcute 方法:
dim adocom as new adodb.command
with adocom
.commandtext="insert into tablename values(记录的内容)"
.commandtype=
.execute
end with还有一种最简单的办法,就是数据提供者使用ODBC for jet,它支持ADODB.RECORDSET.ADDNEW方法。
试试这个办法,不会错的。
Set con = New ADODB.Connection
con.CursorLocation = adUseClient
con.Open "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=D:\db1.mdb"InsCmd = "CREATE TABLE test (P_No SHORT,P_Name TEXT)"
con.Execute InsCmdDim rs1 As ADODB.Recordset
Set rs1 = New ADODB.Recordset
rs1.CursorLocation = adUseClient
rs1.Open "test", con, adOpenDynamic, adLockBatchOptimistic
rs1.AddNew
rs1!p_no = 1
rs1!p_name = "abc"
rs1.UpdateBatchrs1.Close
con.Close
Set con = New ADODB.Connection
con.CursorLocation = adUseClient
con.Open "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=D:\db1.mdb"InsCmd = "CREATE TABLE test (P_No SHORT,P_Name TEXT)"
con.Execute InsCmdDim rs1 As ADODB.Recordset
Set rs1 = New ADODB.Recordset
rs1.CursorLocation = adUseClient
rs1.Open "test", con, adOpenDynamic, adLockBatchOptimistic
rs1.AddNew
rs1!p_no = 1
rs1!p_name = "abc"
rs1.UpdateBatchrs1.Close
con.Close
Set con = New ADODB.Connection
con.CursorLocation = adUseClient
con.Open "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=D:\db1.mdb"InsCmd = "CREATE TABLE test (P_No SHORT,P_Name TEXT)"
con.Execute InsCmdDim rs1 As ADODB.Recordset
Set rs1 = New ADODB.Recordset
rs1.CursorLocation = adUseClient
rs1.Open "test", con, adOpenDynamic, adLockBatchOptimistic
rs1.AddNew
rs1!p_no = 1
rs1!p_name = "abc"
rs1.UpdateBatchrs1.Close
con.Close