ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

如何优化一下这些代码。让它运行更快??

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-10-14 12:07 | 显示全部楼层 |阅读模式
由于文件过大无法上传。。
效果需求:
1、在C列单元格输入编码后点击D列读取数据有时候很慢,
2、点击“保存订单”按钮执行到清除数据那步也会很慢。
如何优化一下让它更快不卡呢??
4、如何通过点击“查询订单”来实现以输入的单号来读取ACCSSER中所有相同单号的数据显示在相应的单元格???
sheet1代码1:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Dim rst As New ADODB.Recordset
        Dim txt As String
    If Target.Column = 4 And Target.Row > 1 And ActiveSheet.Cells(Target.Row, 3) <> "" Then '4是数据开始放的第一个位置;3是引用列的数据
        txt = "select * from 配件信息库 where 型号编码='" & ActiveSheet.Cells(Target.Row, 3) & "'" '是数据中的位置;3是引用列的数据
        rst.Open txt, cnn, 1, 3
        ii = rst.RecordCount
        If rst.RecordCount = 1 Then
            For i = 1 To rst.Fields.Count - 1
                ActiveSheet.Cells(Target.Row, i + 3) = rst.Fields(i)
            Next
        End If
        rst.Close
        cnn.Close
    End If
End Sub
模块1:
'引用Microsoft ActiveX Data Objects 2.x Library
Sub 录入数据删除()
    Dim cnn As New ADODB.Connection
    Dim myPath As String
    Dim myTable As String
    Dim SQL As String
    myPath = ThisWorkbook.Path & "\Info.mdb"
    myTable = "信息"
    On Error GoTo errmsg
    cnn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & myPath '连接数据库
    SQL = "select #" & [d1] & "# as 发货日期," & [f1] & " as 月份," & [h1] & " as 周数,'" & [j1] & "' as 星期,'" & [d2] & "' as 收货单位,'" & [f2] & "' as 发货人,'" & [K2] & "' as 颜色类,'" & [L1] & "' as 单号,'" & [i2] _
        & "' as 交货日期,* from [Excel 12.0;Database=" & ActiveWorkbook.FullName & "].[" & ActiveSheet.Name & "$C3:R" & Range("c" & Rows.Count).End(xlUp).Row & "]"
    SQL = "insert into " & myTable & " " & SQL '插入新记录SQL语句
    cnn.Execute SQL
    MsgBox "数据已保存!请在“马克订单查询管理系统V6.05”中查看或修改!", vbInformation, "添加数据"
    cnn.Close
    Set cnn = Nothing
    Range("D2,F2,K2,i2,L1,C4:H25").Select
    Range("D2").Activate
    Selection.ClearContents
    Range("D2").Select
    Exit Sub
errmsg:
    MsgBox Err.Description, , "错误报告"
End Sub
模块2:
Public Function cnn() As ADODB.Connection            '定义数据库连接函数

    Set cnn = New ADODB.Connection
cnn.Open "provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.Path & "\数据库1.accdb"
End Function




QQ截图20201014120103.png

数据库(保存数据可供查询)

数据库(保存数据可供查询)

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-10-14 12:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
查询页面也可以独立做一个工作表来实现。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 10:49 , Processed in 0.025507 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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