[Microsoft][ODBC Excel Driver] 数值字段溢出!2009-05-20 16:32使用Excel作数据库进行查询并显示字段值时老是提示错误:[Microsoft][ODBC Excel Driver] 数值字段溢出!最终在Microsoft网站上查得知是由于一些字段中的数据类型不一致造成的。才想起来Excel中原有的身份证字段是文本类型,后来手工添加的几条记录都被自动转成了数值型,统一成文本后问题随之解决。
正高兴呢,以为总是解决了,才发现啊,还是不行,后来经过实验把rs.open sql,conn,1,1,改成了:rs.open sql,conn,3,3就可以了,到底是为什么呢,我还是不晓得。
Microsoft详细说明:http://support.microsoft.com/kb/815277/zh-cn
------------------------------
高兴了没几个月,又出现在导入的时候(字段中同时有文本和数字型 时)只能导入文本,不能导入数字的情况了,郁闷啊。后来在网上看到一篇文章,终于解决了:
==============
asp读取excel文件
asp读取excel文件,就是把excel文件看作accexx数据库。工作表看作一个数据库表,excel表中的列看作access表的字段。
数据库连接字符串也与连接access类似.
以下2种方式可以读取excel2003,也就是 .xls 格式的excel,07的 .xlsx 格式文件不能读取
'第一种连接方式:
set conn=Server.CreateObject("ADODB.Connection")
Driver = "Driver={Microsoft Excel Driver (*.xls)};"
DBPath = "DBQ="&server.MapPath("test.xlsx")
conn.open Driver&DBPath
'第二种连接方式
'Set conn = Server.CreateObject("ADODB.Connection")
'connStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("test.xls")&";Extended Properties='Excel 8.0;HDR=No;IMEX=1';"
'其中,hdr取值yes,no ,表示第一行是否为字段名
'imex 取值1,2,
'其中1 正是解决此问题的关键(也有人说取值1,只能在连续16行中出现上诉问题才能解决,未经证实?)
' 其中2 只查到有人用,但是不清楚具体代表什么!
'HDR=Yes这个我说一下,这代表第一行是标题,不做为数据使用 ,如果用HDR=NO,则表示第一行不是标题,做为数据来使用。系统默认的是YES.
''response.Write("connStr="&connStr)
'conn.open connStr
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "Select * From [sheet1$]",conn,1,1
rows=rs.recordcount
cells=rs.Fields.Count
response.Write(rows&","&cells)
正高兴呢,以为总是解决了,才发现啊,还是不行,后来经过实验把rs.open sql,conn,1,1,改成了:rs.open sql,conn,3,3就可以了,到底是为什么呢,我还是不晓得。
Microsoft详细说明:http://support.microsoft.com/kb/815277/zh-cn
------------------------------
高兴了没几个月,又出现在导入的时候(字段中同时有文本和数字型 时)只能导入文本,不能导入数字的情况了,郁闷啊。后来在网上看到一篇文章,终于解决了:
==============
asp读取excel文件
asp读取excel文件,就是把excel文件看作accexx数据库。工作表看作一个数据库表,excel表中的列看作access表的字段。
数据库连接字符串也与连接access类似.
以下2种方式可以读取excel2003,也就是 .xls 格式的excel,07的 .xlsx 格式文件不能读取
'第一种连接方式:
set conn=Server.CreateObject("ADODB.Connection")
Driver = "Driver={Microsoft Excel Driver (*.xls)};"
DBPath = "DBQ="&server.MapPath("test.xlsx")
conn.open Driver&DBPath
'第二种连接方式
'Set conn = Server.CreateObject("ADODB.Connection")
'connStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("test.xls")&";Extended Properties='Excel 8.0;HDR=No;IMEX=1';"
'其中,hdr取值yes,no ,表示第一行是否为字段名
'imex 取值1,2,
'其中1 正是解决此问题的关键(也有人说取值1,只能在连续16行中出现上诉问题才能解决,未经证实?)
' 其中2 只查到有人用,但是不清楚具体代表什么!
'HDR=Yes这个我说一下,这代表第一行是标题,不做为数据使用 ,如果用HDR=NO,则表示第一行不是标题,做为数据来使用。系统默认的是YES.
''response.Write("connStr="&connStr)
'conn.open connStr
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "Select * From [sheet1$]",conn,1,1
rows=rs.recordcount
cells=rs.Fields.Count
response.Write(rows&","&cells)