Modules & VBA :: Close Main Form With If Statement
Jun 25, 2013
I have a subform that is used in multiple other forms. I wish to have a command button that will close whichever main form the subform is in. Is there some way I can make an if statement that is something like the following?
If (main form = A) then
Close (form A)
ElseIf (main form = B) then
Close (form B)
etc.
End if
Unfortunately the button has to be in the subform, not the main form (which would be easier). The purpose of the button is to delete the current records that are open and then close the form. The catch is that the subform is the parent record to the main form, so the command has to originate from the subform so that the cascade delete works properly.
I have a form I want to close but somehow the codes running before it cancel it out before my closing code can run.
Here is the full code for the form.
Code: 'Check for Null Fields If IsNull(Me.cmb_to_customer) Or IsNull(Me.cmb_from_customer) Then MsgBox ("Please enter a TO CUSTOMER and FROM CUSTOMER to continue.") Cancel = True
[Code] .....
This is the ending code that will not run:
'''''''''''''''''''''''''''''''' 'Continue or Not, If yes then wipe all fields, If no then exit form If MsgBox("Do you want to log-in/transfer more batteries?", vbOKCancel, "BATTERY LOG-IN/TRANSFER") = vbCancel Then DoCmd.Close acForm, "FRM_LOGIN" Else Me.cmb_from_customer = Null
All i want to do is after executing the following code, close the form " EmployeeFind" on completion?
Private Sub Form_DblClick(Cancel As Integer) On Error GoTo Err_Form_DblClick Dim stDocName As String Dim Msg, Style, Title, Response Msg = "Employee allocated to Job" Style = vbOKCancel + vbInformation Title = "Employee moved" ' Define title. Response = MsgBox(Msg, Style, Title) If Response = vbOK Then
In the main form I have a list box, when I right click on each item on list box another form "frmshortcut" (pop up) will be open in the position of mouse that shows a list box for selecting items according to below code, now I would like when select another place (except "frmshortcut"), this form automatically will be close, like what we have in shortcut list of windows. Now when right click it is opened in the location of mouse click, but problem is, it is not closed automatically when click in other places of main form.
Option Explicit Private Type POINTAPI x As Long y As Long End Type Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Private mp As [*clsMousePosition]
I am using the method from allen browne [URL] .... to open a form and add it to a collection and when removing it it closes. actually, usually it does work so but i have now a form which does not close until i am hitting the reset button in VBE , is there something i could check why it's not functioning as desired ?
Just to add, this form has a subForm as well (might be the cause ?)
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.
I have a problem when I close a form to stop it from closing if a date is not filled in.
If the field "Case_Status" is filled in with "response received" and the date field "response_received_date" is blank, it shows a message and fils in the text box with red background.
It simply fails to keep the form from closing till the date is filled in. Code I have so far:
Private Sub CloseForm_Click() If Me.Case_Status = "response received" And IsNull(Me.response_received__date_) Then Me.response_received__date.BackColor = RGB(255, 0, 0) MsgBox ("Please fill in manatory fields!!!") DoCmd.CancelEvent Else DoCmd.Close End If End Sub
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
my code does the following, user selects excel file, opens it, renames sheets, basically needs first sheet to be sheet1. rest don't matter Changes the formats in column a to number and 15dp, saves the file as .xls and then links the file to the database.
Code: Private Sub Command288_Click() Dim s As String Dim i As Long
I have to write a code in a form so that if nobody is doing any activity for 5 minutes then after 5 minutes automatically press Close button named BtnClose in that form.
I have a database with a Main Menu Form, containing a Button that loads my main data entry form. When the Button is Clicked portions of the data entry form that is loading shows through the Main Form Background (e.g. portions of the navigation bars, and portions of the boarder on the form that is loading.)
I have a 'main' table with a Project_Number that links all the data in my db together. I have another table that uses that Project_Number as a lookup field to connect that tables data to the main data. I created a 'main' form that has the ability to enter data for the 'main' table. I want to be able to press a button and have the second tables form pop up and add that that specific Project_Number. I added the button and went through the wizard process. I then added the linking info through the builder. It works fine if there is already data entered for the project_number in that specific field. but if the field is empty, the popup window doesn't recognize a project_number and doesn't add it to that record. below is what I am using. The project_number in the 'main' table is text and the Project_Number in the 2nd table in a number since it is a lookup field.
Private Sub CongressionalDistrictCmd_Click() On Error GoTo Err_CongressionalDistrictCmd_Click Dim stDocName As String
I have a subform which makes a change to a field on the main form. When focus is returned to the main form, the BeforeUpdate and AfterUpdate events fire. Why? I thought from the form's perspective, the subform is just another control.
BTW, I get the same behavior if I modify the field from within the Exit event of the subform control.
In either case, the main form's Dirty event is NOT triggered.
I need to hide my subform on load or open of the main form but am experiencing some weird results. I have tried putting Me.SubForm.Form.Visible = False in both the on open and the on load of the main form and it works only if the tables on which the subform have records in them. If the tables for the subforms are empty I get an error 2467 telling me that "The expression you entered refers to an object that is closed or doesn't exist." I find this strange because from all I can find the subform loads first.
How can I hide the subform when the main form opens no matter what records exist or don't?
I have a form - purchase, and a subform purchase detail they are linked with a field "puid"..I need the dmax to give me the maximum auto number field "pdid" on the subform in a textbox on the mainform.
I'm using form with subform. Main form header contain a combobox. I need to check the combobox is null or not before update a subform filed. If combobox is null then its back to Main form combobox from subform. The code below that I'm trying to:
Code: Private Sub AssignTo_BeforeUpdate(Cancel As Integer) If IsNull(Forms!frmDepartmentReview!cboDepartment) Then MsgBox "You must select Department first", vbInformation Forms![frmDepartmentReview]![cboDepartment].SetFocus End If End Sub
Then I'm getting 2110 run time error
Access can't move the focus to the control cboDepartment.
I have written code to look up a value in a table that then enables or disables a subform in my main form. The code works, but I know it is now as efficient as it can be. The main problem is that I have multiple values that determine if the subform should be enabled or disabled. I would like to use an IN statement but I'm pretty sure this doesn't work for Dlookup. Below is an example of the code I currently have:
Code: Sub enablecontrols(setting As Boolean) Inv_subform.Enabled = setting End Sub Private Sub Form_Current()
[Code] ....
Like I said, this works fine, but I am concerned if I need to add more items to look up and the stability of the code in general.
I need to make a query that will show the oldest cases and then open this one in the main form. It will be possible that there could be several cases with the same date. For example the query runs and the results are 7, how could I get one of those cases in the main form.
The idea is that a person will click on a button called "next case", the query will run and then it will open the case in the main form.
Input box Search problem. I have been using the following to find a record in my frmMain using an Input Box:
Private Sub cmdClientIdSearch_Click() 'Searches for Client by ID number Dim rs As Object Dim strCriteria As String strCriteria = InputBox("Please enter Client ID" & vbCr & "Do not type leading zeros")
[Code] ....
It works great if I run it from a command button from frmMain. But, if frmMain is open and I run it from a command button on my switchboard, I get the following error message:
Run Time error 7951. You entered an expression that has an invalid reference to the Recordset Clone Property. I tried inserting a command to open frmMain in the first line, even before the two Dim statements, but I get the same result.
I have an unbound mainform and an unbound subform(datasheet). The source of the subform is a query which is dynamic(I have many queries with diffrent columns). the subform source is change using a combo box selection. I have text boxes in my mainform..how do I get the data from subform to the text boxes of the mainform?
There is a textbox on a form and when I fill in its value, I would like it to lookup whether that value matches any of the values in another form and if it does present a message box. Both fields hold only numerical data, so no type mismatch issues.
I've tried the code following, but it only looks up the first value on the second form, not its entire dataset, which is problematic.
Code: Private Sub Lot_AfterUpdate() DoCmd.OpenForm ("Pot_Pot_ExtraLots") If Me.Lot.Value = Forms!Pot_Pot_ExtraLots!ExtraPotLots.Value Then MsgBox "There is a bag with extra sherds found during other analyses from this Lot! Lookup and combine results!" DoCmd.Close acForm, "Pot_Pot_ExtraLots", acSaveNo Else DoCmd.Close acForm, "Pot_Pot_ExtraLots", acSaveNo End If End Sub
I'm developing in Access 2007 and created a runtime version.
When the user clicks the X to close the runtime application, the main form's Load event fires. Any clues as to why this might be? Some of the code is based on other forms that do close, so of course errors start flying. Note, this is only in the runtime version; the accdb file works just fine.
My current workaround is to put the offending code into the forms On Current event, which I'm able to do in this context.
Is it wrong to think that a forms On_Load event shouldn't be firing when the application is closing?
I want to return a value from a separate query and have that show up in a field on my main form. The field name from the query is "Six Month Date" and the query name is "DT6Monthqry". I want to return the value displayed in the"Six Month Date" from the query, matching the CustomerID in the query result to the CustomerID that is being displayed on the main form. The CustomerID is a text field.This is the code I placed in the Control Source property for the field I want to be displayed on the main form:
I have a subform that displays doubles in a textbox as fixed with 4 decimal places as default. I have been trying to change the number of decimal places based on the value in a textbox on the main form. I have tried this:
where [Final PCT] is the textbox on the subform containing the decimal number and Numdecs is the textbox on the main form containing the number of decimals I want to use. I want to implement this Form_Current sub.