Access交流中心

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

Edit 窗口使用Dlookup函数

jingguangyuang  发表于:2017-12-29 08:56:59  
复制

大家好!

      在平台自动生成的Edit窗口中,想利用Dlookup函数,引用基本资料里的资料,达到快速输入效果。

      现函数在窗体中写好,可以带出数据,但点保存时,

     有提示:

      Sub btn Save_Click()  

      System In Second Development 1.0 不能找到表达式中引用的字段  “l 1”。


     网上有有过一个同样提示的粘子,但不是在新增窗体中的错误,试过把On Error GoTo ErrorHandler释掉,然后看那句是错的,提示是“rst.Update”,然后再释掉,发现后面几句连着都是同样的变**,请问是需要在代码里改,怎样改?还是这函数写的有问题?

 

Top
jingguangyuang 发表于:2018-01-02 11:55:41

补充一下,代码如下:

        rst![CPBM] = DLookup("[SCDBM]", "tblwfscdmx", "SCDBM = '" & Me.[SCDBM] & "'") ' rstTmp![CPBM]      这句有问题




Private Sub btnSave_Click()

    'On Error GoTo ErrorHandler
    Dim strWhere      As String
    Dim strSQL        As String
    Dim cnn           As Object 'ADODB.Connection
    Dim rst           As Object 'ADODB.Recordset
    Dim rstTmp        As Object 'DAO.Recordset
    Dim blnTransBegin As Boolean


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


    Set cnn = CurrentProject.Connection


    cnn.BeginTrans: blnTransBegin = True


    strSQL = "SELECT * FROM [tblwfssdh] WHERE [WFSSBM]=" & SQLText(Me![WFSSBM])
    Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
    If rst.EOF Then
        rst.AddNew
        rst![WFSSBM] = GetAutoNumber("外发消数编码")
    End If
    rst![SSZLDHDATA] = Me![SSZLDHDATA]
    rst.Update
    Me![WFSSBM] = rst![WFSSBM]
    rst.Close


    strSQL = "SELECT * FROM [tblwfss] WHERE [WFSSBM]=" & SQLText(Me![WFSSBM])
    Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
    Do Until rst.EOF
        rst.Delete
        rst.MoveNext
    Loop
    Set rstTmp = CurrentDb.OpenRecordset("TMP_tblwfss")
    Do Until rstTmp.EOF
        rst.AddNew
        rst![WFSSBM] = Me![WFSSBM]
        rst![SCDBM] = rstTmp![SCDBM]
        rst![CPBM] = DLookup("[SCDBM]", "tblwfscdmx", "SCDBM = '" & Me.[SCDBM] & "'") ' rstTmp![CPBM]
        rst![GS] = DLookup("[SCDBM]", "tblwfscdmx", "SCDBM='" & Me.[SCDBM] & "'") ' rstTmp![GS]
        rst![CPMC] = DLookup("[SCDBM]", "tblwfscdmx", "SCDBM='" & Me.[SCDBM] & "'") ' rstTmp![CPMC]
        rst![SSSHDBM] = rstTmp![SSSHDBM]
        rst![SSSHSL] = rstTmp![SSSHSL]
        rst![SSSHGBP] = rstTmp![SSSHGBP]
        rst![SSSHDATE] = rstTmp![SSSHDATE]
        rst![SSBZ] = rstTmp![SSBZ]
        rst![SSSF1] = rstTmp![SSSF1]
        rst![SSSF2] = rstTmp![SSSF2]
        rst![SSSF3] = rstTmp![SSSF3]
        rst![SSSF4] = rstTmp![SSSF4]
        rst![SSSF5] = rstTmp![SSSF5]
        rst![SSBY1] = rstTmp![SSBY1]
        rst![SSBY2] = rstTmp![SSBY2]
        rst![SSBY3] = rstTmp![SSBY3]
        rst![SSBY4] = rstTmp![SSBY4]
        rst![SSBY5] = rstTmp![SSBY5]
        rst![SSZLDATE] = rstTmp![SSZLDATE]
        rst.Update
        rstTmp.MoveNext
    Loop
     rst.Close
     rstTmp.Close
     cnn.CommitTrans: blnTransBegin = False


     Form_frmwfssdh.RefreshDataList
     MsgBoxEx LoadString("Saved Successfully."), vbInformation


'    If Me.DataEntry Then
'        ClearControlValues Me
'        CurrentDb.Execute "DELETE FROM [TMP_tblwfss]"
'        Me.sfrDetail.Requery
'    Else
'        DoCmd.Close acForm, Me.Name, acSaveNo
'    End If


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


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


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