ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 7115|回复: 6

[求助] 如何将Excel文件中的内容批量导入SQL中

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-7-1 21:56 | 显示全部楼层 |阅读模式
我有一张Excel表、以经和Sql中的一张表相对应,现在要把Excel中的数据导入到SQL中。请高手指导,
写语句也可以。
先谢谢啦!

TA的精华主题

TA的得分主题

发表于 2009-7-2 00:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

建议你搜索ADO,给你个例子吧

Sub leadin()
    Dim cnn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim i As Long, n As Long, j As Long
    Dim mydatabase As String, mytable As String, sql As String
    Dim wb As Workbook
    Dim ws As Worksheet
    Set wb = ThisWorkbook  '指定工作簿
    Set ws = wb.Sheets("sheet1")    '指定工作表名称
    Application.ScreenUpdating = True
    mydatabase = InputBox("请输入要导入的数据库名", "向数据库中导入数据")    '指定数据库
    mytable = InputBox("请输入要导入的工作表名", "向数据库中导入数据")  '指定数据表
    With cnn  '建立与SQL Server数据库链接
        .ConnectionString = "provider=sqloledb.1;" _
                            & "password=sa;" _
                            & "user id=sa;" _
                            & "datasource=lucas;" _
                            & "initial catalog=" & mydatabase
        .Open
    End With
    n = ws.Range("a65536").End(xlUp).Row    '获取要保存记录的行数
    For i = 2 To n
        '查询是否已存在某条记录
        sql = "select * from " & mytable _
              & " where SerialId='" & Trim(ws.Cells(i, 1).Value) & "'" _
              & " and operid='" & Trim(ws.Cells(i, 2).Value) & "'" _
              & " and operpws='" & Trim(ws.Cells(i, 3).Value) & "'" _
              & " and gradeid='" & Trim(ws.Cells(i, 4).Value) & "'" _
              & " and deptid='" & Trim(ws.Cells(i, 5).Value) & "'" _
              & " and remark='" & Trim(ws.Cells(i, 6).Value) & "'" _
              & " and checkgrant='" & Trim(ws.Cells(i, 7).Value) & "'" _
              & " and upoperid='" & Trim(ws.Cells(i, 8).Value) & "'" _
              & " and equid='" & Trim(ws.Cells(i, 9).Value) & "'"
        rs.Open sql, cnn, adOpenKeyset, adLockOptimistic
        If rs.EOF And rs.BOF Then
            '如果数据表中没有工作表中的某行数据,就添加到数据表
            rs.AddNew
            For j = 1 To rs.Fields.Count
                rs.Fields(j - 1) = Trim(ws.Cells(i, j).Value)
            Next j
            rs.Update
        Else
            For j = 1 To rs.Fields.Count
                rs.Fields(j) = Trim(ws.Cells(i, j).Value)
            Next j
            rs.Update
        End If
    Next i
    MsgBox "数据保存完毕!", vbInformation, "保存数据"
    '关闭数据库及查询数据集,并释放变量
    rs.Close
    cnn.Close
    Set wb = Nothing
    Set ws = Nothing
    Set rs = Nothing
    Set cnn = Nothing
    Application.ScreenUpdating = True
End Sub

TA的精华主题

TA的得分主题

发表于 2009-7-2 11:05 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-2 21:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
敢问兄弟怎样操作?

TA的精华主题

TA的得分主题

发表于 2010-8-16 20:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
怎样将Excel中一批数据数据导入sql中呢?

TA的精华主题

TA的得分主题

发表于 2010-8-21 19:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
sql自身有导入向导,直接可以用,很友好.

TA的精华主题

TA的得分主题

发表于 2010-9-7 10:46 | 显示全部楼层
原帖由 zhao__feng 于 2010-8-21 19:04 发表
sql自身有导入向导,直接可以用,很友好.


多个工作簿呢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-12 06:56 , Processed in 0.019890 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表