--插入时进行转换试试,如:
SELECT cast(身份证号码 as nvarchar) into table_A ...
如果没有字符的身份证,最好转换为数值如:
SELECT cast(身份证号码 as decimal) into table_A ...

解决方案 »

  1.   

    可能是你的Excel 里面有空的行,
      

  2.   

    (1)我进行过转换,但是不能解决问题(2)excel里面绝对没有空行
      

  3.   

    把Excel中的数据删掉一些,找出不能导入的行。看看这行数据有何特殊之处,再行处理。
      

  4.   

    导入为空值的是那些行-----在EXCEL中当我将列宽拉得比身份证号码长度短时,它就出现乱码,用一些EEEEE表示的那些身份证号码.
      

  5.   

    用这种方法select * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'Excel 8.0;IMEX=1;HDR=YES;DATABASE=c:\test.xls' --c:\test.xls是excel文件名
    ,sheet1$) --sheet1$是工作表名+$
      

  6.   

    或者将该列的格式设置成文本。
    这两种方案均可以,通过我的Dumper软件测试,通过。
    Dumper可从 http://www.51dbsync.com/Dumper/Dumper1.0.rar 下载。
      

  7.   

    原因是,Excel sheet 作为 OLE DB,身份证内容被当做整型(ftInt)而发生溢出。
      

  8.   

    (1)zjcxc(邹建)大哥:你那方法太牛了,终于解决了,请问access中用什么函数来替代该函数啊?(2)bigben2008(ben)大哥:在身份证前加点东西确实能解决问题,但不太方便用户操作.如果将列改为文本好像不能解决问题.你那软件满不错啊!请问你用多久做完的啊?
      

  9.   

    在Access中导入Excel的身份证号码时,如下处理:
    设置Excel中[身份证号码]列的格式选中此列标题,右键“设置单元格格式”,选“特殊”,右侧类型选“邮政编码”即可。
      

  10.   

    wangtiecheng大哥:这样还是不行,不过这方法的思路倒是满好的
      

  11.   

    当我按你的方法修改时,->特殊->邮政编码. 运行sql语句.有些身份证号码还是同样出现空值.当我改成一些其它格式时 ->设置单元格->文本.运行sql语句所得结果还是一样.有些身份证号码还是同样出现空值.真的谢谢你
      

  12.   

    这些为空值对应的原始Excel记录中的信息有什么异常?
      

  13.   

    我已经将我的EXCEL文件上传到http://www.access911.net/csdn/了上传时间:2006-8-17 19:43:36.  文件名:xls.rar打开文件,你将EXCEL中的列"学号"的宽度拉小一点,你会发现后面几行中的有些学号已经不是用数字来表示了,而是用"########"来表示的,那些学号就是不能插到ACCESS中的学号.再次谢谢!
      

  14.   

    这种方法铁定行:
    你把你有内容的sheet1重新copy到一个新的sheet2上,然后再导一次
      

  15.   

    将EXCEL另存为TXT,然后导就OK了,如果你想用程序实现,可以试试先用SQL转成TXT再导。
    你说的问题我以前遇到过,就是先将EXCEL打开另存为TXT弄好的