ACTEBS
actebs at actebs.com.au
Tue Feb 4 20:04:57 CST 2014
Hi John,
The way I did it was like this thanks to Shamil and Dan:
I used the Tag property of each of the text boxes I wanted the code to
manage, in my case I set it to True. Then I created a table with the
following fields:
FieldID > Autonumber Primary Key
JobDetailID > JobDetailID this data relates to
FieldName > Actual field Name that was being recorded from the form
FieldValue > The value being recorded from the field
To save having to manage changes/edits on the users part, I just delete all
the old data relating to that Job and recreate it with whatever is there
now. The method used to save the data is as follows:
Private Sub SaveFibreData()
Dim strSQL As String
Dim rst As DAO.Recordset
Dim dbs As DAO.Database
Dim ctl As Control
strSQL = "select * from tblJobFibresField where JobDetailID = " &
Nz(Me.JobDetailID, 0)
Set dbs = OpenDatabase(BELocation)
Set rst = dbs.OpenRecordset(strSQL, dbOpenDynaset)
If rst.RecordCount > 0 Then
rst.MoveFirst
Do Until rst.EOF
With rst
.Delete
End With
rst.MoveNext
Loop
End If
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox Then
If ctl.Tag = "True" Then
If Nz(ctl, 0) <> 0 Then
With rst
.AddNew
!JobDetailID = Nz(Me.JobDetailID, 0)
!FieldName = ctl.Name
!FieldValue = ctl.Value
.Update
End With
End If
End If
End If
Next ctl
rst.Close
Set rst = Nothing
dbs.Close
Set dbs = Nothing
End Sub
This how I return the values to the field when user want to edit that data:
Private Sub GetJobFibreFieldValues()
Dim strSQL As String
Dim rst As DAO.Recordset
Dim dbs As DAO.Database
Dim ctl As Control
strSQL = "select * from tblJobFibresField where JobDetailID = " &
Nz(Me.JobDetailID, 0)
Set dbs = OpenDatabase(BELocation)
Set rst = dbs.OpenRecordset(strSQL, dbOpenDynaset)
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox Then
If ctl.Tag = "True" Then
If rst.RecordCount > 0 Then
rst.MoveFirst
Do Until rst.EOF
With rst
If ctl.Name = rst!FieldName Then
ctl = !FieldValue
End If
End With
rst.MoveNext
Loop
End If
End If
End If
Next ctl
rst.Close
Set rst = Nothing
dbs.Close
Set dbs = Nothing
End Sub
Hope that helps...
Vlad
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of John Clark
Sent: Wednesday, 5 February 2014 1:23 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Multiple Unbound Text Boxes After Update Event - ADD
ON QUESTION
I feel like I'm missing something though Arthur...what command/code do I
use? I'm thinking along the lines of a WITH statement, but that won't
exactly do it, if I'm thinking correctly.
>>> Arthur Fuller <fuller.artful at gmail.com> 2/4/2014 9:15 AM >>>
Probably you want one of the groups to be visible by default. First of all,
give all the controls within each group a similar name, such as
grp1TextBox1. That will simplify handling them. Then make all the grp2
agrp3 controls invisible. After that it's simple to handle them in your
AfterUpdate event.
HTH,
Arthur
On Tue, Feb 4, 2014 at 8:53 AM, John Clark
<John.Clark at niagaracounty.com>wrote:
> I was actually going to ask a similar question this morning...
>
> I have essentially 3 groups of questions, and I'd like to present one
> of these groups, based on the value of another field. And, I was
> wondering if I could group them and do it that way. I was even
> thinking about giving the fields a certain naming convention to do this...
>
> So, it is good to know it can be done. BUT...I'm still a bit shaky (to
> say the least) on how to carry this off.
>
Notice: This electronic transmission is intended for the sole use of the
individual or entity to which it is addressed and may contain confidential,
privileged or otherwise legally protected information. If you are not the
intended recipient, or if you believe you are not the intended recipient,
you are hereby notified that any use, disclosure, copying, distribution, or
the taking of any action in reliance on the contents of this information, is
strictly prohibited. Niagara County is not responsible for the content of
any external hyperlink referenced in this email or any email.
IF YOU HAVE RECEIVED THIS TRANSMISSION IN ERROR, PLEASE NOTIFY THE SENDER
IMMEDIATELY BY EMAIL AND DELETE THE ORIGINAL MESSAGE ALONG WITH ANY PAPER OR
ELECTRONIC COPIES.
Thank you for your cooperation.