全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
1128 2
2016-05-19
我用vba写了一段程序引用数据库中的内容,但是运行速度特别慢,要半小时左右,请大家看下如何提高效率,谢谢

Sub OpenSQLConnection_Clm_Cnt()
Application.ScreenUpdating = False

  Dim cn As XXXX.Connection
  Dim SQL As String

    Set cn = XXXX.Connection
    cn.ConnectionTimeout = 30000
    cn.CommandTimeout = 9000
    'cn.Open "Provider=XXXX;DSN=XXXX"
    cn.Open "Driver={SQL Server};" & _
    "Server=XXXX;" & _
    "Database=XXX; Trusted_Connection=yes;"

    Dim rsPubs As XXXX.Recordset
    Set rsPubs = XXXX.Recordset


With rsPubs
    ' Assign the Connection object.
    .ActiveConnection = cn
    ' Extract the required records.
    SQL = "select ...."
    SQL = SQL & " from claims_detail_all"
    SQL = SQL & "      where ..."
    SQL = SQL & "         and ..."
    SQL = SQL & "         group by ...,
    SQL = SQL & "         order by ........
    .Open SQL
    ' Copy the records into cell B2 on Sheet2.
    Sheet2.Range("B3", "I50000").ClearContents
    Sheet2.Range("B3").CopyFromRecordset rsPubs
   
End With

  Application.ScreenUpdating = True

End Sub

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-5-26 08:50:56
这种运行效率当然低,每次运行,都要重新读取数据库一次。

不如将数据库通过透视表链接到excel表格,再写个VBA控制透视表进行筛选你想要的内容。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群