Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
123
返回列表 发新帖
楼主: danysy

[已解决]如何用Access SQL标注最小值???

[复制链接]
发表于 2013-10-23 22:41 | 显示全部楼层
danysy 发表于 2013-10-23 21:47
谢谢你,hwc2ycy老师

分批次时,你可以先测试一条需要多少时间。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2013-10-25 08:46 | 显示全部楼层
hwc2ycy 发表于 2013-10-23 22:41
分批次时,你可以先测试一条需要多少时间。

hwc2ycy老师,
分批次处理,我还真的不知代码怎么写了?
回复

使用道具 举报

发表于 2013-10-25 08:52 | 显示全部楼层
你把执行的数据库发上来,要有一万行以上的,我测试下。
回复

使用道具 举报

 楼主| 发表于 2013-10-25 17:24 | 显示全部楼层
hwc2ycy 发表于 2013-10-25 08:52
你把执行的数据库发上来,要有一万行以上的,我测试下。

hwc2ycy老师,谢谢你了,因为我是与其他过程连在一起的(有导入过程等),如果发上来的话要解释好久了。我现在找到了另一方法(还是用你的代码)只是在导入时依工作表的单元格内容来update: 导入的数据不多,但数据库中还是有一万多条,用循环来update,这样速度会提高很多,还是用你的方法来解决,谢谢你
回复

使用道具 举报

 楼主| 发表于 2013-10-26 16:02 | 显示全部楼层
hwc2ycy老师,
我的代码如下:
  1. Dim i
  2. Dim ws As Worksheet
  3. Set ws = ThisWorkbook.Worksheets("导入价格")

  4. Dim Cnn As New ADODB.Connection
  5. Dim SQL As String

  6. Cnn.Open "provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.Path & "\HRdatabase.accdb" & ";jet oledb:database password=" & "123456789$HR0*"

  7. i = 2
  8. Do While Not IsEmpty(ws.Cells(i, 1))

  9.      SQL = "update ³§É̼۸ñ set ×îµÍ¼Û¸ñ='min' where ×îм۸ñ='new' and ÎïÁϱàºÅ+'#'+cstr(pricermb) in (select ÎïÁϱàºÅ+'#'+cstr(min(pricermb)) from ³§É̼۸ñ where ÎïÁϱàºÅ='" & ws.Cells(i, 1) & "' and ×îм۸ñ='new' group by ÎïÁϱàºÅ)"

  10.     Cnn.Execute SQL
  11.     i = i + 1
  12. Loop
  13.         
  14.     Cnn.Close
  15.     Set Cnn = Nothing
  16.     Set ws = Nothing
复制代码
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-4 00:11 , Processed in 0.208385 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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