Office中国论坛/Access中国论坛

标题: 百思不解,求高医士 [打印本页]

作者: ZZBZZBZZZB    时间: 2009-6-3 11:47
标题: 百思不解,求高医士
Dim mysqln As String, mymax As Integer
    Set rsNum = New ADODB.Recordset
    Set rsNumm = New ADODB.Recordset
   
   
    mysqln = "select max(凭证号) as mymax from 清单 " _
        & "where month(日期)=" & Month(Now())
    rsNum.Open mysqln, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  
       Label81.Caption = "本月最大编号为" & rsNum!mymax

    Set rsNumm = New ADODB.Recordset
    mysqln = "select sum(借方金额) as a1,sum(贷方金额) as a2  from 清单 " & "where month(日期)=" & Month(Now())
    rsNumm.Open mysqln, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
   
    If rsNumm!a1 <> rsNumm!a2 Then
       凭证编号.Value = rsNum!mymax
       Label82.Caption = "不平衡,建议编号为" & rsNum!mymax
      
   
   
     ElseIf rsNumm!a1 = rsNumm!a2 Then
   
       凭证编号.Value = rsNum!mymax + 1
       Label82.Caption = "平衡,建议编号为" & rsNum!mymax + 1
      
    End If
   
   rsNum.Close
   rsNumm.Close

经运行发生这样的问题:  每向 数据表"清单"中添加一记录,就远行一次上述的程序,问题是:  查询出来的最大数"mymax"总是固定,不是最大数,查询出来的其它却是好的,百思不得解,求高手医士!!!!!!!!!!!!!!!!!!!
作者: kangking    时间: 2009-6-3 12:04
试试:建立记录集后,先 记录集.movelast, 然后再 记录集.movefirst,再显示记录数。
作者: djt    时间: 2009-6-3 12:34
本帖最后由 djt 于 2009-6-3 12:35 编辑

需要 rs.update
凭证编号.Value = rsNum!mymax + 1
       Label82.Caption = "平衡,建议编号为" & rsNum!mymax + 1
rsNum!mymax=rsNum!max+1
rsNum.update
作者: ZZBZZBZZZB    时间: 2009-6-3 13:49
这两剂药都服用了,没用,不过还是谢了!!!
作者: styhs    时间: 2009-6-3 18:01
Recordset的CursorType参数adOpenKeyset,不能显示新记录,将其更改为adOpenDynamic值。
作者: ZZBZZBZZZB    时间: 2009-6-11 07:57
谢各位,问题已解决,方法是把表"凭证号"类形设为长整形




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3