Access交流中心

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

【平台】中新增窗体多个字段数据合成一个新值,并给到另一个字段

盼盼  发表于:2018-06-05 22:39:38  
复制

按照平台的教程套了一个小程序,在新增窗体中

第一字段是【JqID(机器编号)】,数值来自于平台的自动编号,例:HL003。

第二字段是【Jqpp(机器品牌)】,数值手动输入

第三字段是【Jqxh(机器型号)】,数值手动输入

第四字段是【Jqmc(机器名称)】,数值打算用    机器名称 = 机器品牌 + 机器型号 + 机器编号后3位的形式。

请问:

1、代码是这样写么?

     Me.Jqmc = Me.Jqpp + Me.Jqxh + Right(Me.JqID, 3)

2、这个代码应该写在“保存按钮”的什么位置才能成功?

Private Sub btnSave_Click()

    On Error GoTo ErrorHandler

    If Not CheckRequired(Me) Then Exit Sub
    If Not CheckTextLength(Me) Then Exit Sub

    Dim cnn: Set cnn = GetADOConnection()

   'cnn.BeginTrans
   'Dim blnTransBegin As Boolean: blnTransBegin = True

    If Nz(Me![JqID]) = "" Then Me![JqID] = GetAutoNumber("JqID-tblCodeJq")
    '-------------------------------------------------------------------------------
            Me.Jqmc = Me.Jqpp + Me.Jqxh + Right(Me.JqID, 3) '<=============放在这里??
    '-------------------------------------------------------------------------------
    Dim strSQL: strSQL = "SELECT * FROM [tblCodeJq] WHERE [JqID]=" & SQLText(Me![JqID])
    Dim rst:    Set rst = ADO.OpenRecordset(strSQL, adLockOptimistic, cnn)
    If rst.EOF Then rst.AddNew
    UpdateRecord Me, rst
    '你的自定义代码
    'rst!Field1 = Me!Field1
    'rst!Field2 = Me!Field2
    rst.Update
    rst.Close

   'cnn.CommitTrans
   'blnTransBegin = False

    RequeryDataObject gsfrList
    MsgBoxEx LoadString("Saved Successfully."), vbInformation

    If Me.DataEntry Then
        Me.InitData
    Else
        DoCmd.Close acForm, Me.Name, acSaveNo
    End If

ExitHere:
    Set rst = Nothing
    Set cnn = Nothing
    Exit Sub

ErrorHandler:
   'If blnTransBegin Then
   '    cnn.RollbackTrans
   '    blnTransBegin = False
   'End If
    RDPErrorHandler Me.Name & ": Sub btnSave_Click()"
    Resume ExitHere
End Sub



 

Top
nowtoo 发表于:2018-06-06 00:11:22

机器编号机器品牌机器型号的更新事件里都写上这句代码



仙来 发表于:2018-06-06 10:21:19

.....

'你的自定义代码
    'rst!Field1 = Me!Field1
    'rst!Field2 = Me!Field2

    Me!Field3= Me.Jqpp + Me.Jqxh + Right(Me.JqID, 3)
    rst.Update
    rst.Close

   'cnn.CommitTrans
   'blnTransBegin = False

    RequeryDataObject gsfrList
    MsgBoxEx LoadString("Saved Successfully."), vbInformation
.......

试试这样可行

 



盼盼 发表于:2018-06-06 21:36:52
回 2楼,3楼。您两们的方法我都试过了。不行。本想传个附件,但是怎么弄都超过3M。。。。


仙来 发表于:2018-06-07 08:30:12

.....

'你的自定义代码
    'rst!Field1 = Me!Field1
    'rst!Field2 = Me!Field2

    'rst!Field3= Me.Jqpp + Me.Jqxh + Right(Me.JqID, 3)
    rst.Update
    rst.Close

   'cnn.CommitTrans
   'blnTransBegin = False

    RequeryDataObject gsfrList
    MsgBoxEx LoadString("Saved Successfully."), vbInformation
.......

试试这样可行

 





宏鹏 发表于:2018-06-07 09:06:10
UpdateRecord Me, rst
    '把上面一句代码注释掉,下面改成自己写的新增代码
    'rst!Field1 = Me!Field1
    'rst!Field2 = Me!Field2



盼盼 发表于:2018-06-07 20:46:47
宏鹏版主。如果平台的这个新增窗体改成自己的新增代码,那是不是平台修改窗体的功能就不能实现了?或者说还要在做一个修改窗体?

云中燕儿 发表于:2018-07-14 10:09:56
写个更新查询

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