<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Cool As Ice uses Office Live and Access 2007 with custom ribbon</title><link>http://blogs.msdn.com/b/clintcovington/archive/2007/03/06/cool-as-ice-uses-office-live-and-access-2007-with-custom-ribbon.aspx</link><description>Alan Cossey recently sent me a overview of how Cool As Ice is using Office Live and Access to track process information. He has found a couple bugs we will fix in SP 1 but overall it is working nicely for them. I thought some of you might appreciate seeing</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Pushing Access data to the web: Integrating with Office Live Small Business</title><link>http://blogs.msdn.com/b/clintcovington/archive/2007/03/06/cool-as-ice-uses-office-live-and-access-2007-with-custom-ribbon.aspx#8135845</link><pubDate>Mon, 10 Mar 2008 21:19:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8135845</guid><dc:creator>Access Team Blog</dc:creator><description>&lt;p&gt;Recently our friends over in Office Live have had major announcements about both the Office Live Workspace&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8135845" width="1" height="1"&gt;</description></item><item><title>Clint Covington: Software design, Microsoft Office Access : Cool As Ice uses Office Live and Access 2007 with custom ribbon</title><link>http://blogs.msdn.com/b/clintcovington/archive/2007/03/06/cool-as-ice-uses-office-live-and-access-2007-with-custom-ribbon.aspx#2976879</link><pubDate>Wed, 30 May 2007 02:29:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2976879</guid><dc:creator>David Overton's Blog</dc:creator><description>&lt;p&gt;I saw this and thought you might like to see how one ISV has joined Office Live and an Access application&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2976879" width="1" height="1"&gt;</description></item><item><title>SharePoint Takes Lead in Collaboration Market - WSJ article</title><link>http://blogs.msdn.com/b/clintcovington/archive/2007/03/06/cool-as-ice-uses-office-live-and-access-2007-with-custom-ribbon.aspx#2264048</link><pubDate>Tue, 24 Apr 2007 23:15:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2264048</guid><dc:creator>Clint Covington: Software design, Microsoft Office Access</dc:creator><description>&lt;p&gt;Here is a great article by the Wall Street Journal about SharePoint adoption and scenarios where people&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2264048" width="1" height="1"&gt;</description></item><item><title>re: Cool As Ice uses Office Live and Access 2007 with custom ribbon</title><link>http://blogs.msdn.com/b/clintcovington/archive/2007/03/06/cool-as-ice-uses-office-live-and-access-2007-with-custom-ribbon.aspx#1863426</link><pubDate>Mon, 12 Mar 2007 12:22:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1863426</guid><dc:creator>Alan Cossey</dc:creator><description>&lt;p&gt;Grovelli,&lt;/p&gt;
&lt;p&gt;Please bear in mind that my experience of Office Live is still rather limited, so there may well be better ways than doing things the way I have done so far. It is still Beta here in the UK and that only became available in November last year. &lt;/p&gt;
&lt;p&gt;Disclaimer over so..... referential integrity is normally something you take as bog standard in a database. If I was using the Office Live front end for my database I would struggle unless the database consisted of only one table, i.e. there was no need for referential integrity. As things stand, I don't see the built-in Office Live UI as being suitable for a complicated database. I don't think Microsoft are claiming it is. As far as I know there is no means for updating child tables within Office Live when, say, a record in a parent table is deleted or updated, i.e. no cascading deletions or cascading updates. This is a deficiency. Maybe in that case you should not use Office Live.&lt;/p&gt;
&lt;p&gt;However, where data is only handled only via Access 2007, as in my case, things are manageable. Firstly, I have made sure none of my tables have updateable primary keys, e.g. if there is a table with company details in it and a related table with equipment for that company, the link is via a unique, non-modifiable number rather than the company name. That way, if the company name changes in the parent table, no other data needs to change in the child table (gone is the need for a cascading update). In a &amp;quot;normal&amp;quot; Access database, you could just use an incrementing Autonumber field as the primary key in the company table to do this. However, things are a bit more complicated when using Office Live as the back end if you want to be able to maintain data offline as I do. In Office Live you can only have a unique index on the system-generated ID field in any table and, when using data offline, this number is generated differently from when you are online, i.e. when running online, the ID numbers are incrementing positive numbers and don't ever get altered, but when generated offline, the first record has an ID of -1, then the next record is -2 and so on. When synchronized, they are converted into positive numbers. With the Cool As Ice database there are three main related tables - company --&amp;gt; equipment for that company --&amp;gt; service details for that equipment. Using the system-generated ID field as the unique identifier for each record in each of those tables, it did not synchronize properly, i.e. I got left with some records without parents. To overcome this, I added another field to the company (parent) table which is based on an Autonumber field with its New Values property set to random, thereby allowing the creation of up to ~4 billion random numbers as it is of data type Long Integer, i.e. this is effectively going to guarantee uniqueness. If that is not a large enough number for your database you could presumably use Replication ID instead of Autonumber (even though replication is gone from .accdb files). When creating a new record in the equipment table, I use that value from the company table as the foreign key value and use that field to link master form and subform. As it happens, I create these new numbers in a special table in my Access front end and push them into the relevant fields in the three tables via a simple function. I did this because I have been creating my tables and fields in Office Live and didn't see how to create the equivalent of an Autonumber/Random field there.&lt;/p&gt;
&lt;p&gt;So to sum up, I have to use a substitute &amp;quot;primary key&amp;quot; where I create the uniqueness similar to the manner used in the old Jet replication days.&lt;/p&gt;
&lt;p&gt;The other problem with uniqueness is that you can have two company records with the same Company Name even though their primary keys (ID and/or my random no. field) are different, e.g. you could have two records showing details of Blogit and Son Ltd. Actually, if you had a unique index on that field (which you can't with Office Live), you would have to set up a means of resolving the conflict when synchronizing (which you can't in Office Live, other than using the fairly basic conflict resolver) in the case where such a duplicated record was added offline offline. My customer and I are happy for them to run a check at a time of their choosing to highlight such duplicate records and act on that.&lt;/p&gt;
&lt;p&gt;Lastly, when deleting a record in a parent table, you need to ensure that child records get deleted too. That is fairly easy VBA stuff.&lt;/p&gt;
&lt;p&gt;The end result is that if your database design is not too complicated you need to handle updates, deletions and duplicates a bit differently, but the end result is that you can handle data offline in read-write manner over the internet. For my customer, that was what they were after and, in this case, Access 2007 and Office Live was the basis of a good solution.&lt;/p&gt;
&lt;p&gt;Even more of a last point. Don't create tables in Access and call any of the columns &amp;quot;ID&amp;quot; as that is the name used for the system-generated column in Office Live. If you do use such a name, one gets rename as &amp;quot;_ID&amp;quot; and it gets confusing.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1863426" width="1" height="1"&gt;</description></item><item><title>re: Cool As Ice uses Office Live and Access 2007 with custom ribbon</title><link>http://blogs.msdn.com/b/clintcovington/archive/2007/03/06/cool-as-ice-uses-office-live-and-access-2007-with-custom-ribbon.aspx#1858723</link><pubDate>Sun, 11 Mar 2007 14:26:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1858723</guid><dc:creator>grovelli</dc:creator><description>&lt;p&gt;Alan, how are you coping with the lack of Referential Integrity?&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1858723" width="1" height="1"&gt;</description></item><item><title>re: Cool As Ice uses Office Live and Access 2007 with custom ribbon</title><link>http://blogs.msdn.com/b/clintcovington/archive/2007/03/06/cool-as-ice-uses-office-live-and-access-2007-with-custom-ribbon.aspx#1855677</link><pubDate>Sun, 11 Mar 2007 01:25:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1855677</guid><dc:creator>Alan Cossey</dc:creator><description>&lt;p&gt;Mailmerge again. If you start a mailmerge from Word 2007 and use ODBC there is no need for a linked database, i.e. you can get directly into your offline data database. Much easier!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1855677" width="1" height="1"&gt;</description></item><item><title>re: Cool As Ice uses Office Live and Access 2007 with custom ribbon</title><link>http://blogs.msdn.com/b/clintcovington/archive/2007/03/06/cool-as-ice-uses-office-live-and-access-2007-with-custom-ribbon.aspx#1855627</link><pubDate>Sun, 11 Mar 2007 01:05:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1855627</guid><dc:creator>Alan Cossey</dc:creator><description>&lt;p&gt;Clarification on using synonyms. At the end of my last post I mentioned that all the tables from A.accdb appear at the end. I should have pointed out that you can only actually use ones you have linked to from B.accdb. Thus in my instructions, I said to link one table. The end result of doing that would be that only this table is usable in the mailmerge. If you want more, link to them all from B.accdb.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1855627" width="1" height="1"&gt;</description></item><item><title>re: Cool As Ice uses Office Live and Access 2007 with custom ribbon</title><link>http://blogs.msdn.com/b/clintcovington/archive/2007/03/06/cool-as-ice-uses-office-live-and-access-2007-with-custom-ribbon.aspx#1855598</link><pubDate>Sun, 11 Mar 2007 00:59:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1855598</guid><dc:creator>Alan Cossey</dc:creator><description>&lt;p&gt;Here are a couple of work arounds for Word mailmerge. The first requires you to be online to use your offline data but the second does not.&lt;/p&gt;
&lt;p&gt;Let's assume our offline data is in A.accdb and in B.accdb we connect to a couple of the tables in A.accdb using linked tables. Using Office Live as the Sharepoint source...&lt;/p&gt;
&lt;p&gt;1) As long as you have an internet connection you can start the Word mailmerge wizard off in B.accdb. However, it prompts you for your Windows Live ID and password before it lets you progress. This may or may not be a useful way of doing it.&lt;/p&gt;
&lt;p&gt;2) If you are not connected to the internet, you can still do it. In Word 2007 (don't know about previous versions), &lt;/p&gt;
&lt;p&gt;Create a new Word document.&lt;/p&gt;
&lt;p&gt;Click on the Mailings tab. &lt;/p&gt;
&lt;p&gt;Click on Select Recipients in the ribbon. &lt;/p&gt;
&lt;p&gt;Select &amp;quot;Use Existing List&amp;quot; and then, using the file dialog that comes up, find B.accdb (not A.accdb). You will be presented with an error message saying, &amp;quot;This data source contains no visible tables.&amp;quot; Don't be put off. Click OK. &lt;/p&gt;
&lt;p&gt;You will be presented with another error message saying that Word can't find A.mdb (even though you selected B.accdb. A.mdb doesn't exist anyway though A.accdb does). Click OK. &lt;/p&gt;
&lt;p&gt;You will now be presented with a Log In dialog box. Click the Database button and select B.accdb. Click OK then OK again. &lt;/p&gt;
&lt;p&gt;You will now be presented with a dialog box saying Select Table, but won't see any tables. &lt;/p&gt;
&lt;p&gt;Click the Options button. You should see that just the Tables checkbox is already ticked. &lt;/p&gt;
&lt;p&gt;Tick the Synonyms checkbox then click OK. &lt;/p&gt;
&lt;p&gt;Voil&amp;#224;. Now you should be able to see all the tables in A.accdb (not just the one you linked to from B.accdb). You should now be able to use the data from A.accdb.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1855598" width="1" height="1"&gt;</description></item><item><title>re: Cool As Ice uses Office Live and Access 2007 with custom ribbon</title><link>http://blogs.msdn.com/b/clintcovington/archive/2007/03/06/cool-as-ice-uses-office-live-and-access-2007-with-custom-ribbon.aspx#1855451</link><pubDate>Sun, 11 Mar 2007 00:35:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1855451</guid><dc:creator>Alan Cossey</dc:creator><description>&lt;p&gt;Grovelli and Clint,&lt;/p&gt;
&lt;p&gt;I was overly complicating things in my stuff about DoCmd.Synchronize and so on. When I did my testing earlier I am sure the app hung if I was not already connected to the internet or had a form open. Hence my blurb about using that API to check whether the app was connected or not (I also closed all forms and reports first). That is why I didn't use the built-in idMso as in &amp;lt;button idMso=&amp;quot;SynchronizeData&amp;quot; size=&amp;quot;large&amp;quot;/&amp;gt;. However, on trying it again now with the built-in version, it fails gracefully if there is no internet connection and works if there is a connection, i.e. it acts as you would hope. I must be cracking up. I'll change my app to use &amp;lt;button idMso=&amp;quot;SynchronizeData&amp;quot; size=&amp;quot;large&amp;quot;/&amp;gt;.&lt;/p&gt;
&lt;p&gt;Thanks for the background info on how the synchronization works, Clint.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1855451" width="1" height="1"&gt;</description></item><item><title>re: Cool As Ice uses Office Live and Access 2007 with custom ribbon</title><link>http://blogs.msdn.com/b/clintcovington/archive/2007/03/06/cool-as-ice-uses-office-live-and-access-2007-with-custom-ribbon.aspx#1853766</link><pubDate>Sat, 10 Mar 2007 20:21:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1853766</guid><dc:creator>Clint Covington _MS_</dc:creator><description>&lt;p&gt;Thanks for the comments Alan. Couple comments...&lt;/p&gt;
&lt;p&gt;The ribbon has a far easier extensibility model than &amp;nbsp;using and application.commandbars or even doCmd. If there is a ribbon command on the ribbon all you need to do is use the idMSO in your ribbon XML. Something like &lt;/p&gt;
&lt;p&gt;&amp;lt;button idMso=&amp;quot;ExportExcel&amp;quot; label=&amp;quot;Export to Excel&amp;quot; size=&amp;quot;normal&amp;quot;/&amp;gt;&lt;/p&gt;
&lt;p&gt;Internally, we will track the enabled and disabled state for you. You can find the list of all controls at the following download (I'm not sure what the name is for sync...).&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.microsoft.com/downloads/details.aspx?familyid=4329d9e9-4d11-46a5-898d-23e4f331e9ae&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=4329d9e9-4d11-46a5-898d-23e4f331e9ae&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Let me explain how the data is cached. SharePoint and Office Live expose all &amp;nbsp;lists as web services. Access has an ISAM that connects it with those data sources via the web services. When the application is taken offline a couple things happen. First we prompt to save a local copy of the database if you opened it read only from a SharePoint document library. Second, we take a snapshot of all the link tables and save them locally in the database. There are internal flags that track the updates, deletes, and additions. We also track the time stamp of when the database came offline. When the user syncs we call a SharePoint web service method called GetItemsSinceLastChanged(). This returns all the changed records. These changes are merged with the local changes and local changes are pushed to the server. &lt;/p&gt;
&lt;p&gt;We did lots of work to make sure whenever connecting to the server that we use the GetItemsSinceLastChanged to reduce the size of data that has to traverse the internet or network.&lt;/p&gt;
&lt;p&gt;Alan did report a bug to us where you can't do a mail merge when offline. The problem is offline databases are always opened exclusive. This lock is preventing Word from getting to the data. We are looking at different options for SP1.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1853766" width="1" height="1"&gt;</description></item></channel></rss>