【已解决】如何查询access数据库某列的最大值?
本帖最后由 xms77 于 2013-2-21 08:51 编辑搜索了整个论坛,搞了一个多小时,还没有整出来。
我现在的代码如下:
Func _QueryMax($iTblName, $iColumnName)
Local $iMax
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=")
$RS = ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$RS.Open("SELECT MAX(ZPos1) as Maxvalue FROM " & $iTblName)
$imax = $RS.Maxvalue
$RS.close
$addfld.close ;写完结束所有的连接
Return $iMax
EndFunc
灰常298311657兄弟感激的帮忙,修正代码如下:
Func _accessGetColumnMax($adSource, $adTable, $adCol)
Local $Val
Local $oADO = 'ADODB.Connection'
If IsObj($oADO) Then
$oADO = ObjGet('', $oADO)
Else
$oADO = _dbOpen($adSource)
EndIf
If IsObj($oADO) = 0 Then Return SetError(1)
Local $oRec = _dbOpenRecordset()
If IsObj($oRec) = 0 Then Return SetError(2)
$oRec.Open("SELECT Max(" & $adCol & ") as Maxvalue FROM " & $adTable, $oADO, $adOpenStatic, $adLockOptimistic)
$Val = $oRec.Fields("Maxvalue").value
$oRec.Close
$oADO.Close
Return $Val
EndFunc ;==>_accessGetColumnMax $imax = $RS.Fields("Maxvalue").Value 加个条件
If Not $Rs.Eof Then
$imax = $RS.Fields("Maxvalue").Value
Else
$imax = 0
Endif 回复 2# 298311657
谢谢兄弟,不加条件也行! 回复 2# 298311657
如果我要按时间段来查询某个字段的最大值,代码如下,但是查询结果为空,不知道是不是时间格式问题。数据库的'DT'字段定义的是Date/Time格式。帮我看下原因,谢谢!
$RS.Open("SELECT Max(AdjustZ) as Maxvalue FROM ZHeightRecord1 where DT<#2/20/2013 11:30:00AM# and DT>#2/20/2013 11:03:59 AM#")
$Val = $RS.Fields("Maxvalue").value 时间格式 2013/02/20 11:30:00 _dbOpen
_dbOpenRecordset()
这些自定义函数哪里有呢?
页:
[1]