insert into goods(类别,编码,名称,规格,单位,入价,出价,备注)'+
     ' select 类别,编码,名称,规格,单位,入价,出价,备注 from [Excel 8.0 database='+xlspath+']'+
     '.[sheet1$] where 编码 not in(select 编码 from goods)'xlspath:=Opendialog1.FileName;

解决方案 »

  1.   

    能够直接对Execl操作吗?楼主太强了应先对excel文件建立一个ado连接,再考虑操作的问题
      

  2.   

    1.首先建议你把字段名改为英文
    2.not in后加空格
    3.where 编码 not in(select 编码 from goods)中编码字段是哪个表的,如果是xlspath中的,那goods也该加上[]里的东西,当然建议起个别名
      

  3.   

    问题是:
     我想把一个EXCEL表里的数据更新到一个GOODs表中,,,条件是EXCEL表中的数据在GOODS中是没有的.
    咋整呢
      

  4.   

    如果是sql语句的话可以直接对excel进行操作的,如果要放到程序里的话还需要进一步操作
      

  5.   

    现在就是如何直接对EXCEL直接操作的问题
      

  6.   


    除了中文加上引号外,“from [Excel 8.0 database=...”,Excel 8.0后面是不是有个分号;用Access数据库测试了一下,下面这句是可以的。但通过Delphi代码使用OLEDB/ODBC也可能写法有点区别SELECT "类别", "编码", "备注" FROM [Excel 8.0; database=c:\1.xls].[sheet1$]
      

  7.   

    没法,自己想了一个很箱的办法,先把EXCEL的数据导入到ACCESS中成一个临时表,再对临时表与GOODS进行比较后,复制数据到GOODS,,再删除临时表