update 表1  set 地址 =  replace(地址,' ' ,'') 这个语句很简单 就是把地址中的空格替换掉。在Acc的查询中可以运行,在SQL2000的查询中也可以运行。
在VB中如果 cn 连的是SQL2000也没问题。
但 VB中 如果 cn 连接的是Access2003 
cn.Execute "update 表1  set 地址 =  replace(地址,' ' ,'') "则返回错误: 表达式中 'replace' 函数未定义。
临时处理的方法 1是用结果集循环,2是创建临时查询执行 update 表1  set 地址 =  replace(地址,' ' ,'') 100分 求 更好的方案。

解决方案 »

  1.   

    试试
    "update 表1 replace(地址,' ' ,'') "
      

  2.   

    谢谢
    但提示 UPDATE 语句的语法错误
      

  3.   

    这是由于access中的函数在vb某些数据库连接引擎里不支持造成的把replace搬到vb里,但会耽误效率
      

  4.   

    问题是 SQL2000 和 Access 中都支持 replacecn.Execute "update 表1 set 地址 = replace(地址,' ' ,'') "SQL2000 就可以,access 就报错
      

  5.   

    replace 是ACCESS的内部函数,在ADO或者ADO.NET通过ODBC来访问的时候并不可用。
    可以通过循环记录集用vb6的replace的函数来做替换
      

  6.   


    数据库中
    vb连接数据库引擎
    **************
    这是不同的
    还有
    vb连接access引擎
    vb连接sql server引擎
    ***********
    是不同的
      

  7.   

    http://download.csdn.net/source/1644211
      

  8.   


    SQL 语句是以字符串方式发送到数据库引擎,由它来解释执行的。不同的引擎所支持的保留字(函数)是不同的。你可以将源表导入到一个支持 Replace 的数据库,Update 之后,在源库删除源表,将更新后的导过去。用 SQL 语句执行和用记录集循环,不仅仅是编码上的差别。SQL 语句的执行是可以和程序代码并行的,也就是说,发送 SQL 语句之后,程序代码就继续执行了。除非你强行同步。