把excel2003中的数据导入到sql server2008中去为什么excel中的整数默认都是double以致不能导入?

如题所述

dim conn
dim conn2
set conn=CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=c:\book1.mdb"

set conn2=CreateObject("ADODB.Connection")
conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Extended properties=Excel 5.0;Data Source=c:\book1.xls"

sql = "SELECT * FROM [Sheet1$]"
set rs = conn2.execute(sql)
while not rs.eof
sql = "insert into xxx([a],[b],[c],[d]) values('"& fixsql(rs(0)) &"','"& fixsql(rs(1)) &"','"& fixsql(rs(2)) &"','"& fixsql(rs(3)) &"')"
conn.execute(sql)
rs.movenext
wend

conn.close
set conn = nothing
conn2.close
set conn2 = nothing

function fixsql(str)
dim newstr
newstr = str
if isnull(newstr) then
newstr = ""
else
newstr = replace(newstr,"'","''")
end if
fixsql = newstr
end function

我想你应该能看明白吧,你主要看其中的方法就行了,就是象access 数据库一样,把excel文件打开,再进行读再写到access中你要写到sqlserver中就把写的过程改一下就成了.祝你好运
温馨提示:内容为网友见解,仅供参考
无其他回答

SQL SERVER2008中使用“任务”->“导入数据”,导入EXCEL表中数据失败...
我是这样操作的:第一步,先从SQLSERVER2008中导出EXCEL表格,根据相应字段添加相应信息,第二步,然后再使用“导入数据”功能导入,结果,导入不成功。下面是截图:其中:e_id有e_age是int 型,其它是nchar型。 按照字段添加部分信息后。如下图: 导入时,... 展开 comeon1990811 | 浏览5116 次 |举报 我有更好的答案...

如何把excel中的数据转换为double格式
table每一列单独出来就是double数组,在导入数据中,将输出类型改为矩阵,用这个函数:table2array就可以把表里的文字转成字符串,数据转成double型了。信息与数据既有联系,又有区别。数据是信息的表现形式和载体,可以是符号、文字、数字、语音、图像、视频等。而信息是数据的内涵,信息是加载于数据之上...

我想从excel中读取指定范围内容 如是double类型则 读取整行数据(有多...
给你思路,首先将sheet表fill到一个Table中,然后使用linq的where筛选,double类型。筛选完的就全部是double类型的咯。linq强大!!!一般问题都可以解决

关于excel向SQL Server数据库导入double类型的数据,小数点后最后一位...
用 SELECT ROUND来处理不同长度位的数据,进行处理成你要的四舍五入位精度数据。再用insert into生成一个临时表,最后update到当前表中。这些转换处理掉它们。

VB如何将Excel中的数据批量导入到Access中?
'打开Access数据库 data.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Text1.Text & ";Persist Security Info=False"db.Open "select * From sheet", data, adOpenKeyset, adLockOptimistic '数据库表的名字sheet '打开Excel数据表 Set xlsApp = CreateObject("Excel.Application") ...

是Excel2003,想把1500设置成¥1500.00为什么按货币样式按钮会出现8个...
我也去答题访问个人页 关注 展开全部 首先:你要确保单元格的宽度足够,即格式变换后能正常显示,如果不能就会出现#;其次:看看单元格中是不是有其他的数据,隐藏了之类的 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 udbswcaps1128 2011-08-27 · 超过10用户采纳过TA的回答 知道答主 回答量:...

excel2003中怎样把单元格中大于某一范围的值替换成另一个值
自定义函数的结果是你在单元格输入:=changeValueTo100(D2)然后在单元格返回函数值。但是你内部的过程却是一个子程序的形式,那是sub不是function,而且函数返回的值还是changeValueTo100 = "修改成100成功!",中间随便怎么运行程序,你的函数结果都是:"修改成100成功!"其实你直接用:=min(a1,100...

在excel VBA中如何判定单元格中的数据类型是整数还是其他呢?
3 Sub test()MsgBox VarType([a1])End Sub 例子代码2:判断A1单元格数据类型是否数值 1 2 3 4 5 6 7 Sub test()If VarType([a1]) = vbDouble Then MsgBox "A1是数值类型"Else MsgBox "A1不是数值类型"End If End Sub 实际上VB还有vbLong、vbDecimal等类型,但单元格为数值时默认是vb...

Excel VBA中 单元格格式和数据类型的关系
在VBA中的引用单元格数据时,数据类型由VBA中确定,当数据能转换时就直接赋值,不能转换时出现数据类型不匹配错误。举例来说,在单元格中输入4.56 数据,格式设为文本型,当在VBA中引用时,赋给整数型Long Integer结果是 5(自动四舍五入),Double型结果为 4.56,String型结果是"4.56"。实际中...

在Excel中,输入的字符型数据在单元格中自动右对齐。()
在Excel中,输入的数值型数据在单元格中自动右对齐。Microsoft Excel软件中的数值型数据往往表示某些数据类型的数量,例如日期、时间、阿拉伯数字、长度、高度、重量等。在Excel2003中,数值型数字最大正数可达9.9*10的307次方,最小负数可达-9.9*10的307次方,不过其精度只能精确到15位数字。当Excel2003...

相似回答