楼主: brushington
1156 2

[问答] 求助 VBA导入数据库的数据 [推广有奖]

  • 1关注
  • 0粉丝

本科生

93%

还不是VIP/贵宾

-

威望
0
论坛币
162 个
通用积分
0.0000
学术水平
5 点
热心指数
5 点
信用等级
5 点
经验
1180 点
帖子
55
精华
0
在线时间
87 小时
注册时间
2008-6-28
最后登录
2025-10-19

楼主
brushington 发表于 2016-5-19 06:02:29 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我用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

二维码

扫码加我 拉你入群

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

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

关键词:导入数据 数据库 VBA Application connection 数据库

沙发
caihaiyu 在职认证  发表于 2016-5-26 08:50:56
这种运行效率当然低,每次运行,都要重新读取数据库一次。

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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 00:16