Is it possible to have a "save and copy" button on an InfoPath form based on a SP 2013 list that will save the current form and then open a new one with the previous forms data pre-populated? This is to make it easier for users to enter multiple

I am using InfoPath 2013 and displaying the form in a web-browser. Because the form is based on a SP list it wont let me add code-behind so a solution that doesn't require custom code in the form would be ideal.

  • Ryan did you ever resolve this issue? I am faced with the same challenge. – user51030 Feb 5 '16 at 14:56
  • Nope, we moved away from InfoPath because of issues like this with no way to work around it – Ryan Erickson Feb 5 '16 at 15:26

You can create a button in infopath form to save and ad new item in your list . For more information check this link : http://ybbest.wordpress.com/2012/01/18/create-a-save-and-create-new-item-functionality-in-infopath2010/

| improve this answer | |
  • This creates a new form but it doesn't keep the data around which is what is required here – Ryan Erickson May 3 '13 at 14:59

I don't know how familiar you are with Rules in InfoPath but there are some possibilites.

You can achieve this by using Form Load Rules (https://support.office.com/en-au/article/Introduction-to-rules-f00de016-7b2d-4ef8-b168-26b7748c22a1#__toc265825740) to initialize fields when the form is loaded.

For your case you need a DataConnection to the List.

  1. On the Data tab, click Data Connections, and then click Add.
  2. In the Data Connection Wizard, click Create a new connection to, click Receive data, and then click Next.
  3. Click SPList, select your list and the fields you need (including Created By) to be filled in. Oder by Created Date.

On Form Load Rule :

  • Set A fields value -> Your List -> Query Fields -> Created By. Set it to "userName()". Filter the results to only use Created By = userName().
    • Query Data Connection (Your List)
    • Set a fields value -> Your Field = Result from your Query

Then you can fill the fields with the Information from the List. If you need further Information please comment.

| improve this answer | |

Create a button that pulls the last created record (you have to query for the max id and then create a rule for each field that matches that max id) and then populate that data. You could do it automatically as a form load rule also but then it would do it every time. Give the user the option.

| improve this answer | |

I don't know the setup of your form but you can have multiple list items added per infopath form submit.

If you create a new InfoPath form and after choosing the list, you have the checkbox: Manage multiple list items with this form

The form will be build up like repeating sections per list item.

| improve this answer | |

Approach it from the other way around.

Always create a new record. But allow them to "Retrieve" the values from a previous form.

Create a button with 2 rules. One is to setup a query. The next is to paste your values.

Using a read connector to the same list, pull the old values into the current record.

No extra code needed, or workarounds.

| improve this answer | |
New contributor
Rob is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.