[AccessD] Combobox.oldvalue display text?

Stuart McLachlan stuart at lexacorp.com.pg
Sun Feb 8 22:14:59 CST 2009


Thanks for the various suggestions, they got me thinking.

In the end, it was Max's mention of Column() that gave me the hint I needed.
When I thought  about it some more, I didn't need to hit the lookup tables at all, all the old 
info was already available in the two columns in each Combobox's List.  I just needed to 
iterate through the list, looking for a match in Column(1) and pulling the relevant description 
from Column(0),

For anyone who might be interested, here's the complete logging procedure.

Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctl As Control
Dim strOldValue As String
Dim lngLoop As Long
Dim strSQL As String
strchanges = ""
For Each ctl In Me.Controls
Select Case Left(ctl.Name, 3)

   Case "cbo"
     If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then
        If Nz(ctl.OldValue, 0) = 0 Then
           strOldValue = "BLANK"
        Else
           For lngLoop = 0 To ctl.ListCount - 1
              If CLng(ctl.Column(1, lngLoop)) = ctl.OldValue Then
                 strOldValue = ctl.Column(0, lngLoop)
                 Exit For
              End If
           Next
        End If
        strchanges = strchanges _
            & Mid$(ctl.Name, 4, Len(ctl.Name) - 5) _
            & " changed from """ _
            & strOldValue _
            & """-to-""" _
            & Nz(ctl.Column(0), "BLANK") & """" & vbCrLf
     End If

  Case "txt"
    If Nz(ctl.Value, "") <> Nz(ctl.OldValue, "") Then
       strchanges = strchanges & Mid$(ctl.Name, 4) _
          & " changed from """ _
          & Nz(ctl.OldValue, "BLANK") _
          & """-to-""" _
          & Nz(ctl.Value, "BLANK") & """" & vbCrLf
    End If

  Case Else
End Select
Next

If strchanges > "" Then
   strchanges = Replace(strchanges, "'", "''")
   strSQL = "Insert into tblDiary " _
            & " (DTG,TenderID,creator,comments)" _
            & " values (Now()," & TenderID & ",'" _
            & GetUserName() & "','" & strchanges & "')"
   CurrentDb.Execute strSQL
End If
End Sub




More information about the AccessD mailing list