That makes sense.  Thanks Bob.  I'll give that a try.

--- In AccessDevelopers@yahoogroups.com, "Robert Peterson" 
<[EMAIL PROTECTED]> wrote:
>
> Hi,
> 
> I am not sure I understand the business problem you are trying to 
solve. 
> This is how I read your code (skipping the debug.print lines):
> 
> 1. Add the trans amount to the account value
> 
> 2. Compare the new account value to the budget value, if it is 
greater than
> the budget then
> 3. Open a recordset on the table called "tblAccount"
> 
> 4. For the first record in the table:
> 5. Assign the value stored in AccountName to the variable 
called "str"
> 6. Assign the value stored in AccountValue to the variable 
called "value"
> 7. Assign the value stored in AccountBudget to the variable 
called "budget"
> 8. Add the variable "value" and the variable "budget" together and 
store the
> result in the variable called "value".
> 9. Move to the next record and repeat steps 5 through 8. Continue 
until you
> get to the end of the recordset.
> 
> 
> You assign values to your variables but never send the change back 
to the
> recordset. Your code is looping through all the records in the 
table and
> doing nothing. Also, if you are expecting the number stored in the 
table to
> be the new number that shows on your form you need to force the 
form to save
> the current record. I would use:
> 
>       If me.dirty then me.dirty=false
> 
> between steps one and two.
> 
> If you add:
>       rs.edit
>       rs!YourFieldToUpdate = value
>       rs.update
> 
> before the rs.movenext it will write the number contained in the 
variable
> you call value back to the table. 
> Now that I've written it out in plain language you probably are 
intending to
> increase the budget amount since the Account Value is now over 
budget. The
> field to update would be rs!AccountBudget. However if you update
> AccountBudget with the ammount in "value" you will be more than 
doubling
> your budget and you probably don't intend for that to happen.
> 
> Let me know if I'm reading this wrong.
> 
> Bob Peterson
> 
> P.S.
> "value" is a reserved word and should not be used as a variable 
name. 
> See - 
> http://support.microsoft.com/default.aspx?scid=kb;en-us;286335
> 
> 
>  
> 
> 
> -----Original Message-----
> From: AccessDevelopers@yahoogroups.com
> [mailto:[EMAIL PROTECTED] On Behalf Of David Lamb
> Sent: Thursday, November 17, 2005 6:14 PM
> To: AccessDevelopers@yahoogroups.com
> Subject: [AccessDevelopers] updating a table from a form
> 
> This code is for a family budget application.  New money is 
deposited into
> an "income" account until the account goes over a specified level, 
then all
> of the accounts (categories like groceries, gas, etc.) are 
increased by
> their budget amount.  When the code runs, it seems to work.  
Debug.print
> shows the updated figures in the immediate window.
>  But when I open the table, the values remain unchanged.  How do I 
make this
> stick in the table?  The key code in question is inside the if-then
> statements.  Many thanks for any help you can offer.
> 
> Private Sub TransAmount_AfterUpdate()
> Dim db As Database, rs As Recordset
> Dim str As String
> Dim value As Currency
> Dim budget As Currency
> 
>     If Combo9 = "credit" Then
>         DoCmd.RunCommand acCmdRefreshPage
>         frmSubTransAccount!AccountValue = _    
> frmSubTransAccount!AccountValue + TransAmount
>         If frmSubTransAccount!AccountValue > _
> frmSubTransAccount!AccountBudget Then
>             Set db = CurrentDb()
>             Set rs = db.OpenRecordset("tblaccount")
>             rs.MoveFirst
>             
>             Do Until rs.EOF
>                 str = rs!AccountName
>                 value = rs!AccountValue
>                   Debug.Print str & " value = " & value
>                 budget = rs!AccountBudget
>                   Debug.Print str & " budget = " & budget
>                 value = value + budget
>                   Debug.Print str & " new value = "; value
>                 rs.MoveNext
>             Loop
>         
>             rs.Close
>             Set rs = Nothing
>             Set db = Nothing
>         End If
>     End If
> 
> End Sub
> 
> 
> 
> 
> 
> ------------------------ Yahoo! Groups Sponsor --------------------
~--> Get
> fast access to your favorite Yahoo! Groups. Make Yahoo! your home 
page
> http://us.click.yahoo.com/dpRU5A/wUILAA/yQLSAA/q7folB/TM
> --------------------------------------------------------------------
~-> 
> 
> 
> Please zip all files prior to uploading to Files section. 
> Yahoo! Groups Links
>






------------------------ Yahoo! Groups Sponsor --------------------~--> 
AIDS in India: A "lurking bomb." Click and help stop AIDS now.
http://us.click.yahoo.com/VpTY2A/lzNLAA/yQLSAA/q7folB/TM
--------------------------------------------------------------------~-> 


Please zip all files prior to uploading to Files section. 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/AccessDevelopers/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to