I'd like to call a function when a bound textbox is updated and for some reasons it doesn't seem to work. It works when the textbox is unbound (or maybe I missed something)
Here is a very simplified version of the form:
http://img207.imageshack.us/img207/3618/apf4ax.jpg
MyFunction() is just a MsgBox for now and I'd like it to appear when the textbox in the main form is updated (i.e. when the text in the subform is updated). I set .AfterUpdate= "=MyFunction()" and .OnChange="=MyFunction()" but nothing happens.
(see attached code)
Is there a central reference on the net that explains the pro's and con's of each of the event types. I historically have used the OnChange event until the other day when someone suggested using the AfterUpdate instead.
Would like to ensure that I have the best event trigger being used where possible in various situations
Hi: There are two textboxs in my main form. One is bound and another is unbound. There is no entry in the unbound textbox as values come into automatically after entering some information in the subform. My question is how to i pass values from unbound textbox to bound textbox every time when the value change in unbound textbox i need to change the value in the bound textbox. When the form load there is already value in the bound textbox which i want to override based on the values from the unbound textbox.
I have a form with 7 types of weights (7 textbox rows) showing 7 weights in kgs and the others in lbs.When the user update any weight-kgs textbox, the opposite weight-lbs textbox will be updated automatically, and viceversa.Now, I'd like a fast way to code this action without writing the After Update_event for every textbox (they're 14).I have already setup textbox tags differently with "WeightKGS" and "WeightLBS", thinking about using "for each ... next" statement, but I have some problems to resolve what I want.
I need to have 2 textboxe son my form that are directly linked to data in a DB so that the user can type values in directly. Unfortunately, the data for these 2 textboxes is completely separate from the main form's recordsource.
Is it possible to do this using an expression? I've tried but it only retrieves the data rather than allows you to update it. If not, then will I have to do this through VBA code?
I have a combo box that has 3 columns. What I am trying to do is get the third column to be passed as the value to another textbox after the combo box is selected.
combo box sample data: Male/John/NY the 3rd Column which is state I would like to have it sent to the State Field...
How do I autoenter text data (firstname, last name, PK) from "exam form" (linked to its independent table) to another "billing form" in a bound textbox. I also need to make a macro attached to a "billing" button on exam form so that when I click billing the names and ID should automatically fill corresponding fields on billing form.
How to automatically populate the bound text box with data from a table for a specific entry. This is the code I wrote
Private Sub ListBox_DblClick(Cancel As Integer) Dim ListBoxSel As String ListBoxSel = Me.ListBox.Value Call proc_Update_TxtBoxes(Me.ListBox.Value) DoCmd.Close
I have a combobox which needs to call a function f(combobox.value) during its onChange event. Currently though, combobox.value appears not to change before the onChange event, and so the function receives the wrong (last) value.
Note - the actual text in the text field of the combobox *has* changed to the new value before the onChange event occurs.
Any ideas why this might be?
Edit - Also the problem doesn't happen when selecting with the mouse, only when using the up and down arrow keys to move through the list.
I use the events afterInsert of a Form frmA and the onChange of a field in the same form in order to make some changes to another Form frmB.
Everything goes as expected when the field (with the onChange event assigned) of an existing record changes. The problem starts when I add a new record which triggers both AfterInsert event (desired) and onChage event (undesired).
Is there a trick to separate the two events? Basically I want to call a Sub when the data on the field change (onChange) and a different Sub when I add a new record (AfterInsert).
On my form i have a control called WeekDate (this is always the start of the week (monday), below i have a subform (sbfrmWorksheetDetails) contained in a tab control (tabWeek) with 5 pages for each day of the week, i have written a select case statement in the onchange event for tabWeek which selects records based on the day of the week (so = WeekDate for Monday, +1 for Tuesday, +2 for Wednesday etc), this works great, i have also put a bit of code in the same onchange event that makes the default value for a new record for the field WorkDayDate in the subform +1 and +2 etc. this works great for existing records, each new line in the subform puts the right date in, however this seems to cock up when clicking on a new tab that doesn't have a record in..Here's the code.
Private Sub tabWeek_Change() Select Case tabWeek Case 0 'Monday Forms!WeeklyWorksheet!sbfrmWorksheetDetails.Form.R ecordSource = "SELECT * FROM tblWorksheetDetails WHERE (((tblWorksheetDetails.WorkDayDate) = [Forms]![WeeklyWorksheet]![WorksheetDate]))" Forms!WeeklyWorksheet!sbfrmWorksheetDetails.Form!W orkDayDate.DefaultValue = SQLDate(Me.WorksheetDate) Case 1 'Tuesday Same as above but WorksheetDate+ 1 for both select and default value. Case 2 'Wednesday Same but +2 etc. End Select End Sub
the SQLDate is some code that converts the american US date formatting to UK formatting. i'm not sure if that's the problem, but i'll post that anyway:
Function SQLDate(vDate As Variant) As String If IsDate(vDate) Then SQLDate = "#" & Format$(vDate, "dd/mm/yyyy") & "#" End If End Function
I can't quite work out what screwing this up upon adding a new record.
I have an Access 2010 form within my database in which I have a series of 8 tabs on a tab control. I am the only user who will have access to these tabs. I want to require a password in order to permit access to the tabs. The very first tab on the tab control works as a cover tab. There is no relevant information for anyone to view...only a graphic.
How to code the "on change" event of the tab control.
Hello I have a three field table viz ItemName, ItemCode, ItemRate wherein ItemCode is Autonumber. What I needed was if I select 3 from dropdown of ItemCode, both ItemName & ItemRate be displayed on the form. A combo box can use to show one value and put other, but for twin values someone sugggested to use the AfterUpdate event. Is there no other way? I don't know how to code in Access. Can you please guide? Thanks
I Can't figure out why this doesn't work on a form that I want to populate the Timestamp field when they edit the record. Looks like it works for others that have posted. Do I need to add a New Reference to the reference Libary? I'm running Access2k
I get an error box stating the procedure declaration does not match description of event or procedure having the same name.
What am I missing?
Private Sub Form_AfterUpdate() Me.Timestamp = Now() End Sub
I have a field on my form which I want to display a message box when something is entered.Private Sub BoI_AfterUpdate()Box = Msgbox("Is the booking date at least 7 days before the hiring and no more than 8 weeks in advance? If so, click Yes, otherwise, click No. You can check the calender on the Open Form under the 'Miscellanous' tab to check the date. Thank you.", vbYesNo, "Validation")If Box = vbYes Then Cancel = FalseElseCancel = TrueEnd IfEnd SubThat's my code, but I get an error after I type something in that field (BoI)."Compile error: Else without If" I have tried it with 'ElseIf Box = vbNo Then Cancel = True' but that also gives the same error.What's wrong with it?Thanks in advance. :D
I have a form with shipper information (5 fields) and a separate form/table of shippers. I want the ability to either enter shippers on the fly (one time shippers) or the option of picking a shipper from the shipper form/table and having it populate the 5 fields.
This is what I have and it works.
Private Sub FrgnShipCombo_AfterUpdate()
Me.FrgnShipName = Me.FrgnShipCombo.Column(1)
End Sub
Im looking for the how to use this method on multiple fields
I know what I want to do...but have no idea how to get started! I'm new to coding and using macros and quesries doesn't seem to help.
When field [TermDate] is updated with a value, I want to move the record from table [BadgeData] to table [Termed]. I'm sure this is easy for someone who'll be willing to throw out a few suggestions.
Also, is there anywhere in the code builder that will help identify what code (or commands) do? (Does that make sense?)
Hi. i am very thankful for all your help in my other queries for my database. i have one last question and i guess i will be done after that. i have a form which have 3 fields one is Number and the other is group and the next one is Account. all of them are combo boxes. I am trying to add this function in the Number field text box properties in afterupdate event which is as follow
Sub Number_Afterupdate() If not isnull(Number) Then Number=Format(Number, "000000") Endif End sub
The code is working fine. i debug it and run it no errors. i want to put this function in afterupdate. i copied this whole thing in the afterupdate box and when i go back to my control form try to enter numbers in the Number field it gives me this
Msaccess can't find the macro "private sub Mynumber" the macro or its macrogroup does not exist or the macro is new but has'nt been saved.
Can anyone help me out what i am doing wrong ? or can tell me steps what to do i really appreciate that and thanks alot FONZ :)
I have a split, shared database in which the Before and AfterUpdate events on my forms are not working at all. I tried setting a breakpoint to verify this and, sure enough, they are not firing.
Does anyone have any clue as to why this may be occurring?
Thanks so much for the help. I have tried searching the forum with no luck.
I'm having problems trying to get an If statement working on my form. What I have is a form with two combo boxes linked to a Calendar when you click on the arrow. I can get the dates I select from the calendar into the combo boxes which works perfectly. What I wanted to do then was create a textbox to list the number of days between each date. I have created an If statement for me to do this, which works fine. The problem I am having is that it doesn't seem to update these changes on the form after the date has been changed.
I have placed the code in the AfterUpdate event on both of the combo boxes and also in the Form Current Event.
Anyone any ideas?
If you want to see the If statement let me know, but I don't think it's that.
Below is the code I have created to calculate the values "CalcValue" and "CalcWork". The values for AssignValue, AssignPriority, Complex, Effort, Goal are all assigned by the selection made in the referred to/related combo boxes. However, the caluclated values return the concatonation of the intergers and not the sum of the integers. Additionally, if I am to use the CDec() function how do I specify the number of decimal places?
what am I missing here?
thanks!
Private Sub cboAssignPriority_AfterUpdate()
Dim CalcValue, AssignValue, AssignPriority, Complex, Effort, Goal, CalcWork As Integer
I"ve got a unbound combo box (customername) that has two events (on click); AfterUpdate and NotInList.
The AfterUpdate uses a 'me.recordsetclone' in order to display other data in controls associated with customerid/customername from the Customer table.
The NotInlist, does just that, adds a new customer name to the list along with a new autonumber (used as customerid).
The problem is that I'm getting two entries (different autonumbers). I can't figure out what I'm doing wrong. If I remove the 'AfterUpdate' event, then I can't bring up the customer's data, since then there's no connection to the customername/customerid.
If I remove the Not in List, then there's no way to add a new customer. I reconfigured NotInList many many times and still I get 2 entries. One entry has Customer 'name only', The second entry has name, address, city and the rest of the fields as entered.
I tried setting an index (on Customer table) with CustID and CustomerID, making them unique, but still I'm getting 2 entries whenever I use the 'NotInList'..........Help Help,,
Here are these events:
Code: ( text ) Private Sub customername_AfterUpdate() Dim rst As Object
Set rst = Me.RecordsetClone
rst.FindFirst "CustomerID=" & Me![customername] If Not rst.NoMatch Then
Me.Bookmark = rst.Bookmark Else 'Not found! End If Forms![Add or Delete Customer]![customername].Requery End Sub
Code: ( text ) Private Sub customername_NotInList(NewData As String, Response As Integer) Dim strSQL Dim FirstName As String Dim LastName As String Dim SpacePosition As Integer Dim lngNextID As Long
' Find the highest Cust ID in the Customers table and add 1 lngNextID = DMax("[CustID]", "Customers") + 1 custID = lngNextID
SpacePosition = InStr(NewData, " ") If SpacePosition = 0 Then MsgBox "Your entry requires a space to separate First and Last name." & _ vbNewLine & vbNewLine & _ "Please enter a First and Last Name or choose an entry from the list.", _ vbInformation, "Invalid Data !" Response = acDataErrContinue Exit Sub End If
' Trim the data into first and last name using the space position. FirstName = Trim(Left(NewData, SpacePosition - 1)) LastName = Trim(Mid(NewData, SpacePosition + 1))
If FirstName = "" Then MsgBox "You have not entered details for the first name" & vbNewLine & vbNewLine & _ "Please fix entry.", vbInformation, "Invalid Data !" Response = acDataErrContinue Exit Sub End If
If LastName = "" Then MsgBox "You have not entered details for the last name" & vbNewLine & vbNewLine & _ "Please fix entry.", vbInformation, "Invalid Data !" Response = acDataErrContinue Exit Sub End If
MsgBox "An account for this person does not exist....." & vbNewLine & vbNewLine & _ "Now creating new Customer Account.", vbInformation, "Unknown Customer Details....." strSQL = "Insert Into Customers ([custID], [FirstName], [LastName]) " & _ "values ('" & custID & "','" & FirstName & "','" & LastName & "');" 'MsgBox strsql CurrentDb.Execute strSQL, dbFailOnError Response = acDataErrAdded