<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.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>Office Systems Developer : C#</title><link>http://msmvps.com/blogs/officept/archive/tags/C_2300_/default.aspx</link><description>Tags: C#</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Visual Studio Class Library para o Microsoft Access – C# (Parte1)</title><link>http://msmvps.com/blogs/officept/archive/2009/11/04/visual-studio-class-library-para-o-microsoft-access-c-parte1.aspx</link><pubDate>Wed, 04 Nov 2009 11:35:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1737596</guid><dc:creator>Joao Livio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/rsscomments.aspx?PostID=1737596</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/commentapi.aspx?PostID=1737596</wfw:comment><comments>http://msmvps.com/blogs/officept/archive/2009/11/04/visual-studio-class-library-para-o-microsoft-access-c-parte1.aspx#comments</comments><description>&lt;p&gt;Nesta s&amp;eacute;rie de vamos compreender como criar, gerir e implementar um Biblioteca (Class Library) para o Microsoft Access. Vamos utilizar o Visual Studio 2008, C#, Visual Basic e o Microsoft Access 2007. &lt;/p&gt;
&lt;p&gt;Estes exemplos prov&amp;ecirc;m da Class Library que criei este ano e que publiquei no &lt;a target="_blank" href="http://www.codeplex.com/"&gt;Codeplex&lt;/a&gt; &amp;gt; &lt;a target="_blank" href="http://macl.codeplex.com"&gt;aqui&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Porque implementar uma Biblioteca de Classes no Microsoft Access? &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Se implementarmos uma &lt;a target="_blank" href="http://pt.wikipedia.org/wiki/Classe_(programa%C3%A7%C3%A3o)"&gt;Classe&lt;/a&gt; e expormos a mesma, estamos a permitir que o &lt;a target="_blank" href="http://office.microsoft.com/pt-pt/access/default.aspx?ofcresset=1"&gt;Microsoft Access&lt;/a&gt; por si possa utilizar os seus recursos , ou seja, podemos utilizar as facilidades do &lt;a target="_blank" href="http://support.microsoft.com/kb/929300/pt"&gt;Microsoft Framework&lt;/a&gt; no C&amp;oacute;digo VBA, bastando para tal adicionar uma refer&amp;ecirc;ncia para o DLL. Podemos tamb&amp;eacute;m utiliza-la em outro Projecto Visual Studio como por exemplo um Add-in.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;M&amp;aacute;quina cliente Requisitos&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Microsoft Access 2007&lt;/p&gt;
&lt;p&gt;Microsoft Framework 2.0 ou 3.5&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vamos necessitar das seguintes refer&amp;ecirc;ncias:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Microsoft Office 12.0 Object Library&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Interop.Microsoft.Office.Interop.Access &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;No Microsoft Access&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ukase Add-ins&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;O B&amp;aacute;sico &lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Criar A Biblioteca &lt;/li&gt;
&lt;li&gt;Configura&amp;ccedil;&amp;otilde;es iniciais &lt;/li&gt;
&lt;li&gt;Defini&amp;ccedil;&amp;otilde;es de Visibilidade COM &lt;/li&gt;
&lt;li&gt;A Primeira Propriedade &lt;/li&gt;
&lt;li&gt;Implementa&amp;ccedil;&amp;atilde;o COM &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;C&amp;oacute;digo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A Classe&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;[ComVisible(&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;)]&lt;br /&gt;[Guid(&lt;span style="color:#006080;"&gt;&amp;quot;82382232-F1D7-4048-A1E0-F2879BCA0610&amp;quot;&lt;/span&gt;)]&lt;br /&gt;[ClassInterface(ClassInterfaceType.None)]&lt;br /&gt;[ProgId(&lt;span style="color:#006080;"&gt;&amp;quot;M3CommonFunctions&amp;quot;&lt;/span&gt;)]&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; M3CommonFunctions : IM3CommonFunctions&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;Propriedade&lt;/p&gt;
&lt;div&gt;
&lt;pre id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;Assembly asm = Assembly.GetExecutingAssembly();&lt;br /&gt;&lt;br /&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Version GetMACLVersion&lt;br /&gt;     {   &lt;br /&gt;         get {  &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; asm.GetName().Version; }&lt;br /&gt;     }&lt;br /&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Interface&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;[Guid(&lt;span style="color:#006080;"&gt;&amp;quot;4ECAAC7B-711C-4ac0-BBFC-58C4E3E8EE56&amp;quot;&lt;/span&gt;)]&lt;br /&gt;   [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]&lt;br /&gt;   &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;interface&lt;/span&gt; IM3CommonFunctions&lt;br /&gt;   {&lt;br /&gt;       [DispId(1)]&lt;br /&gt;       Version GetMACLVersion  { get; }&lt;br /&gt;   }&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;VISUAL BASIC&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&amp;lt;ComClass(Namespace_Comuns.ClassId, Namespace_Comuns.InterfaceId, Namespace_Comuns.EventsId)&amp;gt; _&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Class&lt;/span&gt; Namespace_Comuns&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;Private&lt;/span&gt; m_VersaoBiblioteca &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc6633;"&gt;#Region&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;COM GUIDs&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#008000;"&gt;&amp;#39; These  GUIDs provide the COM identity for this class &lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#008000;"&gt;&amp;#39; and its COM interfaces. If you change them, existing &lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#008000;"&gt;&amp;#39; clients will no longer be able to access the class.&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Const&lt;/span&gt; ClassId &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;String&lt;/span&gt; = &lt;span style="color:#006080;"&gt;&amp;quot;6b6c0965-e6a5-4089-afbb-0ec787efe024&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Const&lt;/span&gt; InterfaceId &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;String&lt;/span&gt; = &lt;span style="color:#006080;"&gt;&amp;quot;d8c53404-58b4-4f28-9d2f-4912f8cb6723&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Const&lt;/span&gt; EventsId &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;String&lt;/span&gt; = &lt;span style="color:#006080;"&gt;&amp;quot;165be10c-a5a6-4d57-ac49-0ad7a8bd1cd5&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc6633;"&gt;#End Region&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:#008000;"&gt;&amp;#39; A creatable COM class must have a Public Sub New() &lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#008000;"&gt;&amp;#39; with no parameters, otherwise, the class will not be &lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#008000;"&gt;&amp;#39; registered in the COM registry and cannot be created &lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#008000;"&gt;&amp;#39; via CreateObject.&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;New&lt;/span&gt;()&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;MyBase&lt;/span&gt;.&lt;span style="color:#0000ff;"&gt;New&lt;/span&gt;()&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;ReadOnly&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Property&lt;/span&gt; VersaoBiblioteca() &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;String&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;Get&lt;/span&gt;&lt;br /&gt;            m_VersaoBiblioteca = My.Application.Info.Version.ToString&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; m_VersaoBiblioteca&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Get&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Property&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Class&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;VBA&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#0000ff;"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt; Command0_Click()&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; obj &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;New&lt;/span&gt; Ukase.M3CommonFunctions&lt;br /&gt;    MsgBox obj.GetMACLVersion&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;strong&gt;Screencast&lt;/strong&gt;&lt;/div&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:962a347e-c4db-4599-8e69-1f2886581de4" style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;"&gt;
&lt;div&gt;&lt;a target="_new" href="http://www.youtube.com/watch?v=OdQGwV8mwzI"&gt;&lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jlivio.metablogapi/4745.videoc69b690132ec_5F00_7F3868FF.jpg" style="border-style:none;" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1737596" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/officept/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://msmvps.com/blogs/officept/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/officept/archive/tags/VSTO/default.aspx">VSTO</category><category domain="http://msmvps.com/blogs/officept/archive/tags/Portuguese+Related/default.aspx">Portuguese Related</category></item><item><title>Get Access ADOX Synonymous from Framework DataColumn</title><link>http://msmvps.com/blogs/officept/archive/2009/04/29/get-access-adox-synonymous-from-framework-datacolumn.aspx</link><pubDate>Wed, 29 Apr 2009 20:55:43 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1691558</guid><dc:creator>Joao Livio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/rsscomments.aspx?PostID=1691558</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/commentapi.aspx?PostID=1691558</wfw:comment><comments>http://msmvps.com/blogs/officept/archive/2009/04/29/get-access-adox-synonymous-from-framework-datacolumn.aspx#comments</comments><description>&lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; ADOX.DataTypeEnum GetAccessFormats(DataColumn col)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;switch&lt;/span&gt; (col.DataType.Name)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Boolean&amp;quot;&lt;/span&gt;:&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ADOX.DataTypeEnum.adBoolean;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Byte&amp;quot;&lt;/span&gt;:&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ADOX.DataTypeEnum.adUnsignedTinyInt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Char&amp;quot;&lt;/span&gt;:&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ADOX.DataTypeEnum.adVarWChar;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;DateTime&amp;quot;&lt;/span&gt;:&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ADOX.DataTypeEnum.adDate;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Decimal&amp;quot;&lt;/span&gt;:&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ADOX.DataTypeEnum.adDecimal;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Double&amp;quot;&lt;/span&gt;:&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ADOX.DataTypeEnum.adDouble;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Int16&amp;quot;&lt;/span&gt;:&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ADOX.DataTypeEnum.adSmallInt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Int32&amp;quot;&lt;/span&gt;:&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ADOX.DataTypeEnum.adInteger;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Int64&amp;quot;&lt;/span&gt;:&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ADOX.DataTypeEnum.adInteger;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;SByte&amp;quot;&lt;/span&gt;:&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ADOX.DataTypeEnum.adUnsignedSmallInt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Single&amp;quot;&lt;/span&gt;:&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ADOX.DataTypeEnum.adSingle;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;String&amp;quot;&lt;/span&gt;:&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ADOX.DataTypeEnum.adVarWChar;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;TimeStamp&amp;quot;&lt;/span&gt;:&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ADOX.DataTypeEnum.adGUID;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;default&lt;/span&gt;:&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ADOX.DataTypeEnum.adUserDefined;&lt;br /&gt;            }&lt;br /&gt;        }&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;You can also ENUM the options&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;[Flags]&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;enum&lt;/span&gt; ADOXFields&lt;br /&gt;        {&lt;br /&gt;            AccessText = DataTypeEnum.adVarWChar,&lt;br /&gt;            AccessMemo = DataTypeEnum.adLongVarWChar,&lt;br /&gt;            AccessNumericByte = DataTypeEnum.adUnsignedTinyInt,&lt;br /&gt;            AccessNumericInteger  = DataTypeEnum.adSmallInt,&lt;br /&gt;            AccessNumericLongInteger = DataTypeEnum.adInteger,&lt;br /&gt;            AccessNumericSinglePrecision = DataTypeEnum.adSingle,&lt;br /&gt;            AccessNumericDoublePrecision = DataTypeEnum.adDouble,&lt;br /&gt;            AccessNumericReplicatieId = DataTypeEnum.adGUID,&lt;br /&gt;            AccessNumericDecimal = DataTypeEnum.adNumeric,&lt;br /&gt;            AccessDateTime = DataTypeEnum.adDate,&lt;br /&gt;            AccessCurrency = DataTypeEnum.adCurrency,&lt;br /&gt;            AccessAutoNumber = DataTypeEnum.adInteger,&lt;br /&gt;            AccessYesNo = DataTypeEnum.adBoolean,&lt;br /&gt;            AccessHyperLink = DataTypeEnum.adLongVarWChar&lt;br /&gt;        }&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VB.NET&lt;/strong&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;span style="color:#0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Shared&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Function&lt;/span&gt; GetAccessFormats(&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; col &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; DataColumn) &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; ADOX.DataTypeEnum&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;Select&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; (col.DataType.Name)&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Boolean&amp;quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; ADOX.DataTypeEnum.adBoolean&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Byte&amp;quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; ADOX.DataTypeEnum.adUnsignedTinyInt&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Char&amp;quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; ADOX.DataTypeEnum.adVarWChar&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;DateTime&amp;quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; ADOX.DataTypeEnum.adDate&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Decimal&amp;quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; ADOX.DataTypeEnum.adDecimal&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Double&amp;quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; ADOX.DataTypeEnum.adDouble&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Int16&amp;quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; ADOX.DataTypeEnum.adSmallInt&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Int32&amp;quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; ADOX.DataTypeEnum.adInteger&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Int64&amp;quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; ADOX.DataTypeEnum.adInteger&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;SByte&amp;quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; ADOX.DataTypeEnum.adUnsignedSmallInt&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;Single&amp;quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; ADOX.DataTypeEnum.adSingle&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;String&amp;quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; ADOX.DataTypeEnum.adVarWChar&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;TimeStamp&amp;quot;&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; ADOX.DataTypeEnum.adGUID&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;Case&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Else&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; ADOX.DataTypeEnum.adUserDefined&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Select&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; Function&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1691558" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/officept/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://msmvps.com/blogs/officept/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/officept/archive/tags/VSTO/default.aspx">VSTO</category></item><item><title>VSTO (Access) – Convert a Field to Upper, Lower, Proper</title><link>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-convert-a-field-to-upper-lower-proper.aspx</link><pubDate>Wed, 22 Apr 2009 21:54:32 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1690142</guid><dc:creator>Joao Livio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/rsscomments.aspx?PostID=1690142</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/commentapi.aspx?PostID=1690142</wfw:comment><comments>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-convert-a-field-to-upper-lower-proper.aspx#comments</comments><description>&lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; ConvertFieldToUpper(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; MyTable, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; MyField)&lt;br /&gt;        {&lt;br /&gt;            Access.Application oAccess = ((Access.Application)&lt;br /&gt;                (Marshal.GetActiveObject(&lt;span style="color:#006080;"&gt;&amp;quot;Access.Application&amp;quot;&lt;/span&gt;)));&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; strSQL;&lt;br /&gt;                strSQL = String.Format(&lt;span style="color:#006080;"&gt;&amp;quot;UPDATE {0} SET {1} = UCase([{1}])&amp;quot;&lt;/span&gt;, MyTable, MyField);&lt;br /&gt;&lt;br /&gt;                oAccess.DoCmd.RunSQL(strSQL.ToString(),&lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;);&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;OK&amp;quot;&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (Exception)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;finally&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                Marshal.ReleaseComObject(oAccess);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; ConvertFieldToLower(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; MyTable, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; MyField)&lt;br /&gt;        {&lt;br /&gt;            Access.Application oAccess = ((Access.Application)&lt;br /&gt;                (Marshal.GetActiveObject(&lt;span style="color:#006080;"&gt;&amp;quot;Access.Application&amp;quot;&lt;/span&gt;)));&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; strSQL;&lt;br /&gt;                strSQL = String.Format(&lt;span style="color:#006080;"&gt;&amp;quot;UPDATE {0} SET {1} = LCase([{1}])&amp;quot;&lt;/span&gt;, MyTable, MyField);&lt;br /&gt;&lt;br /&gt;                oAccess.DoCmd.RunSQL(strSQL.ToString(), &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;);&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;OK&amp;quot;&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (Exception)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;finally&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                Marshal.ReleaseComObject(oAccess);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; ConvertFieldToProper(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; MyTable, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; MyField)&lt;br /&gt;        {&lt;br /&gt;            Access.Application oAccess = ((Access.Application)&lt;br /&gt;                (Marshal.GetActiveObject(&lt;span style="color:#006080;"&gt;&amp;quot;Access.Application&amp;quot;&lt;/span&gt;)));&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; strSQL;&lt;br /&gt;                strSQL = String.Format(&lt;span style="color:#006080;"&gt;&amp;quot;UPDATE {0} SET {1} = STRCONV([{1},3])&amp;quot;&lt;/span&gt;, MyTable, MyField);&lt;br /&gt;&lt;br /&gt;                oAccess.DoCmd.RunSQL(strSQL.ToString(), &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;);&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;quot;OK&amp;quot;&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (Exception)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;finally&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                Marshal.ReleaseComObject(oAccess);                &lt;br /&gt;            }&lt;br /&gt;        }    &lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1690142" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/officept/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://msmvps.com/blogs/officept/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/officept/archive/tags/VSTO/default.aspx">VSTO</category><category domain="http://msmvps.com/blogs/officept/archive/tags/English+Related/default.aspx">English Related</category></item><item><title>VSTO (Access) a Simple Database initialization</title><link>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-a-simple-database-initialization.aspx</link><pubDate>Wed, 22 Apr 2009 21:50:49 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1690141</guid><dc:creator>Joao Livio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/rsscomments.aspx?PostID=1690141</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/commentapi.aspx?PostID=1690141</wfw:comment><comments>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-a-simple-database-initialization.aspx#comments</comments><description>&lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;span style="color:#008000;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;/// &lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;/// &amp;lt;param name=&amp;quot;hideNavigationPane&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;/// &amp;lt;param name=&amp;quot;myUIName&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;/// &amp;lt;param name=&amp;quot;myUIXML&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;/// &amp;lt;returns&amp;gt;True/False&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; InitializeDatabase(&lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; hideNavigationPane, &lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; myUIName, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; myUIXML)&lt;br /&gt;        {   &lt;br /&gt;            Access.Application oAccess = ((Access.Application)&lt;br /&gt;                   (Marshal.GetActiveObject(&lt;span style="color:#006080;"&gt;&amp;quot;Access.Application&amp;quot;&lt;/span&gt;)));&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;            {                   &lt;br /&gt;                oAccess.SetOption(&lt;span style="color:#006080;"&gt;&amp;quot;DesignWithData&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;);                &lt;br /&gt;                oAccess.SetOption(&lt;span style="color:#006080;"&gt;&amp;quot;Perform Name AutoCorrect&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;);&lt;br /&gt;                oAccess.SetOption(&lt;span style="color:#006080;"&gt;&amp;quot;Track Name AutoCorrect Info&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;);&lt;br /&gt;                oAccess.SetOption(&lt;span style="color:#006080;"&gt;&amp;quot;Auto Compact&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;);                                &lt;br /&gt;                oAccess.SetOption(&lt;span style="color:#006080;"&gt;&amp;quot;Confirm Record Changes&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;);&lt;br /&gt;                oAccess.SetOption(&lt;span style="color:#006080;"&gt;&amp;quot;Confirm Document Deletions&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;);&lt;br /&gt;                oAccess.SetOption(&lt;span style="color:#006080;"&gt;&amp;quot;Confirm Action Queries&amp;quot;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;                oAccess.LoadCustomUI(myUIName, myUIXML);&lt;br /&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (hideNavigationPane == &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    oAccess.DoCmd.RunCommand(Access.AcCommand.acCmdWindowHide);&lt;br /&gt;                }                &lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;                &lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (Exception)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;finally&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                Marshal.ReleaseComObject(oAccess);&lt;br /&gt;            }&lt;br /&gt;        }&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1690141" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/officept/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://msmvps.com/blogs/officept/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/officept/archive/tags/VSTO/default.aspx">VSTO</category><category domain="http://msmvps.com/blogs/officept/archive/tags/English+Related/default.aspx">English Related</category></item><item><title>VSTO (Access) – Convert a Report to XPS</title><link>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-convert-a-report-to-xps.aspx</link><pubDate>Wed, 22 Apr 2009 21:47:34 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1690140</guid><dc:creator>Joao Livio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/rsscomments.aspx?PostID=1690140</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/commentapi.aspx?PostID=1690140</wfw:comment><comments>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-convert-a-report-to-xps.aspx#comments</comments><description>&lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; ConvertReportToXPS(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; myReport, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; XPSFileName)&lt;br /&gt;        {&lt;br /&gt;            Access.Application oAccess = ((Access.Application)&lt;br /&gt;                (Marshal.GetActiveObject(&lt;span style="color:#006080;"&gt;&amp;quot;Access.Application&amp;quot;&lt;/span&gt;)));&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                oAccess.DoCmd.OutputTo(Access.AcOutputObjectType.acOutputReport,&lt;br /&gt;                    myReport, Access.Constants.acFormatXPS, XPSFileName,&lt;br /&gt;                    System.Type.Missing, System.Type.Missing, &lt;br /&gt;                        System.Type.Missing);&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (Exception)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;finally&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                Marshal.ReleaseComObject(oAccess);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1690140" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/officept/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://msmvps.com/blogs/officept/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/officept/archive/tags/VSTO/default.aspx">VSTO</category><category domain="http://msmvps.com/blogs/officept/archive/tags/English+Related/default.aspx">English Related</category></item><item><title>VSTO (Access) Detect if tables are similar</title><link>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-detect-if-tables-are-similar.aspx</link><pubDate>Wed, 22 Apr 2009 21:42:24 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1690139</guid><dc:creator>Joao Livio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/rsscomments.aspx?PostID=1690139</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/commentapi.aspx?PostID=1690139</wfw:comment><comments>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-detect-if-tables-are-similar.aspx#comments</comments><description>&lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; TablesAreEqual(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; MyTableSource, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; &lt;br /&gt;            MyTableToCompare, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; MyIndexField)&lt;br /&gt;        {                          &lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                OleDbConnection cnn;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (DataSet ds = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; DataSet())&lt;br /&gt;                {&lt;br /&gt;                    OleDbDataAdapter da;&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; cs = &lt;br /&gt;                        oAccess.CurrentProject.Connection.ToString();&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; strSQL = &lt;br /&gt;                        String.Format(&lt;span style="color:#006080;"&gt;&amp;quot;SELECT * FROM {0} LEFT JOIN {1} ON {0}.{2} = {1}.{2}WHERE {1}.{2} Is Null&amp;quot;&lt;/span&gt;&lt;br /&gt;                        , MyTableSource, MyTableToCompare, MyIndexField);&lt;br /&gt;                    cnn = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; OleDbConnection(cs);&lt;br /&gt;                    da = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; OleDbDataAdapter(strSQL, cnn);&lt;br /&gt;                    da.Fill(ds);&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (ds.Tables[0].Rows.Count &amp;lt;= 0)&lt;br /&gt;                        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;br /&gt;                        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (Exception)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;finally&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                Marshal.ReleaseComObject(oAccess);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1690139" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/officept/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://msmvps.com/blogs/officept/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/officept/archive/tags/VSTO/default.aspx">VSTO</category><category domain="http://msmvps.com/blogs/officept/archive/tags/English+Related/default.aspx">English Related</category></item><item><title>VSTO (Access) How to Backup the Current project?</title><link>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-how-to-backup-the-current-project.aspx</link><pubDate>Wed, 22 Apr 2009 21:40:19 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1690138</guid><dc:creator>Joao Livio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/rsscomments.aspx?PostID=1690138</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/commentapi.aspx?PostID=1690138</wfw:comment><comments>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-how-to-backup-the-current-project.aspx#comments</comments><description>&lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;p&gt;Access.Application oAccess = ((Access.Application)&lt;br /&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; (Marshal.GetActiveObject(&amp;quot;Access.Application&amp;quot;)));&lt;p&gt;&lt;span style="color:#008000;"&gt;// ----------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Author:                        Joao Tito Livio&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Company:                       MACL&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Assembly version:              0.0.*&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Date:                          21-04-2009&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Time:                          23:47&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Project Item Name:             M3DatabaseUtilities.cs&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Project Item Filename:         M3DatabaseUtilities.cs&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Project Item Kind:             Code&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Class FullName:                Macl.M3DatabaseUtilities&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Class Name:                    M3DatabaseUtilities&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Class Kind Description:        Class&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Class Kind Keyword:            class&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Procedure FullName:            Macl.M3DatabaseUtilities.BackupCurrentDatabase&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Procedure Name:                BackupCurrentDatabase&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Procedure Kind Description:    Function&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Procedure Kind Keyword:        &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Function Return Type Name:     Boolean&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Function Return Type FullName: System.Boolean&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Function Return Type Alias:    bool&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Purpose:                       Backup the Current database, CAN BE IN USE&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// Parameters:&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;//    - MyDestinationpathAndFile (string)() :  Path and File (c:\backup.accdb&amp;quot;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;// ----------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; BackupCurrentDatabase(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; MyDestinationpathAndFile)&lt;br /&gt;{               &lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;       Access.Application oAccess = ((Access.Application)&lt;br /&gt;        (Marshal.GetActiveObject(&lt;span style="color:#006080;"&gt;&amp;quot;Access.Application&amp;quot;&lt;/span&gt;)));&lt;br /&gt;&lt;br /&gt;        File.Copy(oAccess.CurrentProject.FullName, &lt;br /&gt;            MyDestinationpathAndFile);&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;                &lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (Exception)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;finally&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        Marshal.ReleaseComObject(oAccess);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1690138" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/officept/archive/tags/Microsoft+Access/default.aspx">Microsoft Access</category><category domain="http://msmvps.com/blogs/officept/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://msmvps.com/blogs/officept/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/officept/archive/tags/VSTO/default.aspx">VSTO</category><category domain="http://msmvps.com/blogs/officept/archive/tags/English+Related/default.aspx">English Related</category></item><item><title>VSTO (Access) How to execute a SQL Statement from a File?</title><link>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-how-to-execute-a-sql-statement-from-a-file.aspx</link><pubDate>Wed, 22 Apr 2009 21:37:21 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1690137</guid><dc:creator>Joao Livio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/rsscomments.aspx?PostID=1690137</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/commentapi.aspx?PostID=1690137</wfw:comment><comments>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-how-to-execute-a-sql-statement-from-a-file.aspx#comments</comments><description>&lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; ExecuteSqlFromFile(String MyConnectionString, String MyTextFilePath)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (OleDbConnection sqlConnection = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; OleDbConnection(MyConnectionString))&lt;br /&gt;            {&lt;br /&gt;                OleDbCommand cmd = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; OleDbCommand();&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (StreamReader fh = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; StreamReader(MyTextFilePath))&lt;br /&gt;                    {&lt;br /&gt;                        String MyText;&lt;br /&gt;                        &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; s;&lt;br /&gt;                        &lt;span style="color:#0000ff;"&gt;while&lt;/span&gt; ((s = fh.ReadLine()) != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;br /&gt;                            MyText = s;&lt;br /&gt;                        fh.Close();&lt;br /&gt;                        cmd.CommandText = s;&lt;br /&gt;                    }&lt;br /&gt;                    cmd.CommandType = CommandType.Text;&lt;br /&gt;                    cmd.Connection = sqlConnection;&lt;br /&gt;                    sqlConnection.Open();&lt;br /&gt;                    cmd.ExecuteNonQuery();&lt;br /&gt;                    sqlConnection.Close();&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (Exception)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;finally&lt;/span&gt;&lt;br /&gt;                {&lt;br /&gt;                    sqlConnection.Close();&lt;br /&gt;                    cmd.Dispose();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1690137" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/officept/archive/tags/Microsoft+Access/default.aspx">Microsoft Access</category><category domain="http://msmvps.com/blogs/officept/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://msmvps.com/blogs/officept/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/officept/archive/tags/VSTO/default.aspx">VSTO</category></item><item><title>VSTO (Access) – How to return a RecordSet from a OleDb Provider?</title><link>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-how-to-return-a-recordset-from-a-oledb-provider.aspx</link><pubDate>Wed, 22 Apr 2009 21:33:16 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1690136</guid><dc:creator>Joao Livio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/rsscomments.aspx?PostID=1690136</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/commentapi.aspx?PostID=1690136</wfw:comment><comments>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-how-to-return-a-recordset-from-a-oledb-provider.aspx#comments</comments><description>&lt;div id="codeSnippetWrapper"&gt;&amp;#160;&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;span style="color:#008000;"&gt;// ----------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Author:                        Joao Tito Livio&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Company:                       MACL&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Assembly version:              0.0.*&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Date:                          21-04-2009&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Time:                          23:55&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Project Item Name:             M3Data.cs&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Project Item Filename:         M3Data.cs&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Project Item Kind:             Code&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Class FullName:                Macl.M3Data&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Class Name:                    M3Data&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Class Kind Description:        Class&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Class Kind Keyword:            class&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Procedure FullName:            Macl.M3Data.ReturnRecordset&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Procedure Name:                ReturnRecordset&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Procedure Kind Description:    Function&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Procedure Kind Keyword:        &lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Function Return Type Name:     Recordset&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Function Return Type FullName: ADODB.Recordset&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Function Return Type Alias:    Recordset&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Purpose:                       Return a recordset from any OleDb provider&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// Parameters:&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;//    - MyConnectionString (string)()   : Connection strin for the OleDb Conenction&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;//    - MyTableOrSQL (string)()         : Can be a Table or a SQL statement&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;//    - MyCursorType (CursorTypeEnum)() : http://msdn.microsoft.com/en-us/library/ms677593(VS.85).aspx&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;// ----------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; ADODB.Recordset ReturnRecordset(String MyConnectionString, String MyTableOrSQL,&lt;br /&gt;                                               ADODB.CursorTypeEnum MyCursorType)&lt;br /&gt;        {&lt;br /&gt;            ADODB.Connection cnn = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ADODB.Connection();&lt;br /&gt;            ADODB.Recordset rs = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ADODB.Recordset();&lt;br /&gt;            &lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                cnn.ConnectionString = MyConnectionString;                &lt;br /&gt;                cnn.Open(&lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;, 0);&lt;br /&gt;                &lt;span style="color:#008000;"&gt;//}                &lt;/span&gt;&lt;br /&gt;                rs.Open(MyTableOrSQL, cnn, MyCursorType, ADODB.LockTypeEnum.adLockOptimistic, -1);&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; rs;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (Exception)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1690136" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/officept/archive/tags/Microsoft+Access/default.aspx">Microsoft Access</category><category domain="http://msmvps.com/blogs/officept/archive/tags/Office+System+2007/default.aspx">Office System 2007</category><category domain="http://msmvps.com/blogs/officept/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://msmvps.com/blogs/officept/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/officept/archive/tags/English+Related/default.aspx">English Related</category></item><item><title>VSTO (Access) how to create a Table with fields in a Access Database (ADOX and JET SQL)</title><link>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-how-to-create-a-table-with-fields-in-a-access-database.aspx</link><pubDate>Wed, 22 Apr 2009 15:57:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1690143</guid><dc:creator>Joao Livio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/rsscomments.aspx?PostID=1690143</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/commentapi.aspx?PostID=1690143</wfw:comment><comments>http://msmvps.com/blogs/officept/archive/2009/04/22/vsto-access-how-to-create-a-table-with-fields-in-a-access-database.aspx#comments</comments><description>&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;/// &lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;/// &amp;lt;param name=&amp;quot;MyPath&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008000;"&gt;/// &amp;lt;returns&amp;gt;True/False&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; GenerateLogDatabase(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; myPath)&lt;br /&gt;        {   &lt;br /&gt;            CatalogClass cat = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; CatalogClass();&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; strSQL;&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; cs;&lt;br /&gt;&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                cs = &lt;span style="color:#006080;"&gt;&amp;quot;Provider=Microsoft.Jet.OLEDB.4.0;&amp;quot;&lt;/span&gt; +&lt;br /&gt;                     &lt;span style="color:#006080;"&gt;&amp;quot;Data Source=&amp;quot;&lt;/span&gt; + myPath + &lt;span style="color:#006080;"&gt;&amp;quot;;&amp;quot;&lt;/span&gt; +&lt;br /&gt;                     &lt;span style="color:#006080;"&gt;&amp;quot;Jet OLEDB:Engine Type=5&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                strSQL = &lt;span style="color:#006080;"&gt;&amp;quot;CREATE TABLE Issues (mID AUTOINCREMENT, mUser TEXT(100) NOT NULL &amp;quot;&lt;/span&gt; +&lt;br /&gt;                         &lt;span style="color:#006080;"&gt;&amp;quot;, mError TEXT(100) NOT NULL, &amp;quot;&lt;/span&gt; +&lt;br /&gt;                         &lt;span style="color:#006080;"&gt;&amp;quot;mDescription TEXT(100) NOT NULL, mDate DATETIME NOT NULL)&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                cat.Create(cs);&lt;br /&gt;&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (OleDbConnection cnn = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; OleDbConnection(cs))&lt;br /&gt;                {&lt;br /&gt;                    OleDbCommand cmd = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; OleDbCommand();&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;                    {&lt;br /&gt;                        cmd.CommandText = strSQL;&lt;br /&gt;                        cmd.CommandType = CommandType.Text;&lt;br /&gt;                        cmd.Connection = cnn;&lt;br /&gt;                        cnn.Open();&lt;br /&gt;                        cmd.ExecuteNonQuery();&lt;br /&gt;                        cnn.Close();&lt;br /&gt;                        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;                    }&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (Exception)&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt;;&lt;br /&gt;                    }&lt;br /&gt;                    &lt;span style="color:#0000ff;"&gt;finally&lt;/span&gt;&lt;br /&gt;                    {&lt;br /&gt;                        cnn.Close();&lt;br /&gt;                        cmd.Dispose();&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt; (Exception)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;finally&lt;/span&gt;&lt;br /&gt;            {   &lt;br /&gt;                Marshal.FinalReleaseComObject(cat);&lt;br /&gt;            }&lt;br /&gt;        }&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1690143" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/officept/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://msmvps.com/blogs/officept/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/officept/archive/tags/VSTO/default.aspx">VSTO</category><category domain="http://msmvps.com/blogs/officept/archive/tags/English+Related/default.aspx">English Related</category></item><item><title>My recent project with Libraries to use in Access 2007</title><link>http://msmvps.com/blogs/officept/archive/2009/04/14/my-recent-project-with-libraries-to-use-in-access-2007.aspx</link><pubDate>Tue, 14 Apr 2009 17:08:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1687752</guid><dc:creator>Joao Livio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/rsscomments.aspx?PostID=1687752</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/commentapi.aspx?PostID=1687752</wfw:comment><comments>http://msmvps.com/blogs/officept/archive/2009/04/14/my-recent-project-with-libraries-to-use-in-access-2007.aspx#comments</comments><description>&lt;div class="wikidoc"&gt;&lt;/div&gt;
&lt;div class="wikidoc"&gt;&lt;img width="248" src="http://i1.codeplex.com/Images/v14954/logo-home.png" height="88" alt="" /&gt;&lt;/div&gt;
&lt;div class="wikidoc"&gt;&lt;/div&gt;
&lt;div class="wikidoc"&gt;&amp;nbsp; &lt;/div&gt;
&lt;div class="wikidoc"&gt;NOW MACL IS FREE AND IS IN &lt;strong&gt;CODEPLEX&lt;/strong&gt;&lt;/div&gt;
&lt;div class="wikidoc"&gt;&lt;strong&gt;&amp;nbsp; &lt;/strong&gt;&lt;/div&gt;
&lt;div class="wikidoc"&gt;&lt;/div&gt;
&lt;div class="wikidoc"&gt;My recent project with Libraries to use in Access 2007&lt;/div&gt;
&lt;div class="wikidoc"&gt;&amp;nbsp; &lt;/div&gt;
&lt;div class="wikidoc"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div class="wikidoc"&gt;&lt;strong&gt;Project Description&lt;br /&gt;&lt;/strong&gt;Improved Microsoft Access Class Libraries *DLL&amp;#39;s* with utilities and Data Access.&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;C#, Framework 2.0, 3.5&lt;br /&gt;&lt;br /&gt;(Interop API Extensions)&lt;br /&gt;&lt;br /&gt;The MACL Interop API Extensions tool uses features found in the .NET Framework 2.0 for now in the Alpha Version and its to be oriented to Framework 3.5 in the Beta Version. MACL Wraps the Access object model providing a more productive environment for the VBA developer. Specifically, it employs extension methods, functions, properties and a most effective data management relative to OLEDB Providers, like returning a single Recordset from any OLEDB Provider using ADODB . It is not a complete managed API for Access, it will reach there, but is designed to augment the raw object model in useful ways. &lt;/div&gt;
&lt;div class="wikidoc"&gt;&lt;br /&gt;The Access Interop API Extensions, with its simplified and strongly-typed API, allows VBA developers to be as productive in this context as VBA developers. &lt;br /&gt;The code was original developed in C# 3.0 and is divided in different classes, all classes are in constant update.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Forum&lt;/strong&gt; Support &lt;a href="http://forum.macl.menos3.net/" class="externalLink"&gt;&lt;span style="color:#3e62a6;"&gt;http://forum.macl.menos3.net&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color:#30332d;"&gt;&lt;strong&gt;Project Blog&lt;/strong&gt; (Code Samples) &lt;/span&gt;&lt;a href="http://macl.menos3.net/" class="externalLink"&gt;http://macl.menos3.net&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color:#30332d;"&gt;&lt;strong&gt;Online Documentation:&lt;/strong&gt; &lt;/span&gt;&lt;a href="http://www.menos3.net/pp" class="externalLink"&gt;http://www.menos3.net/pp&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1687752" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/officept/archive/tags/Office+2007/default.aspx">Office 2007</category><category domain="http://msmvps.com/blogs/officept/archive/tags/Access+2007/default.aspx">Access 2007</category><category domain="http://msmvps.com/blogs/officept/archive/tags/Office+2007+Developer/default.aspx">Office 2007 Developer</category><category domain="http://msmvps.com/blogs/officept/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/officept/archive/tags/Office/default.aspx">Office</category><category domain="http://msmvps.com/blogs/officept/archive/tags/English+Related/default.aspx">English Related</category></item><item><title>C# How to open a form only once in a MDI Envoirement</title><link>http://msmvps.com/blogs/officept/archive/2007/11/17/c-how-to-open-a-form-only-once-in-a-mdi-envoirement.aspx</link><pubDate>Sat, 17 Nov 2007 13:17:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1324100</guid><dc:creator>Joao Livio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/rsscomments.aspx?PostID=1324100</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/officept/commentapi.aspx?PostID=1324100</wfw:comment><comments>http://msmvps.com/blogs/officept/archive/2007/11/17/c-how-to-open-a-form-only-once-in-a-mdi-envoirement.aspx#comments</comments><description> &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; YourFormName xForm;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (Form childForm in this.MdiChildren)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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; if (childForm.GetType() == typeof(YourFormName))&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; {&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; childForm.Focus();&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; return;&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; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xForm = new YourFormName();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xForm.MdiParent = this;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xForm.Show();&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1324100" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/officept/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/officept/archive/tags/English+Related/default.aspx">English Related</category></item></channel></rss>