以下是我的一个SQL语句string sql_str = "insert into Infor(xh,xm,csrq,mz,xb,jg,sfzh,nj,yx,zy,bj,fdy,drhz,sfdy,sfrdjjfz,cf,jl,jtzz,jtyb,jtdh,fqxm,fqdw,fqdh,mqxm,mqdw,mqdh,qtqs,hkqyqk,bz)";
sql_str += "select xh,xm,csrq,mz,xb,jg,sfzh,nj,yx,zy,bj,fdy,drhz,sfdy,sfrdjjfz,cf,jl,jtzz,jtyb,jtdh,fqxm,fqdw,fqdh,mqxm,mqdw,mqdh,qtqs,hkqyqk,bz from [excel 8.0;Database=" + drname + "].[Sheet1$]";以上是将Excel表的数据导入到Access数据库Infor表中的SQL语句,其中,字段都是varchar类型,字段xh为主键, 其中,xh,sfzh,nj,bj,jtyb,jtdh,fqdh,mqdh等字段存储数字,当执行SQL语句时,导入没有问题,存储字符的数据可以正常导入到表中,但是以上存储数字的字段,除了xh数据可以正常导入的Access数据库表中,其他字段的数据导入不进去Access数据库Infor表中,请各位看看SQL语句哪里出错了?(drname 为Excel表格的名字)

解决方案 »

  1.   

    我找出错了,是因为Excel表中存储的是数据,而Access数据库表中相应的字段类型为Varchar类型,所以导入不进去?
    怎么解决呢?如果把Access表中的字段类型设置为 数字,其只能是长整形,假如要输入身份证号之类一长串数字,仍然行不通,哪位高手能给指点一下啊,急!
      

  2.   

    你执行一下查询Excel的语句,看是不是数据都读取到了
    把Excel作为表用Select来读取的时候有很多弊端,除非Excel里面的单元格的格式都相同
      

  3.   

    这个问题我知道了,把Excel相应的列单元格格式设置成文本即可