Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

GoToRecord不能移动,急求高手相助!!

一半一半  发表于:2009-07-18 17:42:36  
复制

发票代码表四个字段:fpdm,fpID,xsrq,bs    均为字符型数据
fpdm字段中有多条记录,如:0844001,0844051,0844101,0844151,0844201,0844251.。。。。
窗体文本框“起始码” =“0844151”
Me![本数]=3
写如下程序后在运行到红字处提示错,拜托高手给指点一下,先谢谢了!
   Set Rs = New ADODB.Recordset
   StrTemp = "Select * From 发票代码"
   Rs.Open StrTemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
   Rs.MoveFirst
  '在“发票代码”表查找是否存在与待保存的发票代码记录相同
   DoCmd.GoToRecord acActiveDataObject, , acFirst
   DoCmd.FindRecord Rs("fpdm") = Me("起始码"), , True, , True
   For i = 1 To Val(Me![本数])
          Rs("xsrq") = Me![销售日期]
          Rs("bs") = "0"
          DoCmd.GoToRecord , , acNext
   Next
   Rs.Update
   Rs.Close

 

Top
点燃一支烟 发表于:2009-07-18 18:08:16

Dim Rec As New ADODB.Recordset
Rec.Open "发票代码", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Rec.MoveFirst
    For k = 1 To Rec.RecordCount
        If Rec!fpdm = Me.起始码 Then
  

’这里写你需要的操作代码
          
             
                Else
            Rec.MoveNext
        End If
    Next k
    With Rec
    .Update
    .Close
    End With



点燃一支烟 发表于:2009-07-18 18:10:51
 With Rec
    .Update
    .Close
    End With
这段要调整下

一半一半 发表于:2009-07-18 18:37:04

运行了一下,没有出现提示,但好像循环多了些,看看了表,只更新了第一条记录,下面两条未更新:

加红字出现你不能移动到制定纪录,去掉红字只能更新第一次记录。

 

Dim Rec As New ADODB.Recordset
Rec.Open "发票代码", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Rec.MoveFirst
    For k = 1 To Rec.RecordCount
        If Rec!fpdm = Me.起始码 Then
 

'这里写你需要的操作代码
            For i = 1 To Val(Me![本数])
                Rec("xsrq") = Me![销售日期]
                Rec("bs") = "0"
                DoCmd.GoToRecord , , acNext
            Next
         Else
            Rec.MoveNext
         End If
    Next k
    With Rec
    .Update
    .Close
    End With

不好意思,请再帮检查一下问题。



点燃一支烟 发表于:2009-07-18 19:19:36

光看代码头晕,你最好上传附件,随附件说明你到底要作成一个什么样的效果,可能我的理解有出入,呵呵



一半一半 发表于:2009-07-18 20:10:35

问题在:窗体----发票销售记录-----保存按钮

附件:

点击下载此附件

一半一半 发表于:2009-07-18 20:23:21

想法:发票购入时大部分是连号,但销售时不可能都连上。因此建立发票代码表,把每一本都记录在里面,销售时与代码表连接,当“bs”=0时不能出现在起始号组合框中。销售记录只记录第一本号码,由本数控制共多少号,每本50号。

当确定起始号和本数后保存,这时将用到上面的程序,根据本数进行循环替换,将原“bs”=“1”替换成“0”

这是截至目前的思路



点燃一支烟 发表于:2009-07-18 21:43:10

不知道是不是这个意思,呵呵

点击下载此附件

一半一半 发表于:2009-07-18 21:46:16

在替换循环结束后增加移动到第一条记录和退出FOR命令好像可行


 



一半一半 发表于:2009-07-18 21:50:46

简单看了一下,估计可行,而且思路更清晰,增加了代码控制

 

谢谢!



总记录:9篇  页次:1/1 9 1 :