Prevent Form From Displaying New Record And Save It When Form Requery Or Close
Aug 26, 2014
I have a split form that's like a list of pending tasks. The data source is a linked SharePoint 2013 list where users submit requests. The user takes the information from each record and performs an action. When it is done, the user presses a button and the task status changes from "Pending" to "Processed". The form record source is based on a query that finds only records with a status of "Pending" so when the user changes the status of the task, it is removed from the list. It works fine except when there is only one task left in the work list. If the user processes the last task, the form refreshes and it goes to a new empty record and I get an error message that says I must enter a value into one of the required fields. I tried making the field non-required but it just creates an empty record in the table.
I have a simple EXIT command button that runs these macro actions: save record, close form. I also have a SAVE command button that runs this macro action: save record. If a user closes the form without clicking either the EXIT or SAVE command buttons, will the record changes be saved in the datasource table.
I have found from testing that the data is always saved even if the user does not click the EXIT or SAVE buttons, but I wanted to be absolutely certain. Is this correct ?
I'm a newbie to the forum, but hope that someone can point me in the right direction to solve a problem.
Background: I have a db that I use much like Quicken to maintain a ledger and reconcile accounts. To reconcile credit card transactions, I have a continuous form that lists each transaction as a record in the Detail. Each record has Check Boxes for Yes/No criteria pertaining to "Cleared Status", "On Statement", and "Missing Receipt". Checking the box for "On Statement" allows a subsequent report to include the items that are checked. Likewise, an Update Query used later in the process sets all all items in the reconcile to "cleared" so that do not reappear on the list of items to reconcile. In order to cause the Report and the Update Query to reassess the Yes/No status for each item and thus function properly, I have set the Event Proceedure for these Check Boxes to Requery the underlying data.
Problem: As you can imagine, the list of Credit Card Transactions is a long one. Each time a Check Box is clicked, the requery causes the list of records to jump back to the very top of the list. This really slows down the process of completing the reconcile. Is there a way to hold the continuous list in the detail section still as the requery takes place?
I thought I had my login form really locked down by turning off all the navigation buttons including the control box and close button. I also disabled the navigation pane and allow full menus. The login Menu automatically displays when the database is opened. After I created the .accde I was still able to right click in the top area (where the name of the form is) and close the form. Actually when I right clicked I got Save, Close All, Close, and Form View. Is there something else I need to turn off?
frmTaskTracker -subfrmInbox (Datasheet View - based on a query)
frmUpdateInboxItem
subfrmInbox displays a summary of tasks on a task list. The user navigates to frmUpdateInboxItem from frmTaskTracker. After updating a record from frmUpdateInboxItem, it is possible that it the record in question will no longer meet the requirements to have it listed on subfrmInbox.
I have attempted to add code to the on close event of frmUpdateInboxItem to requery the sub form on frmTaskTracker but am not getting the syntax correct.
correct my code? Alternatively is there is a more correct way to do this, I'd be happy to learn it.
Code: Option Compare Database Private Sub cmdClose_Click() Me.[frmTasktracker]![subfrmInbox].Requery DoCmd.Close acForm, "frmUpdateInboxItem" End Sub
I have validation logic that runs to test whether certain fields are inputted properly etc on my form. I call these methods in the Before_Update of each form. But How do i actually STOP the update from happening? OR how do i stop the form from being closed? Right now, I just give all these warnings but the save still happens!
I am working on a web database with a form which is bound to an underlying web table where the submissions occur.My challenge is that the fields on the form get submitted to the table even before the submit button is clicked regardless of whether the form was completely filled.
My request is that I want the form to only submit to the submission table only when the submit button is clicked.When I searched on the net, the only solutions I got are VBA written code but my web database cannot use VBA code.
VBA code:
Option Compare Database Option Explicit Private blnGood As Boolean Private Sub cmdSave_Click() blnGood = True Call DoCmd.RunCommand(acCmdSaveRecord) blnGood = False End Sub
hello again guys i got another question... i have a "quit" button on my form that closes access. my problem is that if there is something selected from my list box and something entered into my textbox, it will add the record when i click quit. what can i do to make it NOT add the record. i've searched on google all day and i've been trudging through a bunch of forums and still can't find anything. i did see something about the dirty property, but i can't seem to figure out how i can use that to my advantage. please help!!! thanks a bunch *j
I have a timer form which closes the database after a period of time with DoCmd.Quit. Another form is open at this point but if a user has left it in the middle of editing it I want to be able to save the record in the other form and close it before the timer form closes the database.
What VBA do I need in the timer form to save the record and close the other form before DoCmd.Quit? Just to be clear the code is...
Private Sub Form_Timer() On Error Resume Next Me.Tag = Val(Me.Tag) - (Me.TimerInterval / 1000) Me.Caption = "The database will exit in " & Me.Tag & " seconds" If Val(Me.Tag) <= 0 Then
I would like to have the form to be set to its current record when being requeried. How can I easily achieve this? I've seen things about recordsets, I'm working with ADP (based on SQL Server) and don't know or all DAO events will help me.
I have inherited a buggy database thas has a simple piece of code that won't behave the way I think it should! The code should add a new record and have that new record appear on the list form (where the button On_Click event is called) making it available for user edditing. In 99% of cases though, the blank new record does not appear. The record is getting created, as i can see it in the table and have added a watch to the RecordCount property, it just doesn't display automatically. The existing workaround for users is to click a second button that invokes a simple one line function sub that performs only a Me.Requery. The user presses that up to two or three times before the new blank record finally appears.
One solution I read about, but hesitated in trying due to the unprofessional 'flash' that occurs, was to close the form and the re-open it...anyone experienced this or can comeup with a neat workaround?
The code
Private Sub CmdAddRule_Click()
Dim db As AO.Database, intnextseq As Integer Dim TestThis As String Set db = CurrentDb() Dim rstDao As DAO.Recordset Set rstDao = db.OpenRecordset("select * from stblAllocRules order by intRUSequence desc;", dbOpenDynaset) If rstDao.RecordCount > 0 Then intnextseq = rstDao!intRUSequence + 1 Else intnextseq = 1 End If With rstDao .AddNew !AutRU_id = 0 !intRUSequence = intnextseq !bytAppendBack = 1 !bytUpdateBack = 0 !bytDeleteBack = 0 .Update .Close End With
Set rstDao = Nothing Set db = Nothing
Me.Requery Me.Repaint 'I have used this staement in addition to and instead of the Me.Requery to no effect Me.Recordsource = Me.RecordSource 'I have used this statement also in addition to the above to and in isolation, to no effect. End Sub
on a form with several subforms i have ran into some trouble. I have the subforms use code to determine if a scrollbar is needed. As a recordselector I use a listbox on the main form.
When i close the mainform, it sometimes makes a popup box appear saying that there is no current record.
Sofar I have determined the following :
- Removing the code from the form, removes the error.
- The code is only executed when selected records in the listbox have related record(s)
- The error only occurs when the code is executed at least once and the last selected record has no related record(s)
I dont know if altering the code would have any success, cause it won't run anyway when I select the last record (with no related records).
I guess moving the code to another section would be better, but I've tried other options like 'on focus' etc, but could not find one that responded.
HELP PLZ :)
Private Sub Form_Current() On Error GoTo Error
'kijken of verticale scrollbar nodig is maxRegels = 14
Dim rstCount As DAO.Recordset Set rstCount = Me.Recordset If rstCount.RecordCount > maxRegels Then Me.Form.ScrollBars = 2 Else Me.Form.ScrollBars = 0 End If
Error: If Err.Number <> "0" Then Else MsgBox Err.Number & " " & Err.Description End If Exit Sub
End Sub
ps. I've tried to catch err.Number = "3021" in the Error: section, but without success
Nutshell: My user DB has one menu with 4 tabs (2 for adding records, and 2 for searching/editing records). Since the form opens up in the acFormAdd mode, Access already creates a new record (blank) before they type anything. It is resulting in blank false new records that are getting added to the table and they are getting annoying. My audit table is full of "user X created new record at this time" when it's just a blank record.
There must be a way to prevent this using VBA, but I cannot find it.
I've seen ways to disable "add new record" buttons and such, but nothing that disables Access from being smarter than me and creating a new record before I decide to.
I have a form frmAddNewProject that is a Data Entry form.When you click Add Project on the form, it creates folders and copies files to a location and also creates new record(s) in the ProjectT table with appropriate information.Here is my code:
Code:
Private Sub cmdAdd_Click() Dim FSO As Object Dim FromPath As String Dim ToPath As String Dim FolderPath As String Dim strType As String Dim strYear As String Dim strGPN As String
[code]....
Everything works fine till here. Now I would like to close the form but closing it gives me an additional empty record.
Code:
Dim ctl As Control On Error Resume Next For Each ctl In Me.Controls ctl = ctl.DefaultValue Next Set ctl = Nothing
to remove all values, but then it just adds an empty record.Is there a way to close that form without removing my legitimate new records and without adding empty ones?
I have a form I would like to close without saving the record using a button. here is the code I have but it closes the form and it also writes the record to the table.
Code: Private Sub ClosewoSave_Click() Cancel = True Me.Undo DoCmd.close DoCmd.OpenForm "frmMenu" End Sub
I found in a thread that Cancel = True would not write the record.
After I enter data into one field in a record I would like the form to save the record when I move to another field in the same record. It seems that the record is only saved when I exit it entirely. Is there a way to save a record when moving between fields in that record? Can this be done without using an Event Procedure for each field?
I have a form (frmAddManifest) with a subform (subfrmManifestTransporters).
When creating a new record, I can enter data into frmAddManifest, but the subform doesn't update to link with the record - I presume it's because the record from the main form hasn't been completed yet.
Is there a way to requery the form and/or subform so it stays on the record I was working on, and link the subform properly?
I have a form which displays data from a table... however i have added a combo box which retrieves value from another table. I have also added a save record button. When i try to save the record. instead of saving the text in the combo box like i wanted. It saves the value 1,2 or 3 instead. How do i make it save the selected text instead?
I have created a Form to add customer payment entries to our database which will be added to the TRANSACTIONS table. I have a combo box which allows us to lookup our account number from the main CUSTOMERS table designated in the row source of the combo box. The rest of the fields use control sources from the TRANSACTIONS table which is the table that will contain the new records. I have added a Command Button that is labeled "Save Record" and it is programmed to do just that. My problem is that the records are being added to the TRANSACTIONS table even before I click my command button. I have the "date" feild in the form set to auto populate today's date. When I open the form, select an account number and tab to the date or any other field, and then close the form WITHOUT clicking the command button, the record is still added to the table. Can anyone help me to stop this from happening? I do not want anything added to the table until the "Save Record" button is clicked.
I have the Roger Jennings book: "Using MS Access 2003" and also the "MS Access 2003 Bible", but I am still unable to find an answer to my problem.
I have created a navigation form with quick access to the forms and reports I use most often. The Navigation Form (which I named Control Panel) automatically lands on the Tutor_Information Form on a current record. However, I would like for it to open to a blank form instead while retaining the ability to access the current records. Individually, when opening the Tutor_Information Form from the Navigation Panel, it opens to a blank record.
I used a 2 step macro
1. OpenForm 2. GoToRecord - New.
How can I make it do the same thing when landing on the Navigation Form (Control Panel)? I am using Access 2013.
I'm using: DoCmd.OutputTo acOutputForm, "Frm_EL_PL_Bulk_Send", acFormatPDF, outputFileName1...To save a form as a PDF. The issue is, it saves all the records in that set in continuous form, and I'm trying to get it to only save the record its on.
I have a form (Student Details) that has an unbound lookup box using a query to select a student. The lookup has the hidden Student ID autonumber key field plus Class Number, Last Name, First Name, Status, sorted by Class Number (descending), Last Name, First Name.
The form record source is a similar but unsorted query.
There are nearly 1000 student records. The form has pages (tabs). The lookup box is in the form header. There are dozens of fields in the 1st Page (General) including an picture (attachment, not hyperlink) field holding a photo of the student, the other 6 pages have less.
When you select a student via the look up, at least one sometimes more students "flash" before it displays the one you want, which seems to display twice before it stops.
I deleted the picture field to see what difference that made, because it seemed to do the most flashing, and indeed, without that field you go right to the record. I looked at the Student table indexes and it seems that field type is not index-able, which is understandable.
Is there any way to improve this with still leaving the photos as attachments? Some thoughts:
It improves if it is displayed first as an Icon or Paper Clip, and probably would if a hyperlink field, but we like to have the picture displayed and not have to open the link to see it nor worry about the location changing invalidating a link. It seems that if the record was displayed with the picture field only filled after all the other fields were filled it would make for a better impression.
Can an On Load form event VBA or Macro be written that either hold the picture back until the rest of the fields are displayed or if an icon or changed to a hyperlink to open. Would it work if the pictures were attached to a separate joined table?