ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] excel数据导入SQL,编号单元格重复的则覆盖,不重复的则追加,如何实现?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-7-30 20:23 | 显示全部楼层 |阅读模式
Sub qqq1()
    Dim conn As New ADODB.Connection
    Dim Rs As New ADODB.Recordset
    Dim i%, strTemp$, RowNum%, K%
    Dim wkSheet As Worksheet
    Dim bb%
    If MsgBox("确认要导入数据吗?", vbYesNo) = 7 Then Exit Sub
      conn.Open "Driver={SQL Server};server=192.168.1.111;uid=sa;pwd=sa;database=ASY;"
    Application.ScreenUpdating = False
    Set wkSheet = Worksheets("原始数据")

    RowNum = Range("c65536").End(xlUp).Row

    On Error GoTo 9
    conn.BeginTrans
        K = 0
               For i = 2 To RowNum
            If wkSheet.Cells(i, 2).Value <> 0 Then
                '拼写INSERT语句的SQL语句
                strTemp = "insert into 物资信息 (编号,材质楞型,楞别,班组,类别,长度,宽度,门幅,路数,订单数,入库数) "
                strTemp = strTemp & " values( '" & wkSheet.Cells(i, 2).Value & "'  ,  '" & _
                                                   wkSheet.Cells(i, 3).Value & "'  ,  '" & _
                                                   wkSheet.Cells(i, 4).Value & "'  ,  '" & _
wkSheet.Cells(i, 5).Value & "'  ,  '" & _
wkSheet.Cells(i, 6).Value & "'  ,  '" & _
wkSheet.Cells(i, 7).Value & "'  ,  '" & _
wkSheet.Cells(i, 8).Value & "'  ,  '" & _
wkSheet.Cells(i, 9).Value & "'  ,  '" & _
wkSheet.Cells(i, 10).Value & "'  ,  '" & _
wkSheet.Cells(i, 11).Value & "'  ,  '" & _
                                                   wkSheet.Cells(i, 12).Value & "')"
                '执行INSERT语句
                conn.Execute strTemp
                K = K + 1
            End If
        Next
    conn.CommitTrans '结束插入操作的事务
    ThisWorkbook.Save

    conn.Close '关闭链接
    Set Rs = Nothing '释放内存
    Set conn = Nothing '释放内存

    Set wkSheet = Nothing
    Application.ScreenUpdating = True

    MsgBox "导入完毕!" & Chr(10) & Chr(10) & "已经插入的条数:" & K
    Exit Sub
9:
    'Conn.RollbackTrans
    MsgBox Err.Description & "第" & i & "行 导入出错"
End If
End Sub

[ 本帖最后由 2217918 于 2011-8-2 09:27 编辑 ]

1.rar

33.72 KB, 下载次数: 46

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-30 21:06 | 显示全部楼层
顶上去!顶上去!顶上去!

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-30 21:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
顶上去!顶上去!顶上去!

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-30 21:41 | 显示全部楼层
顶上去!顶上去!顶上去!

TA的精华主题

TA的得分主题

发表于 2011-7-31 00:39 | 显示全部楼层

回复 1楼 2217918 的帖子

在程序中先查询该编号的记录是否存在,存在的话则用现在的数据覆盖修改它,不存在的话刚插入该记录

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-31 10:03 | 显示全部楼层
请教版主,是SQL里面有重复。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-31 15:49 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-31 17:36 | 显示全部楼层
顶上去!顶上去!顶上去!

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-31 20:17 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-8-1 18:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请版主帮忙!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-28 22:06 , Processed in 0.046457 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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