<?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>Microsoft Access Team Blog : Ribbon</title><link>http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx</link><description>Tags: Ribbon</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Access 2010 Create ribbon</title><link>http://blogs.msdn.com/access/archive/2009/11/17/access-2010-create-ribbon.aspx</link><pubDate>Wed, 18 Nov 2009 05:31:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9924074</guid><dc:creator>Clint Covington</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/access/comments/9924074.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=9924074</wfw:commentRss><description>&lt;p&gt;Web databases introduced a few ribbon design challenges, particularly how to present client and web create options? We wanted to make sure that people creating client objects are just as successful as web objects. &lt;/p&gt;  &lt;p&gt;When you create a new database from scratch, you have two options: either to open a blank database or a blank Web database. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/access/WindowsLiveWriter/Access2010Createribbon_12E98/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/access/WindowsLiveWriter/Access2010Createribbon_12E98/image_thumb.png" width="262" height="178" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Creating a new blank Web database opens a new database that allows you to create both Web and Client objects. Client objects have the full designers and ability to include VBA whereas the Web object designers enable you to build tables, queries, forms, reports and macros that can run on the Web and take advantage of the functionalities of &lt;a href="http://blogs.msdn.com/access/archive/2009/10/19/access-web-databases-and-the-access-show.aspx"&gt;Access Services&lt;/a&gt;. The Create ribbon makes it easy to create Web objects by selecting any of the top level options. Client objects can be created by selecting the options in the Client Forms, Client Reports and Client Objects dropdowns.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/access/WindowsLiveWriter/Access2010Createribbon_12E98/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/access/WindowsLiveWriter/Access2010Createribbon_12E98/image_thumb_4.png" width="656" height="111" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Creating a new blank database opens a new database that has the full designers. Any form, report, query or macro you create in this database cannot run on the Web. This Create ribbon is below and gives all the Client objects you can create.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/access/WindowsLiveWriter/Access2010Createribbon_12E98/image_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/access/WindowsLiveWriter/Access2010Createribbon_12E98/image_thumb_5.png" width="640" height="77" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can still publish the database to Access Services. You do this by going to the File tab, going to the Save &amp;amp; Publish tab and selecting the Publish to Access Services option. Once the database passes compatibility checker and publishes, you can create Web objects to bring parts of your database to the Web. At this point, the ribbon changes to the Web database ribbon that optimizes entry points to create Web objects.&lt;/p&gt;  &lt;p&gt;There will be a few changes coming after Beta 2… For book authors interested in how the Create ribbon will look when we ship Access 2010, you can reference the ribbon below.&lt;/p&gt;  &lt;h5&gt;&lt;strong&gt;RTM Web Database:&lt;/strong&gt;&lt;/h5&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/access/WindowsLiveWriter/Access2010Createribbon_12E98/clip_image002%5B4%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[4]" border="0" alt="clip_image002[4]" src="http://blogs.msdn.com/blogfiles/access/WindowsLiveWriter/Access2010Createribbon_12E98/clip_image002%5B4%5D_thumb.jpg" width="530" height="102" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h5&gt;&lt;strong&gt;RTM Client Database:&lt;/strong&gt;&lt;/h5&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/access/WindowsLiveWriter/Access2010Createribbon_12E98/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/access/WindowsLiveWriter/Access2010Createribbon_12E98/image_thumb_3.png" width="640" height="79" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9924074" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.msdn.com/access/archive/tags/Access+2010/default.aspx">Access 2010</category><category domain="http://blogs.msdn.com/access/archive/tags/2010+Intro+Series/default.aspx">2010 Intro Series</category></item><item><title>Using the ShowToolbar Method to Hide the Ribbon</title><link>http://blogs.msdn.com/access/archive/2009/10/16/using-the-showtoolbar-method-to-hide-the-ribbon.aspx</link><pubDate>Fri, 16 Oct 2009 21:31:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9908394</guid><dc:creator>Mike Stowe</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/access/comments/9908394.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=9908394</wfw:commentRss><description>&lt;p&gt;&lt;strong&gt;Today’s guest blogger is Edwin Blancovitch. Edwin is president of &lt;/strong&gt;&lt;a href="http://advdev.net/"&gt;&lt;strong&gt;Advanced Developers.net&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, creators of &lt;/strong&gt;&lt;a href="http://www.easypayroll.net/"&gt;&lt;strong&gt;Easy Payroll&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, a software package to manage your human resources, payroll, scheduling, time and attendance needs.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I have been using the ribbon for the last two years and I like it so much, however there was a situation where I wanted to hide the ribbon. I used the Minimize the Ribbon command to hide it, but there was still some space being used by the Office button and the ribbon tabs. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/access/WindowsLiveWriter/4c8309168de3_D515/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/access/WindowsLiveWriter/4c8309168de3_D515/image_thumb_1.png" width="364" height="182" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After some experimentation and some research I found that I could use the &lt;a href="http://msdn.microsoft.com/en-us/library/bb214112.aspx"&gt;ShowToolbar&lt;/a&gt; method to hide the ribbon. The following line of code makes the ribbon disappear completely, and allows you to see the application like in Office 2003, without the command bars. &lt;/p&gt;  &lt;pre class="csharpcode"&gt;DoCmd.ShowToolbar &lt;span class="str"&gt;&amp;quot;Ribbon&amp;quot;&lt;/span&gt;, acToolbarNo&lt;/pre&gt;
&lt;style type="text/css"&gt;






.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;That will make the ribbon disappear completely, and allow you to see the application like in Office 2003, without the command bars.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/access/WindowsLiveWriter/4c8309168de3_D515/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/access/WindowsLiveWriter/4c8309168de3_D515/image_thumb_2.png" width="364" height="160" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;To display the ribbon again, use this code:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;DoCmd.ShowToolbar &lt;span class="str"&gt;&amp;quot;Ribbon&amp;quot;&lt;/span&gt;, acToolbarYes&lt;/pre&gt;
&lt;style type="text/css"&gt;




.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/access/archive/2009/05/21/how-to-create-a-shortcut-menu-for-a-form-form-control-or-report.aspx"&gt;I wrote an article&lt;/a&gt; a long time ago for creating context command bars with VBA code, now it will be great to experiment by creating new command bars that go in the top menu. You can use context command bars in your forms, and make it work the way you wanted.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9908394" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.msdn.com/access/archive/tags/Power+Tips/default.aspx">Power Tips</category></item><item><title>Simplifying Ribbon Modification at Runtime</title><link>http://blogs.msdn.com/access/archive/2009/04/27/simplifying-ribbon-modification-at-runtime.aspx</link><pubDate>Tue, 28 Apr 2009 00:27:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9572050</guid><dc:creator>accblog</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/access/comments/9572050.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=9572050</wfw:commentRss><description>&lt;p&gt;Access MVP Albert Kallal has developed a Ribbon class object that you can use to simplify modifying Ribbon commands at runtime.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The office ribbon is an amazing new interface.&lt;/p&gt;    &lt;p&gt;The problem with the ribbon is that takes a lot of code to change the ribbon at runtime.&lt;/p&gt;    &lt;p&gt;&lt;i&gt;Solution: With my ribbon class you can enable, hide, change label text, or pictures of a button with great ease and very little code.&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;This ribbon class allows you to use the simple &amp;quot;old style&amp;quot; syntax to enable, hide, or change the text of a button.&lt;/p&gt;    &lt;p&gt;e.g.:&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;meRib(&amp;quot;Button1&amp;quot;).enabled = true&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;meRib(&amp;quot;Button1&amp;quot;).label = &amp;quot;this is the new text&amp;quot; &amp;amp; _&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot; for button1 on the ribbon&amp;quot;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;meRib(&amp;quot;Button1&amp;quot;).picture = &amp;quot;HappyFace.png&amp;quot;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The entire article, along with a sample implementation of the class, is available &lt;a href="http://www.members.shaw.ca/AlbertKallal/Ribbon/ribbon.htm"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9572050" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.msdn.com/access/archive/tags/User+Interface/default.aspx">User Interface</category><category domain="http://blogs.msdn.com/access/archive/tags/Code/default.aspx">Code</category></item><item><title>Review of ribbon design tool</title><link>http://blogs.msdn.com/access/archive/2009/03/26/review-of-ribbon-design-tool.aspx</link><pubDate>Fri, 27 Mar 2009 07:42:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9513011</guid><dc:creator>Clint Covington</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/access/comments/9513011.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=9513011</wfw:commentRss><description>&lt;p&gt;Access MVP &lt;a href="https://mvp.support.microsoft.com/profile=3B4C147B-CC21-40FE-9B2C-FCDC30C152C5"&gt;Garry Robinson&lt;/a&gt; and editor of &lt;a href="http://vb123.com/"&gt;vb123.com&lt;/a&gt; recently wrote a nice review article on &lt;a href="http://www.accessribbon.de/en/"&gt;IBDE Ribbon Creator&lt;/a&gt;. You all should find it enlightening.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.databasejournal.com/features/msaccess/article.php/3803996/Making-Your-Own-Access-2007-Ribbon.htm" href="http://www.databasejournal.com/features/msaccess/article.php/3803996/Making-Your-Own-Access-2007-Ribbon.htm"&gt;http://www.databasejournal.com/features/msaccess/article.php/3803996/Making-Your-Own-Access-2007-Ribbon.htm&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9513011" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.msdn.com/access/archive/tags/Tools/default.aspx">Tools</category><category domain="http://blogs.msdn.com/access/archive/tags/Power+Tips/default.aspx">Power Tips</category></item><item><title>Built-in Tab Names in Access Ribbons</title><link>http://blogs.msdn.com/access/archive/2008/12/09/built-in-tab-names-in-access-ribbons.aspx</link><pubDate>Wed, 10 Dec 2008 08:16:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9189351</guid><dc:creator>robcooper</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/access/comments/9189351.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=9189351</wfw:commentRss><description>&lt;p&gt;If you've tried to create a Ribbon customization that included one of the built-in controls in Access you've probably seen that you can use the Customize page in the Access Options dialog to get the names of groups and controls. You can also &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=4329d9e9-4d11-46a5-898d-23e4f331e9ae&amp;amp;displaylang=en"&gt;download&lt;/a&gt; the entire list of controls from the Microsoft web site. Unfortunately, the dialog does not include the list of built-in tabs.&lt;/p&gt;  &lt;p&gt;For simplicity, here is the list of built-in tabs taken from this list:&lt;/p&gt; TabPrintPreviewAccess  &lt;br /&gt;TabHomeAccess  &lt;br /&gt;TabCreate  &lt;br /&gt;TabExternalData  &lt;br /&gt;TabDatabaseTools  &lt;br /&gt;TabSourceControl  &lt;br /&gt;TabAddIns  &lt;br /&gt;TabFormToolsFormatting  &lt;br /&gt;TabControlLayout  &lt;br /&gt;TabFormToolsDesign  &lt;br /&gt;TabFormToolsLayout  &lt;br /&gt;TabReportToolsFormatting  &lt;br /&gt;TabReportToolsLayout  &lt;br /&gt;TabReportToolsPageSetupLayout  &lt;br /&gt;TabReportToolsDesign  &lt;br /&gt;TabReportToolsAlignment  &lt;br /&gt;TabReportToolsPageSetupDesign  &lt;br /&gt;TabRelationshipToolsDesign  &lt;br /&gt;TabQueryToolsDesign  &lt;br /&gt;TabMacroToolsDesign  &lt;br /&gt;TabPivotTableDesign  &lt;br /&gt;TabPivotChartDesign  &lt;br /&gt;TabTableToolsDatasheet  &lt;br /&gt;TabTableToolsDesignAccess  &lt;br /&gt;TabAdpFunctionAndViewToolsDesign  &lt;br /&gt;TabAdpStoredProcedureToolsDesign  &lt;br /&gt;TabAdpSqlStatementDesign  &lt;br /&gt;TabAdpDiagramDesign  &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9189351" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.msdn.com/access/archive/tags/User+Interface/default.aspx">User Interface</category><category domain="http://blogs.msdn.com/access/archive/tags/Code/default.aspx">Code</category></item><item><title>Tell me about how you are extending the Ribbon</title><link>http://blogs.msdn.com/access/archive/2008/04/03/tell-me-about-how-you-are-extending-the-ribbon.aspx</link><pubDate>Thu, 03 Apr 2008 19:02:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8354233</guid><dc:creator>Clint Covington</dc:creator><slash:comments>16</slash:comments><comments>http://blogs.msdn.com/access/comments/8354233.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=8354233</wfw:commentRss><description>&lt;p&gt;I'm thinking about putting together a blog post that shows what the community has done with ribbon extensibility. From my conversations with lots of developers people are still trying to wrap their heads around the new user model It seems that having a few examples might stimulate some ideas. &lt;/p&gt;  &lt;p&gt;This will also be helpful as we think about the ribbon in Office 14.&lt;/p&gt;  &lt;p&gt;If you want me to consider your app as one of the featured apps &lt;a href="mailto:clintondee@gmail.com"&gt;email&lt;/a&gt; my spam account a brief description with a few screen shots. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8354233" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category></item><item><title>New update for Ribbon Creator</title><link>http://blogs.msdn.com/access/archive/2008/03/26/new-update-for-ribbon-creator.aspx</link><pubDate>Thu, 27 Mar 2008 08:01:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8338995</guid><dc:creator>Clint Covington</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/access/comments/8338995.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=8338995</wfw:commentRss><description>&lt;p&gt;Avenius Gunter's &lt;a href="http://www.ribboncreator.de/en/?Ribbon_Creator"&gt;Ribbon Creator&lt;/a&gt; just got better. Earlier this month he released version 1.1016 with a number of changes:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;New Features:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Callback &amp;quot;getVisible&amp;quot; integrated in Ribbon XML.&lt;/li&gt;      &lt;li&gt;Callback &amp;quot;getEnabled&amp;quot; integrated in Ribbon XML.&lt;/li&gt;      &lt;li&gt;Tab Finish: Option to disable the Help Button on the ribbon.&lt;/li&gt;      &lt;li&gt;Tab Finish: Open the selected Database.&lt;/li&gt;      &lt;li&gt;Tab Finish: Option to replace an existing modul &amp;quot;basCallbacks&amp;quot; in a database.&lt;/li&gt;      &lt;li&gt;ButtonGroups &lt;/li&gt;      &lt;li&gt;ButtonGroup Editor for       &lt;ul&gt;         &lt;li&gt;Button&lt;/li&gt;          &lt;li&gt;Togglebuttons&lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;Control idMsos for Buttons (Only Access).&lt;/li&gt;      &lt;li&gt;Control idMsos for ToogleButtons (Only Access).&lt;/li&gt;      &lt;li&gt;Tag &amp;quot;RibbonName&amp;quot; for Ribbon Controls.&lt;/li&gt;   &lt;/ul&gt; Modifications:    &lt;ul&gt;     &lt;li&gt;&amp;quot;basRibbonCallbacks&amp;quot; has been moved to &amp;quot;%Appdata%IDBE AveniusIDBE Ribbon Creator&amp;quot;.&lt;/li&gt;      &lt;li&gt;The small images were updated (2.326 images total now).&lt;/li&gt;      &lt;li&gt;Number of &amp;quot;Recent Documents&amp;quot; increased to five.&lt;/li&gt;      &lt;li&gt;BugFix: Error related to idMso controls fixed.&lt;/li&gt;      &lt;li&gt;BugFix: The &amp;quot;&amp;amp;&amp;quot; sign will be properly displayed on a ribbon.&lt;/li&gt;      &lt;li&gt;BugFix: related to basRibbonCallbacks - Word/ Excel fixed (ID DD).&lt;/li&gt;      &lt;li&gt;Modul &amp;quot;basGDIPlus&amp;quot; in Word / Excel removed.&lt;/li&gt;      &lt;li&gt;Modul &amp;quot;basRibbonCallbacks&amp;quot; adapted.&lt;/li&gt;      &lt;li&gt;Online help enhanced and updated.&lt;/li&gt;   &lt;/ul&gt; ... and many more.&lt;/blockquote&gt;  &lt;p&gt;Please note, I haven't personally used Ribbon Creator and this post is not an official endorsement. From what I have read it does look like a useful tool.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8338995" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.msdn.com/access/archive/tags/Tools/default.aspx">Tools</category></item><item><title>The story of the Office Ribbon</title><link>http://blogs.msdn.com/access/archive/2008/03/13/the-story-of-the-office-ribbon.aspx</link><pubDate>Thu, 13 Mar 2008 21:53:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8183845</guid><dc:creator>Clint Covington</dc:creator><slash:comments>17</slash:comments><comments>http://blogs.msdn.com/access/comments/8183845.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=8183845</wfw:commentRss><description>&lt;p&gt;Some of you may have already seen this posted in Jensen&amp;#8217;s blog.&amp;#160; Jensen is the GPM of the Office User Experience team and was the lead for the implementation of the Ribbon in Office 2007.&amp;#160; &lt;/p&gt;  &lt;p&gt;Last week at the MIX conference in Las Vegas, Jensen presented &amp;#8220;The Story of the Ribbon&amp;#8221;.&amp;#160; It&amp;#8217;s a chance to get a glimpse of how much design iteration was taking place and some of the good and bad ideas that led to what we have today. &lt;/p&gt;  &lt;p&gt;Links to the talk are posted here in Jensen&amp;#8217;s blog:&amp;#160; &lt;a href="http://blogs.msdn.com/jensenh/archive/2008/03/12/the-story-of-the-ribbon.aspx"&gt;http://blogs.msdn.com/jensenh/archive/2008/03/12/the-story-of-the-ribbon.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Maybe in the future I can put together the story of the Access redesign... In the mean time I highly recommend watching the video--great stuff.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8183845" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category></item><item><title>New Ribbon Reference: RibbonX for Dummies</title><link>http://blogs.msdn.com/access/archive/2008/01/06/new-ribbon-reference-ribbonx-for-dummies.aspx</link><pubDate>Sun, 06 Jan 2008 05:12:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6999106</guid><dc:creator>Zac Woodall</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/access/comments/6999106.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=6999106</wfw:commentRss><description>&lt;p&gt;&lt;a style="float: left" href="http://www.amazon.com/dp/B000X16Q04"&gt;&lt;img height="115" alt="RibbonX For Dummies (For Dummies (Computer/Tech))" src="http://ecx.images-amazon.com/images/I/31mj%2BymczLL._AA115_.jpg" width="115" border="0" /&gt;&lt;/a&gt;Those of you out there building custom Ribbon UI for Access/Office might be interested to know that the Dummies folks have recently released a guide for building Ribbon UI titled (as you might expect) &amp;quot;&lt;a href="http://www.amazon.com/dp/B000X16Q04"&gt;RibbonX for Dummies&lt;/a&gt;&amp;quot;.&amp;#160; The book is a general guide to building Ribbon XML, and it does include a section specifically on Access 2007.&amp;#160; &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6999106" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.msdn.com/access/archive/tags/Reference/default.aspx">Reference</category></item><item><title>Access Ribbon Customizer</title><link>http://blogs.msdn.com/access/archive/2007/12/05/access-ribbon-customizer.aspx</link><pubDate>Thu, 06 Dec 2007 02:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6674455</guid><dc:creator>Zac Woodall</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/access/comments/6674455.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=6674455</wfw:commentRss><description>&lt;P&gt;One of our Access support leads, Claton Hendricks, has put together a tool he calls &lt;A class="" href="http://www.ribboncustomizer.clatonh.com/" mce_href="http://www.ribboncustomizer.clatonh.com/"&gt;Access Ribbon Customizer&lt;/A&gt; for Access developers who need to build custom ribbons.&amp;nbsp; This tool is slightly reminiscent of&amp;nbsp;(though not exactly the same as)&amp;nbsp;the built-in command bar customization in Access 2003.&amp;nbsp; It has a visual picker which allows you to see what commands are available and use them to build a ribbon on the fly, cool stuff.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Thank you Claton for your contribution to the community!&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;EM&gt;BTW: this is not to be confused with Patrick Schmid's &lt;/EM&gt;&lt;EM&gt;&lt;A class="" href="http://pschmid.net/office2007/ribboncustomizer/index.php" mce_href="http://pschmid.net/office2007/ribboncustomizer/index.php"&gt;Ribbon Customizer&lt;/A&gt;&lt;/EM&gt;&lt;EM&gt; which we've previously blogged about,&amp;nbsp;which is also a very cool tool.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;UPDATE:&lt;/STRONG&gt; By the way, Claton's tool is still in testing.&amp;nbsp;He's actively working on improving the quality and taking other feedback.&amp;nbsp; Please feel free to contact him through his page to send yours.&amp;nbsp; Also, Tony D'Ambra has a tool called the &lt;A class="" href="http://www.aadconsulting.com/betas.html" mce_href="http://www.aadconsulting.com/betas.html"&gt;Custom RibbonX Reviewer for Access 2007&lt;/A&gt; which is currently at the beta 2 stage.&amp;nbsp; Thank you Tony for the pointer!&amp;nbsp; It is awesome to see so many members of the community stepping in here to try and address the need for a graphical ribbon building tool!&amp;nbsp; &lt;/P&gt;
&lt;P&gt;If anyone else has Ribbon related tools that they would like to send a pointer to, please respond in the comments for this post.&amp;nbsp; I'm going to be putting together a page for&amp;nbsp;Access developer tools and other resources like this, and I'll be sure you get listed.&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6674455" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.msdn.com/access/archive/tags/Download/default.aspx">Download</category><category domain="http://blogs.msdn.com/access/archive/tags/Tools/default.aspx">Tools</category></item><item><title>Ribbon Customization - Repurposing Commands</title><link>http://blogs.msdn.com/access/archive/2007/10/10/ribbon-customization-repurposing-commands.aspx</link><pubDate>Thu, 11 Oct 2007 01:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5395088</guid><dc:creator>robcooper</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/access/comments/5395088.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=5395088</wfw:commentRss><description>&lt;P&gt;Sue and I were talking the other day about Ribbon customizations with regard to some training materials that she is preparing for our support engineers. Along the way I mentioned &lt;A href="http://msdn2.microsoft.com/en-us/library/bb462633.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb462633.aspx"&gt;command repurposing&lt;/A&gt; and how you could do some pretty cool stuff with it in Access applications. She suggested that this might make a good blog post and I think she's right.&lt;/P&gt;
&lt;P&gt;I've been working on an application to track the work that I do throughout the year, and thought I would add a database password to &lt;A href="http://office.microsoft.com/en-us/access/HA100962991033.aspx?pid=CH100621891033" mce_href="http://office.microsoft.com/en-us/access/HA100962991033.aspx?pid=CH100621891033"&gt;encrypt&lt;/A&gt; the database. Since Access has this command built in on the Ribbon, I could use the &lt;STRONG&gt;idMso&lt;/STRONG&gt; attribute of a button set to &lt;STRONG&gt;SetDatabasePassword&lt;/STRONG&gt; to add this command to my database. Cool - however, adding a database password requires that the database is opened exclusively, and I didn't really want to see the built-in error message with the built-in command. Enter command repurposing.&lt;/P&gt;
&lt;P&gt;Repurposing a command refers to the ability to use a built-in command in the Ribbon, but to provide your own functionality with that command. In my scenario, I wanted Access to encrypt the database, but I want my own error message when the database is not opened exclusively. To do this is actually quite simple. In the XML for the customization, specify the command that you want to repurpose using the command element. Then, specify the control that you want to use (in this case, the SetDatabasePassword button) in a Ribbon.&lt;/P&gt;&lt;CODE style="FONT-SIZE: small"&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;customUI&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;xmlns&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;http://schemas.microsoft.com/office/2006/01/customui&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;commands&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;command&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;idMso&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;SetDatabasePassword&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;onAction&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;OnSetPassword&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;commands&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;ribbon&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;tabs&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;tab&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;id&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;tabTab1&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;label&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;Password&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;group&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;id&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;grp&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Group1&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;label&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;Password&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;button&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;idMso&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;SetDatabasePassword&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;size&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;large&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;label&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;Set Password&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;group&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;BR&gt;&lt;CODE style="FONT-SIZE: small"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;SPAN style="COLOR: #800000"&gt;tab&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;SPAN style="COLOR: #800000"&gt;tabs&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;ribbon&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;BR&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;customUI&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/CODE&gt;
&lt;P&gt;Add this XML to a USysRibbons table and set the RibbonName property of the database to match the entry in the table.&lt;/P&gt;
&lt;P&gt;The onAction callback of a repurposed command is slightly different from that of a regular control in that it allows you to indicate whether or not to cancel the default action of the built-in command. Add the following code for the OnSetPassword callback routine:&lt;/P&gt;
&lt;P&gt;&lt;CODE style="FONT-SIZE: small"&gt;&lt;SPAN style="COLOR: navy"&gt;Public Sub&lt;/SPAN&gt; OnSetPassword(control &lt;SPAN style="COLOR: navy"&gt;As&lt;/SPAN&gt; IRibbonControl, &lt;SPAN style="COLOR: navy"&gt;ByRef&lt;/SPAN&gt; CancelDefault)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;If&lt;/SPAN&gt; (CurrentProject.Connection.Properties!Mode = 12) &lt;SPAN style="COLOR: navy"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CancelDefault = &lt;SPAN style="COLOR: navy"&gt;False&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;Else&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox "You must open the database exclusively to set the database password.", _&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vbExclamation, "Cannot Set Password"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CancelDefault = &lt;SPAN style="COLOR: navy"&gt;True&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;End If&lt;BR&gt;End Sub&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;If the database is opened exclusively (Mode=12), we'll allow the default action to continue by setting the CancelDefault parameter to False. If the database is not opened exclusively, we'll stop the built-in action by setting it this argument to True. To try this out, click the button in the new tab that was added by the customization.&lt;/P&gt;
&lt;P&gt;Thanks Sue for the suggestion!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5395088" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.msdn.com/access/archive/tags/Code/default.aspx">Code</category></item><item><title>Access 2003 --&amp;gt; Access 2007 UI Guide</title><link>http://blogs.msdn.com/access/archive/2007/10/04/access-2003-access-2007-ui-guide.aspx</link><pubDate>Fri, 05 Oct 2007 01:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5279467</guid><dc:creator>Zac Woodall</dc:creator><slash:comments>15</slash:comments><comments>http://blogs.msdn.com/access/comments/5279467.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=5279467</wfw:commentRss><description>&lt;P&gt;The Access&amp;nbsp;help team has just finished up our new interactive guide for users moving from 2003 to 2007.&amp;nbsp; &lt;A class="" href="http://office.microsoft.com/en-us/access/HA102388991033.aspx" mce_href="http://office.microsoft.com/en-us/access/HA102388991033.aspx"&gt;The guide&lt;/A&gt; is a flash based tutorial which allows you to select a command from the 2003 Access UI, and then see where it has moved to in the 2007 ribbon.&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5279467" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.msdn.com/access/archive/tags/User+Interface/default.aspx">User Interface</category><category domain="http://blogs.msdn.com/access/archive/tags/Reference/default.aspx">Reference</category><category domain="http://blogs.msdn.com/access/archive/tags/Power+Tips/default.aspx">Power Tips</category></item><item><title>Ribbon Customization: Using a dynamicMenu to Show a List of Open Objects</title><link>http://blogs.msdn.com/access/archive/2007/09/27/ribbon-customization-using-a-dynamicmenu-to-show-a-list-of-open-objects.aspx</link><pubDate>Fri, 28 Sep 2007 08:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5179760</guid><dc:creator>robcooper</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/access/comments/5179760.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=5179760</wfw:commentRss><description>&lt;P&gt;This is the third post in my short three-part series on ribbon customizations in Access. In the previous post, I showed how you could fill a dropdown with a list of the open forms in the database. This time, we'll fill a dynamicMenu control in a ribbon customization with a list of open objects of any type. This might be useful to let users switch between open objects in an application.&lt;/P&gt;
&lt;P&gt;Again, we'll start with the XML for customization:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&amp;lt;&lt;SPAN style="COLOR: #800000"&gt;customUI &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;xmlns&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;http://schemas.microsoft.com/office/2006/01/customui&lt;/SPAN&gt;"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;SPAN style="COLOR: #800000"&gt;ribbon &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;startFromScratch&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;SPAN style="COLOR: #800000"&gt;tabs&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;SPAN style="COLOR: #800000"&gt;tab &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;id&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;tab1&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;label&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;Object Helpers&lt;/SPAN&gt;"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;SPAN style="COLOR: #800000"&gt;group &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;id&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;grp1&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;label&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;Helpers&lt;/SPAN&gt;"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;SPAN style="COLOR: #800000"&gt;dynamicMenu &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;id&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;dynObjectList&lt;/SPAN&gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;label&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;Open Objects&lt;/SPAN&gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;getContent&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;OnGetObjectList&lt;/SPAN&gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;invalidateContentOnDrop&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;size&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;large&lt;/SPAN&gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;imageMso&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;EditListItems&lt;/SPAN&gt;"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;SPAN style="COLOR: #800000"&gt;group&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;SPAN style="COLOR: #800000"&gt;tab&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;SPAN style="COLOR: #800000"&gt;tabs&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;SPAN style="COLOR: #800000"&gt;ribbon&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;&amp;lt;/&lt;SPAN style="COLOR: #800000"&gt;customUI&lt;/SPAN&gt;&amp;gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Add this customization as a record in a USysRibbons table and set the RibbonName property of the database to match the entry in the USysRibbons table.&lt;/P&gt;
&lt;P&gt;Before I go into the details of the callbacks, there are a few things you should keep in mind about the dynamicMenu control:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Content is filled at runtime using the getContent attribute&lt;/LI&gt;
&lt;LI&gt;The content of the menu is the XML for a customization which contains a menu control as the root control&lt;/LI&gt;
&lt;LI&gt;The root-level menu in the customization that you create dynamically should include the XML namespace for the Ribbon&lt;/LI&gt;
&lt;LI&gt;The root-level menu in the customization cannot have an id or a label&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The dynamicMenu control also has this pretty cool attribute called invalidateContentOnDrop. When set to true, this causes the control to invalidate which means that the getContent callback is executed for the control. This allows you to show the most recent information in the menu. Given that, let's add the VBA for the callback. Remember that you'll need a reference to the Microsoft Office 12.0 Object Library to compile this code.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: green"&gt;' build the list of open objects&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;Public Sub &lt;/SPAN&gt;OnGetObjectList(ctl &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;IRibbonControl, &lt;SPAN style="COLOR: navy"&gt;ByRef &lt;/SPAN&gt;content)&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' add menu&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; content = "&amp;lt;menu xmlns=""http://schemas.microsoft.com/office/2006/01/customui""&amp;gt;"&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' tables&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; content = content &amp;amp; BuildOpenObjectList(acTable, CurrentData.AllTables)&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' queries&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; content = content &amp;amp; BuildOpenObjectList(acQuery, CurrentData.AllQueries)&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' forms&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; content = content &amp;amp; BuildOpenObjectList(acForm, CurrentProject.AllForms)&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp; ' reports&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; content = content &amp;amp; BuildOpenObjectList(acReport, CurrentProject.AllReports)&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' macros&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; content = content &amp;amp; BuildOpenObjectList(acMacro, CurrentProject.AllMacros)&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' modules&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; content = content &amp;amp; BuildOpenObjectList(acModule, CurrentProject.AllModules)&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' close the menu&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; content = content &amp;amp; "&amp;lt;/menu&amp;gt;"&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;End Sub&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;You'll notice that this routine calls a helper function called BuildOpenObjectList which is used to create the necessary XML for a menu at runtime. Here's the helper function.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: navy"&gt;Private Function&lt;/SPAN&gt; BuildOpenObjectList(lngType &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;AcObjectType, col &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;AllObjects) &lt;SPAN style="COLOR: navy"&gt;As String&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;Dim &lt;/SPAN&gt;strTemp &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;String&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;Dim &lt;/SPAN&gt;obj &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;AccessObject&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' menu separator node&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strTemp = "&amp;lt;menuSeparator id=""ms|1"" title=""|1""/&amp;gt;"&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' add the text in the menu separator&lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;Select Case &lt;/SPAN&gt;lngType&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;Case &lt;/SPAN&gt;AcObjectType.acForm&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strTemp = Replace(strTemp, "|1", "Forms")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;Case &lt;/SPAN&gt;AcObjectType.acMacro&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strTemp = Replace(strTemp, "|1", "Macros")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;Case &lt;/SPAN&gt;AcObjectType.acModule&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strTemp = Replace(strTemp, "|1", "Modules")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;Case &lt;/SPAN&gt;AcObjectType.acQuery&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strTemp = Replace(strTemp, "|1", "Queries")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;Case &lt;/SPAN&gt;AcObjectType.acReport&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strTemp = Replace(strTemp, "|1", "Reports")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;Case &lt;/SPAN&gt;AcObjectType.acTable&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strTemp = Replace(strTemp, "|1", "Tables")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;End Select&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' add buttons for the open objects&lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;For Each&lt;/SPAN&gt; obj &lt;SPAN style="COLOR: navy"&gt;In &lt;/SPAN&gt;col&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;If &lt;/SPAN&gt;(obj.IsLoaded) &lt;SPAN style="COLOR: navy"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strTemp = strTemp &amp;amp; _&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;lt;button " &amp;amp; _&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BuildAttribute("id", "btn" &amp;amp; CleanObjectName(obj.Name)) &amp;amp; " " &amp;amp; _&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BuildAttribute("label", obj.Name) &amp;amp; " " &amp;amp; _&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BuildAttribute("tag", obj.Name &amp;amp; "|" &amp;amp; obj.Type) &amp;amp; " " &amp;amp; _&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BuildAttribute("onAction", "OnOpenObject") &amp;amp; "/&amp;gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp; ' return&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BuildOpenObjectList = strTemp&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;End Function&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Yeah, there's another helper function in there. This one is called BuildAttribute and is used to wrap a string in quotes.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: navy"&gt;Private Function &lt;/SPAN&gt;BuildAttribute(strName &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;String, strValue &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;String) &lt;SPAN style="COLOR: navy"&gt;As String&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BuildAttribute = strName &amp;amp; "=" &amp;amp; Chr(34) &amp;amp; strValue &amp;amp; Chr(34)&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;End Function&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;And, lastly, there's &lt;EM&gt;one more&lt;/EM&gt; helper function to replace some characters that are valid in Access object names but not very XML friendly.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: navy"&gt;Private Function &lt;/SPAN&gt;CleanObjectName(&lt;SPAN style="COLOR: navy"&gt;ByVal &lt;/SPAN&gt;strName &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;String) &lt;SPAN style="COLOR: navy"&gt;As String&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' clean the object name so it is more XML-friendly&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;Const &lt;/SPAN&gt;REPLACE_CHARS &lt;SPAN style="COLOR: navy"&gt;As String&lt;/SPAN&gt; = " &amp;lt;&amp;gt;\/{}"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;Dim &lt;/SPAN&gt;intCounter &lt;SPAN style="COLOR: navy"&gt;As Integer&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;For &lt;/SPAN&gt;intCounter = 1 &lt;SPAN style="COLOR: navy"&gt;To &lt;/SPAN&gt;Len(REPLACE_CHARS)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strName = Replace(strName, Mid(REPLACE_CHARS, intCounter, 1), "")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: navy"&gt;Next&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' return&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CleanObjectName = strName&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;End Function&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;When you put this all together and open some objects for testing, you should have something that looks like this:&lt;/P&gt;
&lt;P&gt;&lt;IMG height=585 alt="Dynamic menu in ribbon customization" src="http://blogs.msdn.com/photos/accessblogimages/images/4967132/original.aspx" width=923 mce_src="http://blogs.msdn.com/photos/accessblogimages/images/4967132/original.aspx"&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5179760" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.msdn.com/access/archive/tags/User+Interface/default.aspx">User Interface</category><category domain="http://blogs.msdn.com/access/archive/tags/Code/default.aspx">Code</category></item><item><title>Ribbon Customization: Filling Dropdown Lists</title><link>http://blogs.msdn.com/access/archive/2007/09/25/ribbon-customization-filling-dropdown-lists.aspx</link><pubDate>Wed, 26 Sep 2007 03:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5132047</guid><dc:creator>robcooper</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/access/comments/5132047.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=5132047</wfw:commentRss><description>&lt;P&gt;In the previous post, I showed you how to create a simple customization to close the currently open object. Continuing along the lines of adding object helpers to an application, we'll add two dropdown lists to a customization to work with forms. The first will list all forms in a database and the second will list the open forms in an application. Start with the XML for the customization. For readability, I've left out the button created in the previous post.&lt;/P&gt;
&lt;P&gt;&lt;CODE style="FONT-SIZE: small; COLOR: blue"&gt;&amp;lt;&lt;SPAN style="COLOR: #800000"&gt;customUI &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;xmlns&lt;/SPAN&gt;="http://schemas.microsoft.com/office/2006/01/customui"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;SPAN style="COLOR: #800000"&gt;ribbon &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;startFromScratch&lt;/SPAN&gt;="false"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;SPAN style="COLOR: #800000"&gt;tabs&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;SPAN style="COLOR: #800000"&gt;tab &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;id&lt;/SPAN&gt;="tab1" &lt;SPAN style="COLOR: red"&gt;label&lt;/SPAN&gt;="Object Helpers"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;SPAN style="COLOR: #800000"&gt;group &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;id&lt;/SPAN&gt;="grp1" &lt;SPAN style="COLOR: red"&gt;label&lt;/SPAN&gt;="Helpers"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;SPAN style="COLOR: #800000"&gt;dropDown &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;id&lt;/SPAN&gt;="ddlAllForms"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;label&lt;/SPAN&gt;="All Forms"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;imageMso&lt;/SPAN&gt;="CreateFormMoreFormsGallery"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;sizeString&lt;/SPAN&gt;="AAAAAAAAAAAAAAA"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;getItemCount&lt;/SPAN&gt;="OnGetItemCount"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;getItemLabel&lt;/SPAN&gt;="OnGetItemLabel"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;onAction&lt;/SPAN&gt;="OnSelectItem"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;SPAN style="COLOR: #800000"&gt;dropDown&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;SPAN style="COLOR: #800000"&gt;dropDown &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;id&lt;/SPAN&gt;="ddlOpenForms"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;label&lt;/SPAN&gt;="Open Forms"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;imageMso&lt;/SPAN&gt;="CreateFormMoreFormsGallery"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;sizeString&lt;/SPAN&gt;="AAAAAAAAAAAAAAA"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;getItemCount&lt;/SPAN&gt;="OnGetItemCount"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;getItemLabel&lt;/SPAN&gt;="OnGetItemLabel"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;onAction&lt;/SPAN&gt;="OnSelectItem"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;SPAN style="COLOR: #800000"&gt;dropDown&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;SPAN style="COLOR: #800000"&gt;group&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;SPAN style="COLOR: #800000"&gt;tab&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;SPAN style="COLOR: #800000"&gt;tabs&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;SPAN style="COLOR: #800000"&gt;ribbon&lt;/SPAN&gt;&amp;gt;&lt;BR&gt;&amp;lt;/&lt;SPAN style="COLOR: #800000"&gt;customUI&lt;/SPAN&gt;&amp;gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Add this customization as an entry in a USysRibbons table in the database and set the Ribbon Name property of the database.&lt;/P&gt;
&lt;P&gt;The customization shown here defines three callback routines used by the dropdown: getItemCount, getItemLabel, and onAction. These callbacks are used to determine the number of items in a dropdown, the label for a single item, and when an item is selected respectively. We're going to write one callback to cover both controls, starting with OnGetItemCount. We'll tell the dropdown to either display the number of forms in the database using the AllForms collection, or the number of open forms using the Forms collection.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: navy"&gt;Public Sub &lt;/SPAN&gt;OnGetItemCount(ctl &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;IRibbonControl, &lt;SPAN style="COLOR: navy"&gt;ByRef &lt;/SPAN&gt;Count)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;' set the number of items to the number of forms in the database&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If &lt;/SPAN&gt;(ctl.ID = "ddlAllForms") &lt;SPAN style="COLOR: navy"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Count = CurrentProject.AllForms.Count&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;' Total number of forms&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ElseIf &lt;/SPAN&gt;(ctl.ID = "ddlOpenForms") &lt;SPAN style="COLOR: navy"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Count = Forms.Count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;' Number of open forms&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;End Sub&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Next, create the OnGetItemLabel callback:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: navy"&gt;Public Sub &lt;/SPAN&gt;OnGetItemLabel(ctl &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;IRibbonControl, Index &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;Integer, &lt;SPAN style="COLOR: navy"&gt;ByRef &lt;/SPAN&gt;Label)&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' set the label&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: navy"&gt;If &lt;/SPAN&gt;(ctl.ID = "ddlAllForms") &lt;SPAN style="COLOR: navy"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Label = CurrentProject.AllForms(Index).Name&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ElseIf &lt;/SPAN&gt;(ctl.ID = "ddlOpenForms") &lt;SPAN style="COLOR: navy"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: green"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' for open forms, use the Caption property of the form if set&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: navy"&gt;If &lt;/SPAN&gt;(Len(Forms(Index).Caption) &amp;gt; 0) &lt;SPAN style="COLOR: navy"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Label = Forms(Index).Caption&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Label = Forms(Index).Name&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;End Sub&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Now, add the OnSelectItem callback that is called when you choose an item in the dropdown. Here, we'll open the currently selected form.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: navy"&gt;Public Sub &lt;/SPAN&gt;OnSelectItem(ctl &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;IRibbonControl, selectedId &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;String, selectedIndex &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;Integer)&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If &lt;/SPAN&gt;(ctl.ID = "ddlAllForms") &lt;SPAN style="COLOR: navy"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoCmd.OpenForm CurrentProject.AllForms(selectedIndex).Name&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ElseIf &lt;/SPAN&gt;(ctl.ID = "ddlOpenForms") &lt;SPAN style="COLOR: navy"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoCmd.OpenForm Forms(selectedIndex).Name&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;End Sub&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Re-open the database to try it out and open some forms. When you go to the Object Helpers tab, you should have something that looks like this:&lt;/P&gt;
&lt;P&gt;&lt;IMG alt="Dropdown lists in ribbon customizations" src="http://blogs.msdn.com/photos/accessblogimages/images/4967133/original.aspx" mce_src="http://blogs.msdn.com/photos/accessblogimages/images/4967133/original.aspx"&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5132047" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.msdn.com/access/archive/tags/User+Interface/default.aspx">User Interface</category><category domain="http://blogs.msdn.com/access/archive/tags/Code/default.aspx">Code</category></item><item><title>Ribbon Customization - Closing the Currently Open Object</title><link>http://blogs.msdn.com/access/archive/2007/09/24/ribbon-customization-closing-the-currently-open-object.aspx</link><pubDate>Mon, 24 Sep 2007 19:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5101400</guid><dc:creator>robcooper</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/access/comments/5101400.aspx</comments><wfw:commentRss>http://blogs.msdn.com/access/commentrss.aspx?PostID=5101400</wfw:commentRss><description>&lt;P&gt;In a &lt;A href="http://blogs.msdn.com/access/archive/2007/08/23/creating-item-templates-for-ribbon-customizations-to-use-in-visual-studio.aspx" mce_href="http://blogs.msdn.com/access/archive/2007/08/23/creating-item-templates-for-ribbon-customizations-to-use-in-visual-studio.aspx"&gt;previous&lt;/A&gt; post, I talked about how much I enjoy developing solutions that use the new Office Fluent Ribbon UI. Along those lines, this post is the first of three upcoming posts on some specific customizations I've used in some applications recently.&lt;/P&gt;
&lt;P&gt;The general scenario is a ribbon customization to help users work with objects in an application. This first post is pretty straight-forward where we'll create a button to close the currently open object. Start with the XML for the customization:&lt;/P&gt;&lt;!-- customization starts here --&gt;
&lt;P&gt;&lt;CODE style="FONT-SIZE: small"&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;customUI &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;xmlns&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;http://schemas.microsoft.com/office/2006/01/customui&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;ribbon &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;startFromScratch&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;tabs&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;tab &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;id&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;tab1&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;label&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;Object Helpers&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;group &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;id&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;grp1&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;label&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;Helpers&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;!-- &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;close current object button&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt; --&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;button &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;id&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;btnCloseObject&lt;/SPAN&gt;" &lt;SPAN style="COLOR: red"&gt;label&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;Close Current Object&lt;/SPAN&gt;" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: red"&gt;size&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;large&lt;/SPAN&gt;" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: red"&gt; imageMso&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;PrintPreviewClose&lt;/SPAN&gt;" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: red"&gt; onAction&lt;/SPAN&gt;="&lt;SPAN style="COLOR: blue"&gt;OnCloseCurrentObject&lt;/SPAN&gt;"/&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;/&lt;SPAN style="COLOR: #800000"&gt;group&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;/&lt;SPAN style="COLOR: #800000"&gt;tab&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;/&lt;SPAN style="COLOR: #800000"&gt;tabs&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;/&lt;SPAN style="COLOR: #800000"&gt;ribbon&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt; &lt;BR&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;/&lt;SPAN style="COLOR: #800000"&gt;customUI&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt; &lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Next, create the USysRibbons table in a database to store ribbon customizations if you haven't already. You can run the following SQL statement in a new query to create the table. Since this is a data definition query, the database will need to be enabled for this to work.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;CREATE TABLE USysRibbons&lt;BR&gt;(&lt;BR&gt;&amp;nbsp; RibbonName Text(255) CONSTRAINT PrimaryKey PRIMARY KEY,&lt;BR&gt;&amp;nbsp; RibbonXml MEMO&lt;BR&gt;);&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;In the USysRibbons table, add a new record and set the RibbonName field to "BlogSample1" and the RibbonXml field to the XML for the customization. Close and re-open the database and click the Object Helpers tab. You should have something that looks like this:&lt;/P&gt;&lt;IMG alt="Close object button in a Ribbon customization in Access 2007" src="http://blogs.msdn.com/photos/accessblogimages/images/4967127/original.aspx"&gt; 
&lt;P&gt;You'll notice that the button in the customization calls a callback in the &lt;A href="http://msdn2.microsoft.com/en-us/library/bb187398.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb187398.aspx"&gt;onAction&lt;/A&gt; attribute called OnCloseCurrentObject. Add the following code to a new module to implement this routine. You'll need a reference to the Microsoft Office 12.0 Object Library for this code to work.&lt;/P&gt;
&lt;P&gt;&lt;CODE style="FONT-SIZE: small"&gt;&lt;SPAN style="COLOR: navy"&gt;Public Sub &lt;/SPAN&gt;OnCloseCurrentObject(ctl &lt;SPAN style="COLOR: navy"&gt;As &lt;/SPAN&gt;IRibbonControl)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoCmd.Close CurrentObjectType, CurrentObjectName&lt;BR&gt;&lt;SPAN style="COLOR: navy"&gt;End Sub&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;We're using the &lt;A href="http://msdn2.microsoft.com/en-us/library/Bb237376.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/Bb237376.aspx"&gt;CurrentObjectType&lt;/A&gt; and &lt;A href="http://msdn2.microsoft.com/en-us/library/bb237371.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb237371.aspx"&gt;CurrentObjectName&lt;/A&gt; properties of the Application object to close the object that is currently open. To try this out, open a few different types of objects and click the button.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5101400" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/access/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://blogs.msdn.com/access/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.msdn.com/access/archive/tags/User+Interface/default.aspx">User Interface</category><category domain="http://blogs.msdn.com/access/archive/tags/Code/default.aspx">Code</category></item></channel></rss>