2014-06-13 45 views
1

我有許多形式完全相同的作業的函數副本。他們的變化是一個字段名稱。所以我把它保留在本地的原因是我不知道如何以引用的形式通過名稱引用特定的字段。這是函數:字段名稱的VBA函數

Private Function getNewXNo(ByRef theForm As Form, ByVal strCode As String) As String 
    Dim rs As DAO.Recordset 
    Dim maxNo As Long 
    Dim aNo As Long 
    Set rs = theForm.RecordsetClone 

    maxNo = 0 
    If rs.RecordCount <> 0 Then 
     rs.MoveFirst 
     Do While Not rs.EOF 
      aNo = CLng(Right(Nz(rs!applicationNo, strCode & "0000"), 4)) 
      If aNo > maxNo Then 
       maxNo = aNo 
      End If 
      rs.MoveNext 
     Loop 
    End If 
    getNewXNo = strCode & Format(maxNo + 1, " 
    Set rs = Nothing 
End Function 

有很多情況下,當我必須產生新的代碼,如BB001,BB002,APP001,APP002等函數從一個字段中引用的所有現有代碼形式並在此基礎上創建一個新的。有什麼辦法,我可以送一個字段名的全局函數,如

aNo = CLng(Right(Nz(rs!varThatContainsAFieldName, strCode & "0000"), 4)) 

感謝

回答

3

您可以在記錄訪問一個字段是這樣的:

rs("fieldname") 

,所以你可以使字段名稱成爲您的函數的參數。

+1

這將是'aNo = CLng(右(Nz(rs(varThatContainsAFieldName),strCode&「0000」),4))' – Johanness

+0

是的,那看起來不錯。 – dwo