InfoPath – Difference between days

I had a request for a form to count the number of days between two date pickers as one of it’s functions.  All that you need to make this happen is add two date picker controls and one text field to display the count.  I have included an InfoPath sample form that explains this in detail and should provide you with the knowledge to add something like this to one of your forms.

I originally found this form on the following site when I faced this issue:

Alec Pojidaev has many great techniques for using no code solutions which I am a big fan of.  I suggest you check out his site to see all of the advanced features he has laid out.

Click the link below to download the zip file.


SharePoint – Dropdown Menu/Navigation Does Not Work

Have you ever logged on to your SharePoint site and the drop down navigation does not work?  After days of clicking around, I decided to fix the issue, which really was not much of fix.

Turns out, this is an issue with my MS Office installation.  All that you have to do is run a repair of your Office  install under the add/remove programs area.  Once the repair is complete, log back on to your SharePoint site and the menu should now appear.

Editing a Windows 7 Hosts File

I know that this may be common knowledge to most people in the IT world, but sometimes I forget even the simplest of tasks.  I haven’t edited a hosts file in 7 years so it took me a minute or two to remember where I was supposed to do this.  Now that I am running Windows 7, there is one more thing that I had to do…..Run as Administrator.

I decided to create a short video on how to edit your hosts file.  Enjoy!

[KGVID width=”640″ height=”360″][/KGVID]


Synchronize SharePoint list using Access 2007

If you need to make changes outside of SharePoint to a list, you always have the option to use Access.  Follow these steps and you will be well on your way to using this feature.

1. Open your SharePoint list

2. Click Actions  –> Open with Access

Actions dropdown

3. A dialog box will pop up on your screen. When it does, click OK.

Access Prompt

4. After you click OK, Access 2007 will pop up on your screen. Double click on the list.

SharePoint List

5. When the list pops up you can begin to edit. Once finished, do not click the Publish to SharePoint Site button. Simply close Access 2007.

Access View
Please remember that Access 2007 is online with SharePoint and any changes you make will reflect instantly. There will be no going back.

A No-No for having Multiple SPD Workflows for Lists/Libraries

Word of warning:

If you need to have more than one workflow for a particular list/library, DO NOT copy a SPD workflow and paste back into the same library.

What happens is that even if you change all of the properties of the files (names, etc.), there is still a hidden property that SharePoint likes to hold on to and uses to identify the workflow.  Think of it as an ID.

Basically, you will have two different workflows with the same ID.  When you publish one of these to a list/library, everything works fine.  When you go to publish the second one, everything seems fine but after close evaluation, you will notice that the first workflow that you published is no longer attached to the list/library.

Moral of the story, don’t be lazy.  Create a new workflow even if all of the information is the same.

Retrieve Active Directory Information from the User Profile Service – part 1

Very often in InfoPath, I need to query Active Directory for certain pieces of information just so that I can have some type of functionality within my forms.  One of the most used and easiest forms of this is the user profile service.  I use this to my advantage to query e-mail addresses, user account info, etc.  Also, this is a must if you use the Contact Selector control from within InfoPath.

Follow these steps and you will be on your way.  Stay tuned for part 2 as I will be showing how to query the display name for AD accounts in a later post.

GetUserProfileByName Data Connection

  1. Create a new data connection to “Receive Data” from “Web Service”.
  2. Click Next.
  3. Type in the following url:
  4. Click Next
  5. Select “GetUserProfileByName
  6. Click Next
  7. Leave the default value for Parameter
  8. Click Next
  9. Leave box unchecked

10. Click Next

11. Name the connection “GetUserProfileByName”

12. Check the box to automatically receive data

13. Click Finish.

14. The wizard will look like the images below.



Need to edit multiple items to kick off a workflow? No prob Bob!

I was faced with this task recently.  Let me paint the picture for you.

I have a document library with over 1,000 items in it.  I added a new column (Named) that needs to have the same information as an existing column (Name).  For whatever reason, the web part I am using for my list search does not recognize the existing column.  I created a SP Designer workflow to copy the contents from the ‘Name’ to the ‘Named’ on creation or edit.

To do this, there are a couple of options.

  1. The long drawn out option – Edit each file individually
  2. The best option for me – Content and Structure
  3. Power option – SharePoint Designer

I went with option 2 because I did not want to lag the server with a whole lot of who ha.  Here are the steps I followed to make this happen.

  1. Go to the site, Site Settings, Content and Structure
  2. Expand the library to perform this action
  3. Place a check into the ‘Select All’ check box
  4. Click on the ‘Actions’ drop down and select ‘Check Out’
  5. Once checked out (you may have to do this twice), click the ‘Actions’ drop down and select ‘Check In’

Make sure to check that you have performed this action for all items in your view.  Mine were in groups of 100, which is generally the standard view.  The fasted option for me would have been the SharePoint Designer route but I did not want to take a chance of checking out over 1,000 items at once and then check them back in.  We already have enough load on the servers from all of the other users accessing SharePoint.

The converter failed to save the file….well crap!

Have you ever seen this message before? Chances are, probably not but in my organization this might rear it’s ugly head from one time or another.

I received a call from one of my user’s and they said that they could not edit an Excel file from withing SharePoint. Since we have a mixed MS Office environment, I first verified what version of office was installed (2010). After that, I checked to see how my system performed (no issues). Then, I go through the process that most admins go through when troubleshooting; “Why is this working for me”, “What could it be”, “Maybe it’s just the user”, etc. Once that wears off, I sit back and think for a minute. Turns out, not a big issue at all, just a step left out in an upgrade process.

What happened was the user had Office 2003 installed on their computer and installed the compatibility pack to open newer versions. Eventually, the user upgraded to Office 2010. When this happened, the office compatibility pack was not installed, resulting in the error ‘The converter failed to save….’ blah blah blah.

The solution? Well, you guessed it…. Uninstall the compatibility pack. Simple. Done.

jQuery Security….. Just hide it!

We had an issue come up about security with InfoPath forms.  One of the major issues was that we could restrict items in the view, but if you used explorer view, all of the security would be bypassed.  To counter this, we use a CEWP and the following jQuery script: HideViewsScript

Please note, you will need to change the first line in the script to reference your jQuery file:

<script src=”/PublishingImages/javascript/jquery-1.3.2.min.js” type=”text/javascript”></script>

This will disable all of those pesky views and you will be able to force your security through your main view.

Add a time duration to a list/library

Years ago, I setup an InfoPath form for an approval process.  There are around 7 status changes during the duration of this form.  We wanted to be able to see how long a request would take from creation to approval.  This was actually pretty simple.  All that you need is a calculated column.  Follow these steps and you will be able to time an event/process.

  1. Open list/library.
  2. Create Calculated Column (Form Duration)
  3. Enter this for the formula:  =TEXT(Modified-Created,”h:mm”)
  4. Click OK

That’s it!  The calculation will look at the fields provided in the formula.  The time will then calculate based on how long it took from creation to when it was last modified.  If you have a form that hides a submit button based on a status, you will then be able to lock down the time calculation.