Access的表比Sql的表少一个字段,使用
INSERT INTO List
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'E:\work\20050201.Mdb'; 
      'admin'; '', list) Rowset_1就提示列名或所提供的值的数目与表定义不匹配,
如何能导入?且同时对多出来的那个字段付个初值。求教。

解决方案 »

  1.   

    可以明确指出需要赋值的字段:INSERT INTO List (字段1,字段2,...,字段n-1) SELECT * FROM OPENROWSET 'Microsoft.Jet.OLEDB.4.0', 'E:\work\20050201.Mdb'; 
          'admin'; '', list) Rowset_1
      

  2.   

    方法1:把字段指明去加
    方法2:用Recordset循环去加
      

  3.   

    修改成List (字段1,字段2,...,字段n-1),一下又自动转换成List (字段1,,...,),结果提示,处出错,郁闷
      

  4.   

    不应该出错啊!
    (字段1,字段2,...,字段n-1)应该是Access表中的字段所对应的SQLServer库表中的字段,注意,其个数是N-1,而不是N(N为SQLServer中的字段数)
    如果还继续出错,请给出详细的错误提示.
      

  5.   

    表最后一个字段为多出的。
    INSERT INTO List
    SELECT *,null
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'E:\work\20050201.Mdb'; 
          'admin'; '', list) Rowset_1
      

  6.   

    在设计表的时候,先将Sql数据表中的最后一个字段赋一个初始值
      

  7.   

    现在两个表只能写成这样,可以用了
    dDB.Execute "INSERT INTO List SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', '" & CurrPath & Format(i, "yyyymmdd") & ".Mdb';'admin'; '', 'select id,name,date, left as left_f,right as right_f,wrist," & SerialNo & " from list')"dDB.Execute "INSERT INTO SUM SELECT *," & SerialNo & " FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', '" & CurrPath & Format(i, "yyyymmdd") & ".Mdb';'admin'; '', sum)"
          
    但是下面那个如果写成上面那个形式就提示 from子句语法出错,想不通,感觉其中一个不合语法,但都能用,想不通dDB.Execute "INSERT INTO SUM SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', '" & CurrPath & Format(i, "yyyymmdd") & ".Mdb';'admin'; '', 'select date, total_num,ok_num,fail_num," & SerialNo & " from sum')"