<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: VBA Framework II</title>
	<atom:link href="http://www.dailydoseofexcel.com/archives/2008/12/21/vba-framework-ii/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dailydoseofexcel.com/archives/2008/12/21/vba-framework-ii/</link>
	<description>Daily posts of Excel tips…and other stuff</description>
	<lastBuildDate>Wed, 08 Feb 2012 23:58:05 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Dick Kusleika</title>
		<link>http://www.dailydoseofexcel.com/archives/2008/12/21/vba-framework-ii/#comment-36895</link>
		<dc:creator>Dick Kusleika</dc:creator>
		<pubDate>Tue, 06 Jan 2009 18:58:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1922#comment-36895</guid>
		<description>&lt;p&gt;Jurgen:  Habit.  Collections are native and dictionaries make me set a reference.  I really need to force myself to use a dictionary object, but I haven&#039;t yet.&lt;/p&gt;
&lt;p&gt;Thanks for the list Peder, that seems like a good approach.&lt;/p&gt;
&lt;p&gt;Hans:  I considered looping through the workbooks, but didn&#039;t use it for some reason - can&#039;t remember.  Maybe it had something to do with add-ins.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Jurgen:  Habit.  Collections are native and dictionaries make me set a reference.  I really need to force myself to use a dictionary object, but I haven&#8217;t yet.</p>
<p>Thanks for the list Peder, that seems like a good approach.</p>
<p>Hans:  I considered looping through the workbooks, but didn&#8217;t use it for some reason &#8211; can&#8217;t remember.  Maybe it had something to do with add-ins.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jurgen</title>
		<link>http://www.dailydoseofexcel.com/archives/2008/12/21/vba-framework-ii/#comment-36886</link>
		<dc:creator>Jurgen</dc:creator>
		<pubDate>Tue, 06 Jan 2009 17:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1922#comment-36886</guid>
		<description>&lt;p&gt;hello,&lt;br&gt;
A question: personally, I prefer using a Dictionary over a Collection (because of Exists method, Key property, removeall method).&lt;br&gt;
Is there a reason why you go for a Collection?&lt;/p&gt;
&lt;p&gt;regards,&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>hello,<br />
A question: personally, I prefer using a Dictionary over a Collection (because of Exists method, Key property, removeall method).<br />
Is there a reason why you go for a Collection?</p>
<p>regards,</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hans Schraven</title>
		<link>http://www.dailydoseofexcel.com/archives/2008/12/21/vba-framework-ii/#comment-36848</link>
		<dc:creator>Hans Schraven</dc:creator>
		<pubDate>Mon, 05 Jan 2009 10:31:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1922#comment-36848</guid>
		<description>&lt;p&gt;Alternative for filling te combobox&lt;/p&gt;
&lt;div style=&quot;overflow: auto; white-space: nowrap;&quot; class=&quot;codecolorer-container vb default&quot;&gt;&lt;div style=&quot;white-space: nowrap;&quot; class=&quot;vb codecolorer&quot;&gt;&#160; &lt;span class=&quot;kw1&quot;&gt;Dim&lt;/span&gt; sq()&lt;br&gt;
&#160; &lt;span class=&quot;kw1&quot;&gt;ReDim&lt;/span&gt; sq(Workbooks.Count - 1, 2)&lt;br&gt;
&#160; &#160; &lt;br&gt;
&#160; &lt;span class=&quot;kw1&quot;&gt;For&lt;/span&gt; j = 1 &lt;span class=&quot;kw1&quot;&gt;To&lt;/span&gt; Workbooks.Count&lt;br&gt;
&#160; &#160; sq(j - 1, 0) = &lt;span class=&quot;st0&quot;&gt;&quot;VBAProject&quot;&lt;/span&gt;&lt;br&gt;
&#160; &#160; sq(j - 1, 1) = Workbooks(j).Name&lt;br&gt;
&#160; &#160; sq(j - 1, 2) = j&lt;br&gt;
&#160; &lt;span class=&quot;kw1&quot;&gt;Next&lt;/span&gt;&lt;br&gt;
&#160; Me.cbxProject.List = sq&lt;/div&gt;&lt;/div&gt;
</description>
		<content:encoded><![CDATA[<p>Alternative for filling te combobox</p>
<div style="overflow: auto; white-space: nowrap;" class="codecolorer-container vb default">
<div style="white-space: nowrap;" class="vb codecolorer">&nbsp; <span class="kw1">Dim</span> sq()<br />
&nbsp; <span class="kw1">ReDim</span> sq(Workbooks.Count &#8211; 1, 2)<br />
&nbsp; &nbsp; <br />
&nbsp; <span class="kw1">For</span> j = 1 <span class="kw1">To</span> Workbooks.Count<br />
&nbsp; &nbsp; sq(j &#8211; 1, 0) = <span class="st0">&#8220;VBAProject&#8221;</span><br />
&nbsp; &nbsp; sq(j &#8211; 1, 1) = Workbooks(j).Name<br />
&nbsp; &nbsp; sq(j &#8211; 1, 2) = j<br />
&nbsp; <span class="kw1">Next</span><br />
&nbsp; Me.cbxProject.List = sq</div>
</div>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peder Schmedling</title>
		<link>http://www.dailydoseofexcel.com/archives/2008/12/21/vba-framework-ii/#comment-36846</link>
		<dc:creator>Peder Schmedling</dc:creator>
		<pubDate>Mon, 05 Jan 2009 09:13:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1922#comment-36846</guid>
		<description>&lt;p&gt;Regarding the ADO references I would suggest to attempt to add the reference from a list of known GUIDs, using the VBIDE.References.AddFromGuid method found in &quot;Microsoft Visual Basic for Applications Extensibility&quot; library..&lt;/p&gt;
&lt;p&gt;Using this approach you can attempt to add a reference and trap the error that occurs if the library isn&#039;t available on the target computer. You could also warn the user if none of the references could be set, this way the user would be aware that the generated code wouldn&#039;t work &quot;out of the box&quot;.&lt;/p&gt;
&lt;p&gt;Here&#039;s info on the ADO libraries I found on my computer:&lt;br&gt;
Filename: msado20.tlb&lt;br&gt;
Name:     ADODB&lt;br&gt;
GUID:     {00000200-0000-0010-8000-00AA006D2EA4}&lt;br&gt;
Desc.:    Microsoft ActiveX Data Objects 2.0 Library&lt;/p&gt;
&lt;p&gt;Filename: msado21.tlb&lt;br&gt;
Name:     ADODB&lt;br&gt;
GUID:     {00000201-0000-0010-8000-00AA006D2EA4}&lt;br&gt;
Desc.:    Microsoft ActiveX Data Objects 2.1 Library&lt;/p&gt;
&lt;p&gt;Filename: msado25.tlb&lt;br&gt;
Name:     ADODB&lt;br&gt;
GUID:     {00000205-0000-0010-8000-00AA006D2EA4}&lt;br&gt;
Desc.:    Microsoft ActiveX Data Objects 2.5 Library&lt;/p&gt;
&lt;p&gt;Filename: msado26.tlb&lt;br&gt;
Name:     ADODB&lt;br&gt;
GUID:     {00000206-0000-0010-8000-00AA006D2EA4}&lt;br&gt;
Desc.:    Microsoft ActiveX Data Objects 2.6 Library&lt;/p&gt;
&lt;p&gt;Filename: msado27.tlb&lt;br&gt;
Name:     ADODB&lt;br&gt;
GUID:     {EF53050B-882E-4776-B643-EDA472E8E3F2}&lt;br&gt;
Desc.:    Microsoft ActiveX Data Objects 2.7 Library&lt;/p&gt;
&lt;p&gt;Filename: msado15.dll&lt;br&gt;
Name:     ADODB&lt;br&gt;
GUID:     {2A75196C-D9EB-4129-B803-931327F72D5C}&lt;br&gt;
Desc.:    Microsoft ActiveX Data Objects 2.8 Library&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Regarding the ADO references I would suggest to attempt to add the reference from a list of known GUIDs, using the VBIDE.References.AddFromGuid method found in &#8220;Microsoft Visual Basic for Applications Extensibility&#8221; library..</p>
<p>Using this approach you can attempt to add a reference and trap the error that occurs if the library isn&#8217;t available on the target computer. You could also warn the user if none of the references could be set, this way the user would be aware that the generated code wouldn&#8217;t work &#8220;out of the box&#8221;.</p>
<p>Here&#8217;s info on the ADO libraries I found on my computer:<br />
Filename: msado20.tlb<br />
Name:     ADODB<br />
GUID:     {00000200-0000-0010-8000-00AA006D2EA4}<br />
Desc.:    Microsoft ActiveX Data Objects 2.0 Library</p>
<p>Filename: msado21.tlb<br />
Name:     ADODB<br />
GUID:     {00000201-0000-0010-8000-00AA006D2EA4}<br />
Desc.:    Microsoft ActiveX Data Objects 2.1 Library</p>
<p>Filename: msado25.tlb<br />
Name:     ADODB<br />
GUID:     {00000205-0000-0010-8000-00AA006D2EA4}<br />
Desc.:    Microsoft ActiveX Data Objects 2.5 Library</p>
<p>Filename: msado26.tlb<br />
Name:     ADODB<br />
GUID:     {00000206-0000-0010-8000-00AA006D2EA4}<br />
Desc.:    Microsoft ActiveX Data Objects 2.6 Library</p>
<p>Filename: msado27.tlb<br />
Name:     ADODB<br />
GUID:     {EF53050B-882E-4776-B643-EDA472E8E3F2}<br />
Desc.:    Microsoft ActiveX Data Objects 2.7 Library</p>
<p>Filename: msado15.dll<br />
Name:     ADODB<br />
GUID:     {2A75196C-D9EB-4129-B803-931327F72D5C}<br />
Desc.:    Microsoft ActiveX Data Objects 2.8 Library</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott</title>
		<link>http://www.dailydoseofexcel.com/archives/2008/12/21/vba-framework-ii/#comment-36573</link>
		<dc:creator>Scott</dc:creator>
		<pubDate>Mon, 22 Dec 2008 18:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1922#comment-36573</guid>
		<description>&lt;p&gt;Maybe it&#039;s a simple as looping through the reference folder? Problem is (and this may be nothing, but you never know), I don&#039;t know if the reference folder would ever be anywhere other than Common FilesSystemADO.&lt;/p&gt;
&lt;div style=&quot;overflow: auto; white-space: nowrap;&quot; class=&quot;codecolorer-container vb default&quot;&gt;&lt;div style=&quot;white-space: nowrap;&quot; class=&quot;vb codecolorer&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;Sub&lt;/span&gt; IterateADOReferences()&lt;br&gt;
&lt;br&gt;
&#160; &#160; &lt;span class=&quot;kw1&quot;&gt;Const&lt;/span&gt; sDIR &lt;span class=&quot;kw1&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;String&lt;/span&gt; = &lt;span class=&quot;st0&quot;&gt;&quot;C:Program FilesCommon FilesSystemADO&quot;&lt;/span&gt;&lt;br&gt;
&#160; &#160; &lt;span class=&quot;kw1&quot;&gt;Const&lt;/span&gt; sADO_REF &lt;span class=&quot;kw1&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;String&lt;/span&gt; = &lt;span class=&quot;st0&quot;&gt;&quot;MSADO&quot;&lt;/span&gt;&lt;br&gt;
&#160; &#160; &lt;span class=&quot;kw1&quot;&gt;Const&lt;/span&gt; sTLB &lt;span class=&quot;kw1&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;String&lt;/span&gt; = &lt;span class=&quot;st0&quot;&gt;&quot;TLB&quot;&lt;/span&gt;&lt;br&gt;
&#160; &#160; &lt;span class=&quot;kw1&quot;&gt;Dim&lt;/span&gt; sFile &lt;span class=&quot;kw1&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;String&lt;/span&gt;&lt;br&gt;
&#160; &#160; &lt;br&gt;
&#160; &#160; sFile = Dir(sDIR)&lt;br&gt;
&#160; &#160; &lt;br&gt;
&#160; &#160; &lt;span class=&quot;kw1&quot;&gt;Do&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;While&lt;/span&gt; Len(sFile) &#160;0&lt;br&gt;
&#160; &#160; &#160; &#160; &lt;span class=&quot;kw1&quot;&gt;If&lt;/span&gt; (UCase(Left(sFile, 5)) = sADO_REF) &lt;span class=&quot;kw1&quot;&gt;And&lt;/span&gt; _&lt;br&gt;
&#160; &#160; &#160; &#160; &#160; &#160; (UCase(Right(sFile, 3)) = sTLB) &lt;span class=&quot;kw1&quot;&gt;Then&lt;/span&gt;&lt;br&gt;
&#160; &#160; &#160; &#160; &#160; &#160; Debug.&lt;span class=&quot;kw1&quot;&gt;Print&lt;/span&gt; sFile&lt;br&gt;
&#160; &#160; &#160; &#160; &lt;span class=&quot;kw1&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;If&lt;/span&gt;&lt;br&gt;
&#160; &#160; &#160; &#160; sFile = Dir&lt;br&gt;
&#160; &#160; &lt;span class=&quot;kw1&quot;&gt;Loop&lt;/span&gt;&lt;br&gt;
&#160; &#160; &lt;br&gt;
&lt;span class=&quot;kw1&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;Sub&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
</description>
		<content:encoded><![CDATA[<p>Maybe it&#8217;s a simple as looping through the reference folder? Problem is (and this may be nothing, but you never know), I don&#8217;t know if the reference folder would ever be anywhere other than Common FilesSystemADO.</p>
<div style="overflow: auto; white-space: nowrap;" class="codecolorer-container vb default">
<div style="white-space: nowrap;" class="vb codecolorer"><span class="kw1">Sub</span> IterateADOReferences()</p>
<p>&nbsp; &nbsp; <span class="kw1">Const</span> sDIR <span class="kw1">As</span> <span class="kw1">String</span> = <span class="st0">&#8220;C:Program FilesCommon FilesSystemADO&#8221;</span><br />
&nbsp; &nbsp; <span class="kw1">Const</span> sADO_REF <span class="kw1">As</span> <span class="kw1">String</span> = <span class="st0">&#8220;MSADO&#8221;</span><br />
&nbsp; &nbsp; <span class="kw1">Const</span> sTLB <span class="kw1">As</span> <span class="kw1">String</span> = <span class="st0">&#8220;TLB&#8221;</span><br />
&nbsp; &nbsp; <span class="kw1">Dim</span> sFile <span class="kw1">As</span> <span class="kw1">String</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; sFile = Dir(sDIR)<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">Do</span> <span class="kw1">While</span> Len(sFile) &nbsp;0<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">If</span> (UCase(Left(sFile, 5)) = sADO_REF) <span class="kw1">And</span> _<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (UCase(Right(sFile, 3)) = sTLB) <span class="kw1">Then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Debug.<span class="kw1">Print</span> sFile<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">End</span> <span class="kw1">If</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; sFile = Dir<br />
&nbsp; &nbsp; <span class="kw1">Loop</span><br />
&nbsp; &nbsp; <br />
<span class="kw1">End</span> <span class="kw1">Sub</span></div>
</div>
]]></content:encoded>
	</item>
	<item>
		<title>By: Egon</title>
		<link>http://www.dailydoseofexcel.com/archives/2008/12/21/vba-framework-ii/#comment-36571</link>
		<dc:creator>Egon</dc:creator>
		<pubDate>Mon, 22 Dec 2008 17:21:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1922#comment-36571</guid>
		<description>&lt;p&gt;Great work with this, Dick!&lt;/p&gt;
&lt;p&gt;Hope it gets approved on Sourceforge.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Great work with this, Dick!</p>
<p>Hope it gets approved on Sourceforge.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dick Kusleika</title>
		<link>http://www.dailydoseofexcel.com/archives/2008/12/21/vba-framework-ii/#comment-36567</link>
		<dc:creator>Dick Kusleika</dc:creator>
		<pubDate>Mon, 22 Dec 2008 15:09:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1922#comment-36567</guid>
		<description>&lt;p&gt;Scott:  Yeah, that&#039;s why that one is still on my to-do list.  I guess I could late-bind it, but I almost never use late-binding with ADO, so it would lose some utility for me.&lt;/p&gt;
&lt;p&gt;I have never been able to iterate through the list of available references.  I would think that would be in the registry somewhere, but I&#039;ve never been able to find it.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Scott:  Yeah, that&#8217;s why that one is still on my to-do list.  I guess I could late-bind it, but I almost never use late-binding with ADO, so it would lose some utility for me.</p>
<p>I have never been able to iterate through the list of available references.  I would think that would be in the registry somewhere, but I&#8217;ve never been able to find it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott</title>
		<link>http://www.dailydoseofexcel.com/archives/2008/12/21/vba-framework-ii/#comment-36565</link>
		<dc:creator>Scott</dc:creator>
		<pubDate>Mon, 22 Dec 2008 14:16:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1922#comment-36565</guid>
		<description>&lt;p&gt;When it comes to setting references to ADO, I&#039;d set it for the lowest reference you can without interferring with the ADO functions. I&#039;ve run into situations where I&#039;ll set a ADO 2.7 reference for something and some of the end users didn&#039;t have it, so I had to go and manually set the reference to 2.5.&lt;/p&gt;
&lt;p&gt;Maybe part of the whole package could be some type of Admin form, where you can choose the path of the DB, choose the reference you wnat (i.e. have access to), etc.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>When it comes to setting references to ADO, I&#8217;d set it for the lowest reference you can without interferring with the ADO functions. I&#8217;ve run into situations where I&#8217;ll set a ADO 2.7 reference for something and some of the end users didn&#8217;t have it, so I had to go and manually set the reference to 2.5.</p>
<p>Maybe part of the whole package could be some type of Admin form, where you can choose the path of the DB, choose the reference you wnat (i.e. have access to), etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dick Kusleika</title>
		<link>http://www.dailydoseofexcel.com/archives/2008/12/21/vba-framework-ii/#comment-36560</link>
		<dc:creator>Dick Kusleika</dc:creator>
		<pubDate>Sun, 21 Dec 2008 21:42:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=1922#comment-36560</guid>
		<description>&lt;p&gt;I&#039;m trying to put this on sourceforge.  I&#039;ve applied for a project and it&#039;s pending approval.  I&#039;m not sure how a VBA project will fare on sourceforge, but I thought it was worth a try.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I&#8217;m trying to put this on sourceforge.  I&#8217;ve applied for a project and it&#8217;s pending approval.  I&#8217;m not sure how a VBA project will fare on sourceforge, but I thought it was worth a try.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

