I'm using Pat Hartman's code to select items from a list box and then append the records to a table. If a user doesn't select anything before clicking the buttom I'm trying to give them an error message. I've tried it in various places but can't get it to work. The attached is giving me the error message regardless of whether they have selected anything or not.
On Error GoTo Err_CreateAttendanceRecords_Click
Dim i As Variant
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim qd As DAO.QueryDef
Set dbs = CurrentDb
Set qd = dbs.QueryDefs!qrynewvaluations2
Set rst = qd.OpenRecordset
If i = 0 Then
MsgBox "You must select at least one property before continuing"
Exit Function
End If
Next i
Set rst = Nothing
Set qd = Nothing
MsgBox "Records Created"
exit_createattendancerecords_Click:
Exit Function
Err_CreateAttendanceRecords_Click:
Select Case Err.Number
Case 3022 'ignore duplicate keys
Resume Next
Case Else
MsgBox Err.Number & "-" & Err.Description
Resume exit_createattendancerecords_Click
End Select
If you open the attached sample you will see what my problem is.
I have Form /Subform with look up combo that will not allow duplicate entries in same subform record. This works fine, access displays an error when a duplicate has been added as it should. What I want to do is trap that error myself and display a msgbox that will allow the entry to undo (the msgbox undo etc I can handle, it the trapping of the error)
I have a form with 22 data fields. There are 4 entry flow paths. (1) is 1 to 9, 10, 20 to 22 (2) is 1 to 9, 11 to 14, 20 to 22 (3) is 1 to 9, 15 to 17, 20 to 22 (4) is 1 to 9, 15 to 17, and stop at 19. If information is in Field 10, then I need to prohibit entry in the other 3 paths. How can I do this?
1.i trapped error 3314 and other errors at my custm buttons(save,edit...) but... at my 2 forms(one single and the other continuous, access gives me an error about an empty field in a table (primary id), when i press tab (it moves to next record). The same action has my continuous form when i click at an empty field at next record or pressing tab with empty values at primary fields.
What can i do to post my own messages?
2. I have a text box (a) that takes value form an other text box (b): b=2*a. both text boxes send values to a table How can i prevent user from chanching the value on (b) text box?
thanks in advance Dimitris Greece (sorry for my bad english)
How do I programmatically force an error dialog to make a certain choice?
I'm able to trap the dialog via the following code:
Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 7787 Then 'record updated by another "user" (subform) MsgBox "Error trapped!" Response = acDataErrContinue Else Response = acDataErrDisplay End If End Sub
Problem is, if I bypass the 7787 error in this manner, it defaults to dropping the changes, rather than saving the record, which is what I want. (Both are choices on the dialog.)
i am using access against an Oracle DB through an ODBC driver, and when appending records to a local table, if access gets an Oracle record error "#deleted", the append query aborts. . . that's fine, but I can't figure out how to trap the error to get the rest of the records. . .
Hi, I have a button in a form that loads a report, if there is no data in the report then 2 error messages are displayed, however as these messages have no affect and they do no harm as such I would like to prevent them from being displayed. The error messages are error 91 “invalid use of isnull” error and error 2501 “cancel event error message”
I’ve been able to prevent either error 91 from being displayed or alternatively 2501 using a single if statement but not both of them together using two if statements.
(If error 94 is displayed, I would still like the report to open, error 2501 is displayed after the report is closed if there’s no data & i just want this message not to be shown)
Any ideas what im doing wrong? :confused: any help much appreciated
Regards
Kevin
Below code works ok (to trap just the one error message):
Err_cmdPreview_Click: If Err.Number = 2501 Then ' ignore cancel event error Else MsgBox Err.Number & " - " & Err.Description End If Resume Exit_cmdPreview_Click
End Sub
But the below code here doesn’t work (when I use 2 if statements to try & trap both of the error messages)
Err_cmdPreview_Click: If Err.Number = 94 Then ' ignore isnull error DoCmd.OpenReport stDocName, acNormal
Else If Err.Number = 2501 Then ' ignore cancel event error Else MsgBox Err.Number & " - " & Err.Description End If
I am importing .txt files into Access table via VBA code (i.e., not via Saved Import Spec). Is there a way to trap the error if a particular field does not get imported due to incorrect format? When you import via Saved Import Spec and there are errors in formatting, Access generates an 'ImportErrors' table, which tells you which fields could not be updated.
Is there a way to generate a similar 'ImportErrors' table with VBA error checking?
I need a way at preventing users from using the scroll funtion on mouses from creating a multitude of balnk records and hence was looking at ghudson better mouse trap as a way of doing this... this is the way forward isnt it?
Looking at the code it starts with... 'For those of us not using Access XP, we have a challenge to prevent 'our users from advancing to another record if they do not use the controls 'we want them to use or to prevent them from bypassing our validation 'procedures too ensure the current record is okay to be saved.
How do you prevent this from happening in Access XP?? Access XP = 2002 does it not?
First off sorry about the really bad layout…..I don’t know how to do all the fancy stuff but really wanted to share this because it seams like a lot of people wanted help with this.
So here is what I have going on.
I have a form to add a record, and I have a number of fields, then an “Add Record” button and a “Cancel Record” Button. What I wanted to do was:
A: Stop the form from going to another “New Record Form” when moving the mouse wheel B: Stop the form from going to another “New Record Form” when pressing the “Tab” key
Here is what you got to do to solve the mouse problem:
1.) Create a field in the form that has the Name “MouseWheel Move”, and set the “Visible” property to “No” 2.) Enter the Fallowing: Private Sub Form_Load() Me![MouseWheel Move] = "No" End Sub 3.) Enter The Fallowing: Private Sub Form_MouseWheel(ByVal Page As Boolean, ByVal Count As Long) Me![MouseWheel Move] = "Yes"End Sub 4.) Enter The Fallowing: Private Sub Form_BeforeUpdate(Cancel As Integer) If Me![MouseWheel Move] = "Yes" Then DoCmd.CancelEvent Me![MouseWheel Move] = "No" End If End Sub
Here is what you got to do to solve the Tab problem:
The last item on my form is my “Cancel” button; so when the focus is on my “Cancel” button (ie. the last item on the form) and I press tab I want the focus to go to the first field on my form.
Private Sub Cancel_Button_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 9 Then Me![Field Name for the First Item on the Form].SetFocus End If End Sub
One more thing, I am using Microsoft Access 2002 (10.6771.6735) SP3 and it works fine
I know this topic has been covered over and over but I've searched and searched and can't find my answer. I did find one post with a link to a possible answer but the link was broken.
My form has a required field. When a user attempts to X out of the form I have code in the Before Update event that checks this field and if it is blank:
MsgBox "Payment Terms must be filled in before closing the form" Me.PaymentTerms.SetFocus Cancel = True
The message box appears, but then the
You can't save this record at this time...blah blah blah.....
dialog appears and then the form closes.
How can I prevent the user from closing the form if this field is blank? It seems like once the X is clicked there is no turning back. I realize that I could remove the close button (X) from the form and use a command button instead but this may only mess up the users who have been using this DB for years. Is there any way to go backward once the close button has been clicked?
I posted this question about an hour ago but I seem to have been logged out by the time that I actually pressed "send", so I don't know whether it was posted correctly - I can't find it!
I've created four buttons on a form to negotiate my way through the records. When I come to the end, a message box is shown stating that the next record cannot be found (it doesn't exist). Can I trap this message and use it to activate some code? I thought about a form popping up (in "corporate" colours to match the remainder of the database) or a form asking whether I want to add another record.
I looked at the code that Access generated when I made the buttons, and I saw the following:
I "remmed" out the middle line, but the automatic message box still appeared. I added a line of code: <MsgBox Err.Number>, but that didn't give a result, so I guess that the message box that's being shown isn't generated via this snippet of code.
I know that I could disable the relevant button when the record number reaches the end or add another button to add a new record, but I'd like to trap this automatic message box. Can I do so, and, if so, how?
Hi guys . i wonder how i can trap the following errors in access 2000 forms. I have the database tables in sql server 2000 and front end is made by access 2000 forms. I be happy if some one show me how i can trap these errors and promt aproperte message to the user when they violate them using forms.Thanks
1)Violation of not null constraint 2)primary key violation 3)Trigger violation 4)and other erros
I'm using GHudson's A Better Mouse Trap code. It works great. However, I added other code from http://www.databasedev.co.uk/image-form.html to get and save the path to image files and now I think there is a conflict between the sets of code.
The Images tab on the form frm_CreateNewSpec is where I have problems. The error messages are definitely from Mouse Trap...I just don't know how to resolve the problem.
I've probably missed something simple, but don't know what.
Any and all assistance is greatly appreciated by this novice.
Im new to asp and access and have been having this problem for serveral weeks.
Every couple of days, all the asp pages on my site that communicate with the database start having 500 internal errors. i turned off the "Show friendly error messages" and one page gave me this specific error:
Microsoft JET Database Engine error '80004005'
Unspecified error
/admin/submitlogin.asp, line 8
I have tried a million things and have no idea why this is happening. Im not sure what other information i should post in order to see the problem. Any help would be greatly appreciated. Thank you,
Private Sub NextApplication_Click() On Error GoTo Err_NextApplication_Click DoCmd.GoToRecord , , acNext
Exit_NextApplication_Click: Exit Sub
Err_NextApplication_Click: If Err.Number = 2105 Then MsgBox "Cannot navigate to the next record. This is the last record." Else MsgBox Err.Description End If
Resume Exit_NextApplication_Click
End Sub
but even when this error occurs nothing is being properly handled the way i specified - any ideas ?
Does anybody know what this error message refers to?
"Reserved Error (-1517); there is no message for this error."
It just started happening today, and I haven't even made any changes to the database. It occurs when I hit a button I have to run a macro.
the macro does the following: 1) Shows all records 2) Requery 3) ApplyFilter. The Where Condition for the filter is: Right([tblContracts].[JobNum],4)=Right([Forms]![FrmContProc].[txtFindJobNum],4)
The weird thing is that it only occurs if the Form window is taller than 1/2 of my viewable area. If the Form window is 1/2 the viewable area or shorter, it works OK. This was running fine earlier today, but about 4:00 pm (03/31/06) this started happening.
If anybody knows what this error means, or how to get rid of it (I really need to use this window in full-screen) then please let me know.
Okay, I'm kind of stumped here.I have a subform that has a button that sends a user to a "sibling" subform on another tab page, pass some information to ensure they are adding more details to the same records rather than creating two separate record.First time I programmed it, I got an error 3022 (keys cannot have duplicate values). I checked the query of the sibling subform and saw that the ID is from the one side table. I changed it so many table's foreign key is used. Second try, I got an error 3341 (there isn't a matching key in one side table).After some thinking, it also occured to me that I had set the query this way to allow addition of new record which wouldn't be possible if I had the query pulling the many side key, not the one side key.How do I get the subform to accept the ID that is being passed and create a new record using that ID?:confused:
Private Sub Consolidate_Click() Dim temp As Variant Excel.Application.Visible = True temp = Dir(CurrentProject.Path & "Inputs") Do While temp <> vbNullString
[Code] ....
From the second iteration its not picking the error.
Is it enough for error handling to code the on error property for each form? With enough I mean error handling which lets you resume the program.
Ontherwise I have to code (or call a procedure) for each coded event which i wouldn't prefer
For instance now I'm putting error handling in each event but would consider it more efficient if it can be placed once in each form Private Sub cmdReport_Click() On Error GoTo Err_cmdReport_Click
Not sure how to work in the '* ROLL *' into this SQL statement. The query statement works fine ... I have tried different quotation methods ( Not Like " & " ' * ROLL * & ' " & " ) AND .... )
sql = "SELECT DISTINCTROW Sum(CDbl([Scrap Factor])) AS SumOFScrap FROM [RT: Signpro1: Costs] LEFT JOIN [DT: InventoryExtend] ON [RT: Signpro1: Costs].[Part Number] = [DT: InventoryExtend].[Part#] GROUP BY [DT: InventoryExtend].CategoryID, [DT: InventoryExtend].Description, [forms]![signpro sign estima parameters]![combo14] HAVING ((([DT: InventoryExtend].CategoryID)=30) AND (([DT: InventoryExtend].Description) Not Like '* ROLL *') AND (([forms]![signpro sign estima parameters]![combo14])=1));"
hi guys i was wondering if you can help me this is my code: i have a main form with this code, this form contains a subform linked by the All_PricingID
Set rst = CurrentDb.OpenRecordset("tblAll_Pricing") 'main table ' adding data to the table rst.AddNew ' Main table rst!All_PricingID = Me.txtPricingID 'Main table pk rst!MainContract_ID = Me.cmbMainContract 'combo box in parent form rst!ItemNumber = Me.txtItem 'Main form text rst.Update
'sub Table Set rst2 = CurrentDb.OpenRecordset("tblPricing") 'sub table For varItem = 0 To Me.lstsubContracts.ListCount - 1 'this is a list in the main form '--- loop through all the items in the list box and create a new row in the subform for each subcontract in the listbox lstSubcontracts. rst2.AddNew rst2!ID = Me.All_PricingID 'sub table foreign key rst2!SubContractID = Me.lstsubContracts.Column(0, varItem) 'sub table rst2.Update Next varItem '--- close the tables rst.Close rst2.Close Set rst = Nothing Set rst2 = Nothing
the subform appears correctly with the rows i wanted added but i need the user to be able to edit a column in the subform for the rows just created (my form is on datasheet view). but everytime i move to cursor into the subform, i can't even scroll up and down.
i keep getting an error that says :
The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. (Error 3022)
but when i check my tables tblAll_Pricing and tblPricing , everything is inserted correctly according to my recorset above, do you know why this is happening? and why i am not able to edit my subform. my subform allowsedits and additions.