When I click on the Create New Form button below, I get the following runtime error 2450 dialog box:
When I click on the debug button, it gives me the following:
The main form is called FindClientsNavigation. The "Create New Form" button in the ListOfForms subform is supposed to cause the NavigationSubForm to replace the ListOfForms form with a new CommunicationForm so that the user can enter information from a new form for the Client with the specific Client ID that is available in the txtClientID textbox, which you can see in the top of the FindClientsNavigation form in my first image above.
How do I alter the code above so that it loads a new CommunicationForm in the NavigationSubForm? And how do I get that new CommunicationForm to have the ClientID stored in it, so that submitting the form will allow the form to be saved with reference to the specific ClientID?
The SourceObject needs to be set to a string, which is the name of the form to use:
.SourceObject = "CommunicationForm"
[Note that Forms is the collection of open forms so you cannot use this to refer to a form in the Navigation Pane - unless you know that this form is open.]
You can use the Client ID (on the main form) for this subform, but there are a number of ways to do this and it depends on your specific requirement:
The subform could be based on a query that refers to the textbox (perhaps txtClientID) on the main form. This is one of the simpler approaches.
You could dynamically set the RecordSource for the subform, using a WHERE clause that refers to the Client ID (similar to the above approach).
You could apply a Filter to the subform, so that it only displays the single record for the Client ID.
Related
What I'm currently doing is that on the Property Editor of my dropdown widget, on the Event Section using the onValueEdit function, I'm trying to create a custom action script which will give a value to my textbox (using widget.root.descendants.NameOfMyTextbox.value) depending on the selected value of my dropdown.
The values of my dropdown are the IDs stored in my MySql database table Process, for example: ID = 1, name = Assembly, manager = George. For the textbox, I would like to get another table field value depending on the selected value of my dropdown through a select statement (like getting the manager value). What kind of app maker queries or functions should be useful in this case?
If your dropdown option binding is #datasources.Process.items then your onValueEdit event simply needs to be:
widget.root.descendants.NameOfMyTextbox.value = newValue.manager;
This would be the only way to set this up however, because this way the options are pointing to your entire record in the Process table and upon selection you can get any other field from that record using newValue.YourField.
I am creating a form, in which I want it to create a new row of data in my table. However, whenever I input something into this form instead of creating a new data entry, it picks an existing one and modifies it.
Any insight would be appreciated!
If the form is bound to a table; then one must advance to a new blank row. There are several form types: In a Continuous or Datasheet form - one simply scrolls to the bottom to find the new blank row. In a Single Record View form - one must use the record selector in the bottom frame of the form to advance to a new record or add a button that advances to a new record/row. There is also an option in form properties to be a Data Entry Form that will only open to a new record.
I am currently working on a database project using MS Access that allows user to submit their applications via forms and these applications get saved on a masterlist table. I am wondering if MS Access has the ability to support features which allows a user to save a form which they have filled, but not officially submitting it yet, and afterwards at their own discretion they can re-enter to submit their forms, which then only gets captured in the masterlist table. Any suggestions to architect this feature are welcome, or any limitations in doing so
Second suggestion Calls for a few preparations, but makes submitting a very simple task:
Assuming table name is masterlist, add to the table a field
Submitted, Boolean value (Yes/No Value), Default Value = False.
Submitting an application will be done by setting this Field to True.
Change masterlist table name to tbl_masterlist, and create a query:
SELECT * FROM tbl_masterlist Submitted = TRUE. Name this query masterlist.
Now masterlist has only submitted applications.
In design view, Change the Form's RecordSource Property to tbl_masterlist. You can filter out undesired applications from the Form, if you wish, using the From's Filter and FilterOn property
add a checkBox field to applications Form, and in the properties window s set it's Name and ControlSource Properties to Submited, and it's Visible property to False.
Finally, add to applications Form a Submit Button, and in it's OnClick event sub add this code: Me.Submited = True.
I have an MS access project with four forms one main form (BS&W Data) and three subsequent forms (WellTest form, LoopSamplers Form and WellheadSamples form). The subsequent form will be opened by a command button on the main form based on the value of a specific field (Follow-up Method).
I need to link three fields common between the main form (BS&W Data) and other forms, so by data input in these fields in the main form and then opening the subsequent form finding the same fields populated without re-input.
The three field are (Date, Well Name and Follow-up Method)
Thanks
If you open your form with modal property, you will need to pass parameters as arguments to the form using DoCmd.OpenForm
http://msdn.microsoft.com/en-us/library/office/ff820845.aspx
Otherwise, you can use the following syntax to access directly the control's value and modify it. Of course, it has to be open first to make it work.
Forms("subform_name")("control_name").value = ...
I have a custom function in Access 2007 that hinges on grabbing data out of a specific query. It opens Outlook, creates a new email and populates the fields with specific addresses and data taken from the query ("DecisionEmail").
Now I want to make a different query ("RequestEmail") to populate the email with that data. So all I have to do is change this line:
Set MailList = db.OpenRecordset("DecisionEmail")
This is my desired result: If the user is on Form_Decision and clicks the button "Send email", "DecisionEmail" will get plugged into the function and that data will appear in the email. If the user on Form_SendRequest and clicks the button "Send email", "RequestEmail" will get plugged in instead.
My last resort would be to make a new function and use the Conditions field in the Macro interface to choose between them.
I have a vague notion of setting the query names as variables and using an If statement.
Why not save the macro as code, then you can edit away to achieve say:
Function CustomEmail(NameOfQuery As String)
CurrentDB.Openrecordset(NameOfQuery)
End Function
Then, on each form in the desired event:
CustomEmail "DecisionEmail"