Dim cn As New ADODB.Connection, rs As New ADODB.Recordset
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\rifeng\data\db1.mdb;Persist Security Info=False"
cn.Open
rs.CursorLocation = adUseClient
rs.Open "insert into test (user,pwd) VALUES(aaa  ,bbb )", cn, 3, 1提示insert into 语句的语法错误,为什么呢。
求教大家
使用了access 2003
在access 2003里面测试 
insert into test (user,pwd) VALUES('aaa'  ,'bbb' )" 可以通过
引用了 Microsoft ActiveX Data Objects 2.0 
是不是我引用问题呢,还是别的呢。

解决方案 »

  1.   

    rs.Open"insert into test (user,pwd) VALUES(aaa  ,bbb )", cn,3,1        "insert into test (user,pwd) VALUES('aaa'  ,'bbb' )" 可以通过
      

  2.   

    cn.execute "insert into test ([user],pwd) VALUES('aaa','bbb')" 
    '1,可以用cn.execute来执行sql语句
    '2,user为关键字,不建议将关键字作为表名与字段名来使用,一定要用则用方括号括起来
      

  3.   

    如果aaa和bbb是变量:rs.Open"insert into test (user,pwd) VALUES('" & aaa & "','" & bbb & "')", cn,3,1 如果aaa和bbb是字符串:rs.Open"insert into test (user,pwd) VALUES('aaa','bbb')", cn,3,1 
      

  4.   

    应该这样啊。谢谢大家了。解决了。
    可以问一下
    rs.Open和cn.execute的区别么
      

  5.   

    希望大家解答一下。如果要重新开贴的话。也可以。rs.Open和cn.execute的区别
    等到十点就结贴
    上面那个问题已经解决了。
    先去网上查一查区别。
    呵呵
    再回来看一看大家的解答。
      

  6.   

    以下摘自MSDN:
    Open 方法 (ADO Recordset)
    打开游标。
    语法
    recordset.Open Source, ActiveConnection, CursorType, LockType, Options
    参数
    Source   可选,变体型,计算 Command 对象的变量名、SQL 语句、表名、存储过程调用或持久 Recordset 文件名。
    ActiveConnection   可选。变体型,计算有效 Connection 对象变量名;或字符串,包含 ConnectionString 参数。
    CursorType   可选,CursorTypeEnum 值,确定提供者打开 Recordset 时应该使用的游标类型。可为下列常量之一(参阅 CursorType 属性可获得这些设置的定义)。常量 说明 
    adOpenForwardOnly (默认值)打开仅向前类型游标。 
    adOpenKeyset 打开键集类型游标。 
    adOpenDynamic 打开动态类型游标。 
    adOpenStatic 打开静态类型游标。 
    Execute 方法 (ADO Connection)
    执行指定的查询、SQL 语句、存储过程或特定提供者的文本等内容。
    语法
    对于不按行返回的命令字符串:
    connection.Execute CommandText, RecordsAffected, Options 
    对于按行返回的命令字符串:
    Set recordset = connection.Execute (CommandText, RecordsAffected, Options)
    返回值
    返回 Recordset 对象引用。
    参数
    CommandText   字符串,包含要执行的 SQL 语句、表名、存储过程或特定提供者的文本。
    RecordsAffected    可选,长整型变量,提供者向其返回操作所影响的记录数目。
    Options    可选,长整型值,指示提供者应如何为 CommandText 参数赋值,可为下列值之一。
    常量 说明 
    adCmdText 指示提供者应将 CommandText 赋值为命令的文本定义。 
    adCmdTable 指示 ADO 应生成 SQL 查询以便从 CommandText 命名的表中返回所有行。 
    adCmdTableDirect 指示提供者应从 CommandText 命名的表中返回所有行。 
    adCmdTable 指示提供者应将 CommandText 赋值为表名。 
    adCmdStoredProc 指示提供者应将 CommandText 赋值为存储过程。 
    adCmdUnknown 指示 CommandText 参数中的命令类型未知。 
    adExecuteAsync 指示命令应该异步执行。 
    adFetchAsync 指示 CacheSize 属性指定的初始数量之后的行应异步提取。 
    本列表中前 4 个常量的详细说明请参见 CommandType 属性。
    说明
    使用 Connection 对象的 Execute 方法,可执行任何在指定连接的 CommandText 参数中传送给方法的查询。如果 CommandText 参数指定按行返回的查询,执行产生的任何结果将存储在新的 Recordset 对象中。如果命令不是按行返回的查询,则提供者返回关闭的 Recordset 对象。
    返回的 Recordset 对象始终为只读、仅向前的游标。如需要具有更多功能的 Recordset 对象,应首先用所需的属性设置创建 Recordset 对象,然后使用 Recordset 对象的 Open 方法执行查询并返回所需游标类型。
    CommandText 参数的内容对提供者是特定的,并可以是标准的 SQL 语法或任何提供者支持的特殊命令格式。
    该操作完成后将产生 ExecuteComplete 事件。
      

  7.   

    一般对于一些动态SQL语句 像批量删除、批量更新、插入语句等  利用Execute 执行SQL语句