加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

vba如何将excel的数据导入到sql数据库中

(2016-05-17 22:41:21)
标签:

vba将excel数据写入sq

将excel数据写入到sql

写入sql数据库的思路

用友软件

excel数据集成

分类: Excel_VBA
网址:http://blog.sina.com.cn/s/blog_15b9821340102wbne.html
vba如何将excel的数据导入到sql数据库中
----------------
第1步:获取原始数据
vba如何将excel的数据导入到sql数据库中

Public Sub 原始数据页签_清空本页数据()
'---------------原始数据页签清空数据----------------
      Worksheets("原始数据").Activate
      Worksheets("原始数据").Range("A2:BZ65536").ClearContents
      Worksheets("原始数据").Cells.Interior.ColorIndex = xlNone                                   '清空所有单元格的颜色
End Sub

---------------
第2步:检查原始数据
vba如何将excel的数据导入到sql数据库中

Public Sub 初始数据1_1页签检查原始数据的合法性()
'*****************************************************模块中的过程*********************************************************
    B001整体进度条.Show 0
         B001整体进度条.Label1.Caption = "第一步:"
         B001整体进度条.Label2.Caption = "     正在对您的    <服务器设置1>    进行检查,该步骤可能需要    <较长时间>     ,请稍等......"
         DoEvents

                  Call 服务器设置1页签_判断是否输入了数据库所在计算机ID或名称                '------<第一步>---------------------
                  If Jianchatongguo = False Then
                         Exit Sub
                  End If
                  Call 服务器设置1页签_判断输入的数据库所在计算机ID或名称是否正确            '------<第二步>---------------------
                  If Jianchatongguo = False Then
                         Exit Sub
                  End If
                  Call 服务器设置1页签_检测服务器计算机中的数据库名列表                      '------<第三步>---------------------
                   If Jianchatongguo = False Then
                         Exit Sub
                  End If
                  Call 服务器设置1页签_判断是否输入了数据库名称                              '------<第四步>---------------------
                  If Jianchatongguo = False Then
                         Exit Sub
                  End If
                  Call 服务器设置1页签_判断输入的数据库名称是否正确                          '------<第五步>---------------------
                  If Jianchatongguo = False Then
                         Exit Sub
                  End If
                 
                  Unload B001整体进度条
                  MsgBox "您的     <服务器设置>     检测完成", vbOKOnly + vbInformation, "提醒"


'*****************************************************模块中的过程*********************************************************
    B001整体进度条.Show 0
         B001整体进度条.Label1.Caption = "第五步:"
         B001整体进度条.Label2.Caption = "     正在对您的      <原始数据>     进行检查,请稍等......"
         DoEvents

    Worksheets("初始数据1-1").Activate
    Call 初始数据1_1页签清空本页数据                                          '<初始数据1_1>---<第一步>:
    Call 初始数据1_1页签_复制原始数据页签的内容到初始数据1_1页签              '<初始数据1_1>---<第二步>:
    If Jianchatongguo = False Then
           Exit Sub
    End If
    Call 初始数据1_1页签_默认值写入到初始数据1_1页签的对应列中                 '<初始数据1_1>---<第三步>:
    Call 初始数据1_1页签_日志字段写入到初始数据1_1页签的对应列中               '<初始数据1_1>---<第四步>:
    Call 初始数据1_1页签_主键字段或非重复字段检测重复性                        '<初始数据1_1>---<第五步>: 检查需要导入的销售订单编号在用友软件中是否存在重复的数值
    If Jianchatongguo = False Then
           Exit Sub
    End If
    Call 初始数据1_1页签_提取基础档案的编号对应的名称                           '<初始数据1_1>---<第六步>:提取基础档案的名称,并判断输入的基础档案的编号在用友软件中是否存在
    Call 初始数据1_1页签_检查基础档案编号在数据库对应表中是否存在               '<初始数据1_1>---<第七步>:'判断需要导入的基础档案的编号,在数据库基础档案对应的数据表中是否存在
    If Jianchatongguo = False Then
           Exit Sub
    End If
    Call 初始数据1_1页签_必填列检查是否存在空单元格                             '<初始数据1_1>---<第八步>:
    If Jianchatongguo = False Then
           Exit Sub
    End If
    Call 初始数据1_1页签_检查数据格式是否满足要求                               '<初始数据1_1>---<第九步>:检查销售日期和数量,单价,金额等等是否为正确的格式(比如是日期格式和数字格式)
    If Jianchatongguo = False Then
           Exit Sub
    End If
    Unload B001整体进度条
    MsgBox "<原始数据>页签的数据检查结果:     合法性检查通过", vbOKOnly + vbInformation, "提醒"
End Sub


---------------
第3步:通过vba将数据传输到sql数据库对应的数据表中
vba如何将excel的数据导入到sql数据库中



Public Sub 初始数据1_2_将数据导入数据库()
'*****************************************************模块中的过程*********************************************************
    B001整体进度条.Show 0
         B001整体进度条.Label1.Caption = "第一步:"
         B001整体进度条.Label2.Caption = "     正在对您的    <服务器设置1>    进行检查,该步骤可能需要    <较长时间>     ,请稍等......"
         DoEvents

                  Call 服务器设置1页签_判断是否输入了数据库所在计算机ID或名称                '------<第一步>---------------------
                  If Jianchatongguo = False Then
                         Exit Sub
                  End If
                  Call 服务器设置1页签_判断输入的数据库所在计算机ID或名称是否正确            '------<第二步>---------------------
                  If Jianchatongguo = False Then
                         Exit Sub
                  End If
                  Call 服务器设置1页签_检测服务器计算机中的数据库名列表                      '------<第三步>---------------------
                   If Jianchatongguo = False Then
                         Exit Sub
                  End If
                  Call 服务器设置1页签_判断是否输入了数据库名称                              '------<第四步>---------------------
                  If Jianchatongguo = False Then
                         Exit Sub
                  End If
                  Call 服务器设置1页签_判断输入的数据库名称是否正确                          '------<第五步>---------------------
                  If Jianchatongguo = False Then
                         Exit Sub
                  End If
                 
                  Unload B001整体进度条
                  MsgBox "您的     <服务器设置>     检测完成", vbOKOnly + vbInformation, "提醒"


'*****************************************************模块中的过程*********************************************************
    B001整体进度条.Show 0
         B001整体进度条.Label1.Caption = "第五步:"
         B001整体进度条.Label2.Caption = "     正在对您的      <原始数据>      进行检查,请稍等......"
         DoEvents

    Worksheets("初始数据1-1").Activate
    Call 初始数据1_1页签清空本页数据                                          '<初始数据1_1>---<第一步>:
    Call 初始数据1_1页签_复制原始数据页签的内容到初始数据1_1页签              '<初始数据1_1>---<第二步>:
    If Jianchatongguo = False Then
           Exit Sub
    End If
    Call 初始数据1_1页签_默认值写入到初始数据1_1页签的对应列中                 '<初始数据1_1>---<第三步>:
    Call 初始数据1_1页签_日志字段写入到初始数据1_1页签的对应列中               '<初始数据1_1>---<第四步>:
    Call 初始数据1_1页签_主键字段或非重复字段检测重复性                        '<初始数据1_1>---<第五步>: 检查需要导入的销售订单编号在用友软件中是否存在重复的数值
    If Jianchatongguo = False Then
           Exit Sub
    End If
    Call 初始数据1_1页签_提取基础档案的编号对应的名称                           '<初始数据1_1>---<第六步>:提取基础档案的名称,并判断输入的基础档案的编号在用友软件中是否存在
    Call 初始数据1_1页签_检查基础档案编号在数据库对应表中是否存在               '<初始数据1_1>---<第七步>:'判断需要导入的基础档案的编号,在数据库基础档案对应的数据表中是否存在
    If Jianchatongguo = False Then
           Exit Sub
    End If
    Call 初始数据1_1页签_必填列检查是否存在空单元格                             '<初始数据1_1>---<第八步>:
    If Jianchatongguo = False Then
           Exit Sub
    End If
    Call 初始数据1_1页签_检查数据格式是否满足要求                               '<初始数据1_1>---<第九步>:检查销售日期和数量,单价,金额等等是否为正确的格式(比如是日期格式和数字格式)
    If Jianchatongguo = False Then
           Exit Sub
    End If
    Unload B001整体进度条
    MsgBox "<原始数据>页签     <原始数据>     合法性检查通过", vbOKOnly + vbInformation, "提醒"

'******************************************************<服务器设置1>模块的过程 ****************************************************************
    '------------------------------------------------判断是要导入两张表还是一张表----------------------------------------------------------
    If Worksheets("服务器设置1").Cells(11, 10).Value = 2 Then
       ' GoTo liangzhangbiao
    ElseIf Worksheets("服务器设置1").Cells(11, 10).Value = 1 Then
        GoTo yizhangbiao
    Else
        MsgBox "您填写的导入的数据表数单元格,的内容不正确,只能输入1或者2", vbOKOnly + vbCritical, "错误提醒"
        Exit Sub
    End If

   
yizhangbiao:
'******************************************************模块的过程 ****************************************************************
    B001整体进度条.Show 0
         B001整体进度条.Label1.Caption = "第六步:"
         B001整体进度条.Label2.Caption = "   正在进行    <数据分流>操作    ,请稍等......."
         DoEvents
    Call 初始数据1_2_清空本页签数据                                               '<初始数据1_2>----<第一步>:
    Call 对应字段2页签_设置数据源2页签的单元格格式                                '根据<对应字段2>页签设置数据源2页签的单元格格式
    Call 初始数据1_2_复制初始数据1_1页签中数据                                    '<初始数据1_2>----<第二步>:
   'Call 初始数据1_2_将主表数据导入到数据源1页签中
    Call 初始数据1_2_将子表数据导入到数据源2页签中                                '<初始数据1_2>----<第三.2步>:
    Unload B001整体进度条

'******************************************************模块的过程 ****************************************************************
    B001整体进度条.Show 0
         B001整体进度条.Label1.Caption = "第七步:"
         B001整体进度条.Label2.Caption = "    正在将数据导入到    <科目对照表中>    ,请稍等........"
         DoEvents
    waitTime = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 4)                   '程序在此处(50的倍数)等待3秒再继续运行(也可设置其他秒数)
    Application.Wait waitTime
    Call 数据源2_删除数据源2重复值                                                '<数据源2>----<第一步>:
    Call 数据源2_为程序加1字段赋值                                                '<数据源2>----<第二步>:
    Unload B001整体进度条
    Call 数据源2_将数据源2的数据导入到sql中                                       '<数据源2>----<第三步>:
End Sub

---------------

vba对接sql数据库数据分析

欢迎访问:http://www.df-bi.com
更多数据分析模型,欢迎扫描"微信公众号"
或者查找微信公众号:"DF数据工厂"  或  "data_f"
vba如何将excel的数据导入到sql数据库中

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有