Andy Lacey
andy at minstersystems.co.uk
Sun Feb 8 06:00:16 CST 2009
Plenty of snow on the ground but roads ok. What about you?
andy
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo
Sent: 08 February 2009 10:02
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Combobox.oldvalue display text?
Morning Andy,
How is P'boro?
Max
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey
Sent: 08 February 2009 09:49
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Combobox.oldvalue display text?
Sorry, you'd need to store in OnCurrent or you'd get the wrong thing if
someone changed a combo twice.
Better idea perhaps might be still to use the same principle but instead of
storing to varibales store to the combo control's Tag property. Your For
Each loop would be neater that way.
Andy
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Andy Lacey
Sent: 08 February 2009 09:31
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Combobox.oldvalue display text?
Hi Stuart
What about storing the ctl's old description to a form level variable in,
say, OnGotFocus, and using that? Andy Lacey
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan
Sent: 08 February 2009 09:00
To: Access Developers discussion and problem solving
Subject: [AccessD] Combobox.oldvalue display text?
I'm logging record changes on a form into an audit trail/diary. Text boxes
are simple:
strchanges = ""
For Each ctl In Me.Controls
Select Case Left(ctl.Name, 3)
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 & "')" End
If CurrentDb.Execute strSQL
There are a number of Combo Boxes (cboFieldName) as well.
In each case, the row source is in the form:
Select Descr,ID from tblLookup
If I use the same method as per "txt", I get the Indexes in the diary ie
Fieldname changed from "6"-to-"4"
I can use use ctl.text to get
Fieldname changed from "6"-to-"New Description"
Getting "Old Description" insead of "6" is the problem
I've considered
Building Dlookup()s from cbo.Rowsource with a cbo.Oldvalue filter Using a
DAO,.Recordset to do the same, again based on the cbo.Rowsource (easier than
Dlookup, because I can use Fieldnumbers in the returned record)
Both seem a bit of a PITA since there are a lot of fields on the form.
Ideally I'd like something like ctl.oldvalue.text but that doesn't work.
Anyone got any other ideas?
--
Stuart
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com