Access交流中心

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

平台窗体编辑修改的问题

qin  发表于:2013-12-09 16:50:50  
复制

 

请教各位;

 在平台上生成的窗体,项目名称的字段是用公式引用来的;请高手指教,在对窗体进行编辑时有没部分数据没有显示,需要重新再次输入,见下方截图,谢谢!

 

整个代码如下:

Option Compare Database

Private Sub Form_Load()
    On Error GoTo ErrorHandler
    Dim strSQL As String
    Dim rst    As Object 'ADODB.Recordset
   
    Me![运输令流水号].Enabled = False
    If Nz(Me.OpenArgs) <> "" Then
        strSQL = "SELECT * FROM [表14运输计划] WHERE " & Me.OpenArgs
        Set rst = OpenADORecordset(strSQL, , CurrentProject.Connection)
        Me![运输日期] = rst![运输日期]
        Me![承运商] = rst![承运商]
        Me![运输令流水号] = rst![运输令流水号]
        Me![代办其它业务] = rst![代办其它业务]
        Me![项目编号] = rst![项目编号]
        Me![项目名称] = rst![项目名称]
        Me![发货城市] = rst![发货城市]
        Me![目的地城市] = rst![目的地城市]
        Me![产品名称] = rst![产品名称]
        Me![产品重量] = rst![产品重量]
        Me![车型] = rst![车型]
        Me![到车时间] = rst![到车时间]
        Me![车辆(台)] = rst![车辆(台)]
        Me![到货日期] = rst![到货日期]
        Me![备注] = rst![备注]
        rst.Close
    End If
   
ExitHere:
    Set rst = Nothing
    Exit Sub
   
ErrorHandler:
    MsgBoxEx Err.Description, vbCritical
    Resume ExitHere
End Sub
   
Private Sub btnSave_Click()
    On Error GoTo ErrorHandler
    Dim strSQL        As String
    Dim rst           As Object 'ADODB.Recordset
   
    If Not CheckRequired(Me) Then Exit Sub
    If Not CheckTextLength(Me) Then Exit Sub

    strSQL = "SELECT * FROM [表14运输计划] WHERE [运输令流水号]=" & SQLText(Me![运输令流水号])
    Set rst = OpenADORecordset(strSQL, adLockOptimistic, CurrentProject.Connection)
    If rst.EOF Then
        rst.AddNew
        Me![运输令流水号] = GetAutoNumber("运输令流水号")
        rst![运输令流水号] = Me![运输令流水号]
    End If
    rst![运输日期] = Me![运输日期]
    rst![承运商] = Me![承运商]
    rst![代办其它业务] = Me![代办其它业务]
    rst![项目编号] = Me![项目编号]
    rst![项目名称] = Me![项目名称]
    rst![发货城市] = Me![发货城市]
    rst![目的地城市] = Me![目的地城市]
    rst![产品名称] = Me![产品名称]
    rst![产品重量] = Me![产品重量]
    rst![车型] = Me![车型]
    rst![到车时间] = Me![到车时间]
    rst![车辆(台)] = Me![车辆(台)]
    rst![到货日期] = Me![到货日期]
    rst![备注] = Me![备注]
    rst.Update
    rst.Close
   
    MsgBoxEx "保存成功!", vbInformation
    If IsNull(Me.OpenArgs) Then
        ClearControlValues Me
    Else
        DoCmd.Close acForm, Me.Name, acSaveNo
    End If
   
ExitHere:
    Set rst = Nothing
    Exit Sub
   
ErrorHandler:
    MsgBoxEx Err.Description, vbCritical
    Resume ExitHere
End Sub
   
Private Sub btnCancel_Click()
    On Error Resume Next
    DoCmd.Close acForm, Me.Name, acSaveNo
End Sub

 

 

 

 

 



 

 

Top
123木头人 发表于:2013-12-09 19:27:33
看你的代码没有问题,不过我发现你用组合框了,我现在怀疑是组合框的列数或者列宽没有设置好。

qin 发表于:2013-12-09 22:01:05

应该不是这个问题。在生成的窗体我增加引用了函数引用公式,在平台上执行编辑功能就会出现上面的问题。

如果没有增加函数就不会出现这个丢失数据这个问题



落尘_小新 发表于:2013-12-09 22:28:52

发现你的项目名称是用了IIF函数来判断取值的.这样的话.

你可以把  rst![项目名称] = Me![项目名称] 这句代码改一下.

加上 IF 来判断一下即可..



nowtoo 发表于:2013-12-11 23:15:25
感觉思路不对,【项目名称】在窗体中用公式导入,会出现错误提示。何不换个思路,用平台生成的代码,依样画宽瓢,复制一段用代码导入呢。

nowtoo 发表于:2013-12-11 23:21:39

下面中间一段代码,我就是通过复制第一段代码,调用查询【qryzyfy】中的数据,供参考。

strSQL = "SELECT * FROM [tblLp] WHERE [baID]=" & SQLText(Me.OpenArgs)
    Set rst = OpenADORecordset(strSQL, , cnn)
    Me![baID] = rst![baID]
    Me![cxrxm] = rst![cxrxm]
    Me![fyjs] = rst![fyjs]
    Me![lsg] = rst![lsg]
    Me![lssj] = rst![lssj]
    Me![cID] = rst![cID]
    rst.Close
   
    strSQL = "SELECT * FROM [qryzyfy] WHERE [baID]=" & SQLText(Me![baID])
    Set rst = OpenADORecordset(strSQL, , cnn)
    Me![Text19] = rst![费用小计]
    Me![Text21] = rst![自费小计]
    Me![Text23] = rst![其他途径小计]
    Me![Text25] = rst![住院天数]
    rst.Close

    strSQL = "SELECT * FROM [tbljhmx] WHERE [baID]=" & SQLText(Me![baID])
    Set rst = OpenADORecordset(strSQL, , cnn)
    Set rstTmp = CurrentDb.OpenRecordset("TMP_tbljhmx")
    Do Until rst.EOF
        rstTmp.AddNew
        rstTmp![baID] = rst![baID]
        rstTmp![jgID] = rst![jgID]
        rstTmp![xzID] = rst![xzID]
        rstTmp![bxje] = rst![bxje]
        rstTmp![bdnd] = rst![bdnd]
        rstTmp![jhje] = rst![jhje]
        rstTmp.Update
        rst.MoveNext



123木头人 发表于:2013-12-16 15:03:04

这么多天了还没有解决,还是把MDB贴出来吧



仙来 发表于:2014-04-12 16:51:10

你的问题解决了。我也遇到同样的问题,我的思路是将代码的顺序改一下,放在最后,虽然也出现报警,但数据能显示。如:

Me![代办其它业务] = rst![代办其它业务]
        Me![项目编号] = rst![项目编号]
       Me![发货城市] = rst![发货城市]
        Me![目的地城市] = rst![目的地城市]
        Me![产品名称] = rst![产品名称]
        Me![产品重量] = rst![产品重量]
        Me![车型] = rst![车型]
        Me![到车时间] = rst![到车时间]
        Me![车辆(台)] = rst![车辆(台)]
        Me![到货日期] = rst![到货日期]
        Me![备注] = rst![备注]

        Me![项目名称] = rst![项目名称]
        rst.Close

 

   rst![项目编号] = Me![项目编号]
    rst![发货城市] = Me![发货城市]
    rst![目的地城市] = Me![目的地城市]
    rst![产品名称] = Me![产品名称]
    rst![产品重量] = Me![产品重量]
    rst![车型] = Me![车型]
    rst![到车时间] = Me![到车时间]
    rst![车辆(台)] = Me![车辆(台)]
    rst![到货日期] = Me![到货日期]
    rst![备注] = Me![备注]

    rst![项目名称] = Me![项目名称]
    rst.Update

 



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