InfoPath 2007 Tutorials and Articles

Learn how to use InfoPath 2007 to create electronic forms by following step-by-step instructions from InfoPath tutorials and articles.

ADVERTISEMENTS

InfoPath 2007 Basics

Work with InfoPath in general

2 Ways to store InfoPath VSTA projects in a source control repository

Learn which 2 methods you can use when you create an InfoPath form template that is bound to a VSTA project and want to store the files in and then later fetch the files from a source control repository such as e.g. Visual SourceSafe.

3 Ways to validate data in InfoPath

Learn how to use InfoPath data types, data validation rules, and rules to check the value of a field in InfoPath.

How to populate an InfoPath form when it is opened/loaded

This article explains how to use rules or code to fill form fields when an InfoPath form is opened or loaded.

InfoPath 2007 Frequently Asked Questions (FAQ)

Frequently Asked Questions (FAQ) about InfoPath 2007 and Forms Server 2007.

InfoPath Resource Files - purpose and benefit

Learn what resource files in InfoPath are and when you should use them.

Main vs. secondary data sources

This article explains the difference between the Main and secondary data sources and shows you how to programmatically retrieve a reference to the Main data source or to a secondary data source.

Understanding Rules in InfoPath

This article explains what Rules are in InfoPath and how you can use them.

Write code in general for InfoPath

Clear or reset fields in InfoPath using only 3 lines of code

Learn how you can use just 3 lines of code and a 'special setup' in an InfoPath form to be able to clear or reset all of the fields or a subset of fields on an InfoPath form, whether it is browser-enabled or not.

How to create a class for an InfoPath form

Learn how to use the XML Schema Defintion Tool to generate a class for an InfoPath form.

How to deserialize an InfoPath form into a C# or Visual Basic object

Learn how to use the Deserialize method of the XmlSerializer class to convert the XML of an InfoPath form into a C# or Visual Basic object.

Programmatically retrieve the value of an InfoPath form field using .NET code

Use the Copy XPath functionality to find out what the XPath expression of the field is and the Value property of the XPathNavigator object to retrieve the value of the field.

Programmatically create an InfoPath form from scratch using a Console application and C# code

Use a Console Application and classes in the System.Xml and System.IO namespaces to programmatically generate the XML for the InfoPath form.

Work with Controls in InfoPath 2007

Buttons

How to create a toggle button in InfoPath using rules and conditions

This article shows how you can create a toggle button in InfoPath using only rules and conditions; no code.

Date Pickers

Calculate the difference between two date picker controls in InfoPath using rules and formulas - no code!

Use rules, conditions, and the number(), floor(), and substring() functions in formulas to calculate the difference between two date picker controls in InfoPath.

Calculating date differences in InfoPath using SharePoint Excel Services

Use an Excel workbook published to Excel Services on a Microsoft Office SharePoint Server 2007 to calculate the difference between two dates in InfoPath without writing a single line of code.

Create a day of the week InfoPath form using rules and formulas

Use a formula to calculate the number for the day of the week (Monday through Sunday) based on a date specified in a Date Picker control, and conditional formatting on sections to show/hide the weekday sections on an InfoPath form.

Forcing users to select a particular day of the week from a date picker in InfoPath using rules and formulas

Use data validation, rules, and the number(), floor(), and substring() functions to derive and check the day of the week when a date is selected from a date picker control in InfoPath.

How to check whether a start date falls before an end date in InfoPath

This article shows you how to use data validation rules in InfoPath to compare two dates and check whether one date falls before another.

How to extract the month name from a date picker in InfoPath

earn how to use a secondary data source, rules, filters, and InfoPath functions to extract the month name from the secondary data source based on the date that is displayed in a date picker control.

Drop-Down List Boxes, Combo Boxes, and List Boxes

Automatically type in and add a new item to a drop-down list box on an InfoPath form

Use a combo box control and a web service to automatically type in and add new items to a list, thereby updating the underlying data store of the secondary data source that the combo box is bound to.

Display a message box if an item does not exist in the list of entries for a combo box

Use a rule to display a message box when an item entered into a combo box cannot be found in a list of valid entries.

List control basics in InfoPath

This article explains how to use list controls such as drop-down list boxes, combo boxes, list boxes, and multi-select list boxes in InfoPath.

Populate InfoPath drop-down programmatically from code

Bind the drop-down list box to a repeating node in either the Main or a secondary data source, and then loop through rows of data in another data source to populate the data source that is bound to the drop-down list box.

Programmatically move items between two lists in InfoPath using C# code

Learn how to copy items from a secondary data source to a list in the Main data source of a form and then move items between two lists which are bound to two repeating groups in the Main data source of the form template.

Multiple-Selection List Boxes

Programmatically select all items in a multiple-selection (multi-select) list box

Use C# or Visual Basic code to loop through all of the items in the secondary data source a multi-select list box is bound to, and add each item to the DOM node that represents the multi-select list box.

Understanding the Multiple-Selection List Box in InfoPath

Learn how multiple-selection list boxes differ from other list boxes in InfoPath, how they store data, and how you can use this information to apply rules and conditional formatting, or to write code in InfoPath.

Rich Text Boxes

How to get HTML tags to appear as HTML and not as plain text in a Rich Text Box

Learn how to write code to render HTML in a Rich Text Box.

How to programmatically get or set the XHTML code of a Rich Text field in InfoPath 2007

Learn how to use the InnerXml property of an XML node to get and set the XHTML code of a Rich Text field on an InfoPath form template.

Programmatically add lines of text to a Rich Text Box field on an InfoPath form using C# code

Use C# code to add DIV elements to apply line-breaks between lines of text in a rich text box field on an InfoPath form.

Repeating Tables and Repeating Sections

4 Ways to programmatically add a row to a repeating table in InfoPath

Learn how to take advantage of the 4 overloads of the AppendChild method to programmatically add rows to repeating tables in InfoPath.

Auto-populate a repeating table in InfoPath with sequential dates

Learn how you can use a function and formulas in InfoPath 2007 to populate rows in a repeating table with sequential dates by entering one date and having the rest of dates automatically calculated and displayed.

Autonumbering fields in a repeating table in InfoPath 2007 using VB.NET code

This article shows an example of using the Changed event of the row of a repeating table to programmatically autonumber a field in the repeating table using VB.NET code.

Count the total amount of sections in a Repeating Section in InfoPath on insert or delete

Learn how to programmatically count the amount of sections in a repeating section control on an InfoPath form whenever a section is inserted or deleted.

How to check whether the values of all fields in a Repeating Table in InfoPath have been set

This article shows you how to use Data Validation rules or Conditions on Rules in InfoPath to check whether all of the fields in a repeating table on an InfoPath form contain a value.

How to create a hidden column in an InfoPath repeating table

Step-by-step instructions describing two ways to hide a column in a repeating table in InfoPath.

How to get the current row number of a repeating table in InfoPath using VB.NET code

This article shows how you can use Visual Basic .NET code in an event handler on the row of a repeating table to automatically number the rows of the repeating table and then retrieve the number of the row in a repeating table in which the value of a field has been changed.

How to loop through items in a repeating table in InfoPath 2007

Use the XPathNodeIterator class with C# or VB.NET code to loop through the rows and items in a repeating table.

How to pre-fill a repeating table in InfoPath with rows of data

Learn how you can add default rows to a repeating table in InfoPath, so that when you open the form, the repeating table already contains a certain amount of rows with data.

How to submit rows of a repeating table in InfoPath to a web service

Learn how you can create a .NET web service that accepts data from the rows of a repeating table on an InfoPath form.

Programmatically add a row to a repeating table using an XmlWriter object

Use the XmlWriter object that is returned by the AppendChild method of the XPathNavigator object to add a row to a repeating table.

Programmatically delete all of the rows of a repeating table in InfoPath

Learn how to use C# or Visual Basic code to programmatically delete all of the rows of a repeating table in InfoPath.

Programmatically delete the first row of a repeating table in InfoPath

Learn how to use C# or Visual Basic code to programmatically delete the first row of a repeating table in InfoPath.

Programmatically execute code when a repeating table row is inserted or deleted

Learn how to add events to rows of a repeating table instead of its fields.

Programmatically hide the first row of a repeating table in InfoPath

Learn how you can use a hidden field and conditional formatting to programmatically hide the first row of a repeating table in InfoPath.

Programmatically prevent users from adding more rows to a repeating table in InfoPath

Learn how you can use the Changed event of a repeating node and the DeleteSelf() method to programmatically prevent a user from adding more rows to a repeating table in InfoPath when the repeating table already contains a certain amount of rows.

Programmatically retrieve the value of another field in the same row of a repeating table in InfoPath 2007

Use the Site property of the XmlEventArgs object in the Changed event of a field in a repeating table that is bound to a SharePoint list to retrieve the value of another field in the same row of the repeating table.

Repeating control basics in InfoPath

This article explains the basics of repeating tables and repeating sections in InfoPath.

Selecting the minimum date in an InfoPath repeating table using formulas (no code)

Learn how you can use a formula (no code) in InfoPath to find and highlight the rows in a repeating table that contain the date that falls before all other dates in one of the repeating table's columns.

Access Databases from InfoPath 2007

MySQL databases

How to get data from a MySQL database into InfoPath using a Web Service

This article shows you how to use a Microsoft .NET Web Service to retrieve data from a MySQL database and display the data in an InfoPath form.

How to submit data from an InfoPath form to a MySQL database using a Web Service

This article shows you how to use a Microsoft .NET Web Service to submit data from an InfoPath form to a MySQL database.

SQL Server databases

InfoPath does not support the specified database. The database must be a Microsoft SQL Server

Learn how to solve the InfoPath error: InfoPath does not support the specified database. The database must be a Microsoft SQL Server.

Retrieve an InfoPath form from SQL Server and display it in a new instance of InfoPath

Retrieve the XML value of the database field containing the InfoPath form, save it locally as a temporary file, and open it using this.Application.XmlForms.Open().

Retrieve an InfoPath form from SQL Server and display it in an InfoPath FormControl

Use code to retrieve the XML of an InfoPath form from SQL Server 2005, convert the InfoPath form into a MemoryStream object, and load this object into an InfoPath FormControl on a Windows Forms application.

Using a Receive data connection in InfoPath to execute an SQL Server stored procedure

Learn how to temporarily change the Command property of a Receive data connection in InfoPath to execute a SQL Server stored procedure and insert data into a database table.

Convert InfoPath Forms

Convert InfoPath to Word

Convert an InfoPath 2007 form into a Word 2007 document using XSLT and C#

Extract and use the document.xml part of a docx file to create an XSLT stylesheet to convert the XML of InfoPath forms into docx files.

Programmatically convert Rich Text data from InfoPath to Word DOCX

Learn how to use the WindowsBase DLL and the System.IO.Packaging namespace to export the contents of a Rich Text Box field on an InfoPath form to a Word 2007 document.

Using the Open XML Format SDK 2.0 to convert an InfoPath form into a DOCX file

This article shows a simple example of how to use the Open XML Format SDK 2.0 and C# code to convert and add the data from a rich text field and a repeating table to a Word 2007 document (DOCX file).

Convert InfoPath to PDF

Save / Print / Convert / Export an InfoPath form to PDF

Add code to the form to programmatically export the current view of the form to PDF or use the Save As PDF or XPS add-in for Microsoft Office 2007 to export a view.

Use Word 2007 to programmatically convert an InfoPath 2007 form to PDF

Use the Word 12 (= Word 2007) object model and the 2007 Microsoft Office Add-in: Microsoft Save as PDF to programmatically export an InfoPath 2007 form to PDF.

 

Integrate InfoPath 2007 with SharePoint 2007

Also see InfoPath 2007 browser forms for more InfoPath with SharePoint integration tutorials and articles not listed here.

Retrieve and use data from SharePoint

Auto populate repeating table in InfoPath with SharePoint list data when a row is inserted

Learn how to auto populate a repeating table in InfoPath by using rules and filters on data from a SharePoint list when the row is inserted.

Copy a SharePoint list to a repeating table in InfoPath using XSLT

Learn how to copy data from a SharePoint list to a repeating table in InfoPath by using XSLT and C# code to transform the data from a secondary data source and store it in the Main data source.

Counting the amount of documents submitted today to a SharePoint library

Use an XPath expression to count the amount of documents that were submitted today to a SharePoint library.

Filter a SharePoint list in a repeating table in InfoPath on a date range

Use conditional formatting on a repeating table in InfoPath to filter a SharePoint list on a date range using two date picker controls.

Filter and sort a SharePoint list in InfoPath using a DataView

Learn how you can use C# code and the DataView class that comes with ADO.NET to sort and filter items from a secondary data source to a SharePoint list in InfoPath.

How to add a data connection to a SharePoint list or library in InfoPath

This step-by-step InfoPath tutorial explains how to add a data connection to a SharePoint list or library and then view the structure of the secondary data source in the Data Source task pane.

How to simulate Excel's VLOOKUP function in InfoPath to look up data in a secondary data source using rules and filters

Learn how to use rules and filters to look up data in a secondary data source (here: a SharePoint list) when an item is selected from a drop-down list box and create functionality similar to Excel's VLOOKUP function, but then in InfoPath.

Programmatically check whether a value exists in a drop-down list box bound to a SharePoint list using an XPath filter

Learn how to use an XPath filter expression on a SharePoint list to look up a value in a secondary data source to which a drop-down list box in InfoPath is bound.

Programmatically copy rows from a SharePoint list to a repeating node in the Main data source in InfoPath

Learn how to use C# or Visual Basic code to copy the rows from a SharePoint list to a repeating node in the Main data source of an InfoPath form.

Programmatically retrieve an InfoPath form from a SharePoint library

Use the System.Net.WebClient class or Copy web service to retrieve an InfoPath form from a SharePoint library.

Secure InfoPath forms in SharePoint using encryption

Learn how you can encrypt InfoPath forms and decrypt them again to protect and secure InfoPath forms in SharePoint.

Use an Access table as a secondary data source in a browser-compatible InfoPath form

Use Microsoft Access' feature to link a table to a SharePoint list and then use this list as a secondary data source in a browser-compatible InfoPath form.

Submit data to SharePoint

How to submit the rows of a repeating table in InfoPath to a SharePoint list

Programmatically add items from a repeating table in InfoPath to a SharePoint list by submitting a CAML update batch to the UpdateListItems method of the Lists web service that comes with Windows SharePoint Services (WSS).

How to use a SharePoint ItemAdded event handler and the object model to submit data from an InfoPath form to a SharePoint list

This article explains how you can use an ItemAdded event handler on a Form Library to extract data from an InfoPath form that was submitted to the form library and use this data to add a new item to a custom SharePoint list.

Programmatically add an item/event to a SharePoint 2007 calendar using InfoPath 2007 and .NET code

Use the UpdateListItems method of the Lists web service that comes with Windows SharePoint Services (WSS) to add an item to a SharePoint calendar from within an InfoPath 2007 form.

Programmatically add an item with a Rich Text field to a SharePoint list using InfoPath 2007

Programmatically add an item to a SharePoint list by submitting a CAML update batch to the UpdateListItems method of the Lists web service that comes with Windows SharePoint Services (WSS).

Publish InfoPath to SharePoint

How to publish an InfoPath form template as a new SharePoint site content type

This article provides the steps required to publish an InfoPath form template as a new content type on a SharePoint site.

Workflow in SharePoint

How to create an InfoPath initiation or association form for a SharePoint workflow created in Visual Studio

Learn which steps are required to create an InfoPath form that can be used as an initiation or association form in a SharePoint workflow that is created using Visual Studio.

How to set the value of an InfoPath form field through a SharePoint workflow

Learn how you can write code in a custom Visual Studio workflow for SharePoint to set the value of a field that is stored within an InfoPath form.

How to use a Visual Studio workflow to submit data from an InfoPath form to a SharePoint list

This article explains how you can use a custom Visual Studio sequential workflow on a Form Library to extract data from an InfoPath form that was submitted to the form library and use this data to add a new item to a custom SharePoint list.

Use a custom SharePoint workflow to extract a file attachment from an InfoPath form and upload it to a SharePoint document library

This article explains how you can use a custom Visual Studio sequential workflow on a Form Library to extract data from a File Attachment control on an InfoPath form that was submitted to the Form Library and use this data to add a file to a SharePoint Document Library.

 
InfoPath 2013 Cookbook: 121 Codeless Recipes for Beginners

InfoPath 2013 Cookbook 2: 121 Codeless Recipes for SharePoint 2013

InfoPath 2010 Cookbook: 101 Codeless Recipes for Beginners

InfoPath 2010 Cookbook 2: 101 Codeless Recipes for SharePoint 2010

InfoPath 2010 Cookbook 3: 101 Code Recipes for C# Developers

InfoPath 2010 Cookbook 4: 101 Code Recipes for VB Developers

InfoPath 2010 Cookbook 5: Integrating InfoPath with Excel and Excel Services