Access交流中心

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

Access中用VAB定位RecordSet的记录指针

牛牛黎  发表于:2014-03-19 13:13:09  
复制

最近高强度学习Access而且在高强度实践ing。在过程中,发现一个问题,小弟虚心求解~


简介如下:

1. 表tblCastInfo中有基本数据

2. 已基本建立一个窗体frmCastUpdate,其中有一个cmdAdd用来将各文本框中的信息按规定作为新纪录添加到tblCastInfo中

3. 代码附后

Private Sub cmdAdd_Click()
    If IsNull(txtBlockNo) Then
        MsgBox "仓号为空", vbCritical, "仓号空"
        txtBlockNo.SetFocus
        Exit Sub
    End If
    Dim rec As DAO.Recordset
    Set rec = CurrentDb.OpenRecordset("tblCastInfo", dbOpenDynaset)
    
    rec.MoveLast
    rec.MoveNext
    
    rec.AddNew
    rec("仓号") = txtBlockNo
    rec("开仓日期") = txtStartDate
    rec("开仓时间") = txtStartTime
    rec("收仓日期") = txtEndDate
    rec("收仓时间") = txtEndTime
    rec("底部高程") = txtBotEl
    rec("顶部高程") = txtTopEl
    rec("砼类型") = txtConType
    rec("砼标号") = txtConLabel
    rec("设计方量") = txtQtyDesign
    rec("仓号面积") = txtArea
    rec("三维图方量") = txtQty3D
    rec("入仓方量") = txtQtyCast
    rec("部位") = txtLocation
    rec.Update
    
    MsgBox "仓号追加完成", vbOKOnly
    
    rec.Close
    
    Dim strSQLCounter As String
    strSQLCounter = "select count(仓号) as 计数 from tblCastInfo"
    Dim RSCounter As DAO.Recordset
    Set RSCounter = CurrentDb.OpenRecordset(strSQLCounter, dbOpenDynaset)
    iCounter = RSCounter("计数")
    Me.Caption = "仓号记录追加窗体 有记录" & iCounter & "条"
End Sub
4. 遇到的问题是:不管我怎么对RecordSet对象进行move,新增加的数据都显示在tblCastInfo的第一个~ 这是为毛呀~

 

Top
cspa 发表于:2014-03-19 14:03:03

新加记录显示的位置与此段代码无关,只与你显示的方式有关,如是否按某列排序了?

或,如果"tblCastInfo"表是用一个子窗体显示的,则在 rec.Update 语句的后面加一句:

me.Refresh

刷新一下子窗体的数据显示试试。

 



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