Question: How to determine (for a machine running windows xp/vista/7) whether ACE or JET is installed, so I can use an appropiate connection string to connect to a access database.

Answer: 
There is a registry key you can check. It is at `HKCR\Microsoft.ACE.OLEDB.12.0`. You can read it using the [`RegistryKey`](http://msdn.microsoft.com/en-us/library/microsoft.win32.registrykey.aspx) class.
Note that the RegistryKey may be there but the OleDb connection can still fail because of 32bit / 64bit issues. 
If the target machine has 32bit ACE.OLEDB installed then make sure the app is compiled to target 32bit CPU. Otherwise the app may run in 64bit (on a 64bit OS) and then cannot load the 32bit installed version of ACE.OLEDB.