<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="http://bevnap.wetpaint.com/xsl/rss2html.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://bevnap.wetpaint.com/scripts/wpcss/wiki/bevnap/skin/cerulean/rss" type="text/css" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>BevNap - Recently Updated Pages</title><link>http://bevnap.wetpaint.com/pageSearch/updated</link><description>Recently Updated Pages on http://bevnap.wetpaint.com</description><language>en-us</language><webMaster>info@wetpaint.com</webMaster><pubDate>Sat, 02 Dec 2006 11:09:19 CST</pubDate><lastBuildDate>Sat, 02 Dec 2006 11:09:19 CST</lastBuildDate><generator>wetpaint.com</generator><ttl>60</ttl><image><title>BevNap</title><url>http://www.wetpaint.com/img/logo.gif</url><link>http://bevnap.wetpaint.com</link></image><item><title>PutRecordsetInCells</title><link>http://bevnap.wetpaint.com/page/PutRecordsetInCells</link><author>2buck</author><guid isPermaLink="false">http://bevnap.wetpaint.com/page/PutRecordsetInCells</guid><pubDate>Sat, 02 Dec 2006 11:09:19 CST</pubDate><description>Function PutRecordsetInCells(ByVal vrs, ByVal voWorksheet, ByVal vsStartCell)&lt;br&gt;&lt;blockquote&gt;  &amp;#39;Puts the results of a SQL statement into the Excel worksheet.&lt;br&gt;&amp;#39;Returns row count.&lt;br&gt;&amp;#39;vsStartCell is a cell identifier like &amp;quot;A1&amp;quot; of the&lt;br&gt;&amp;#39;upper left corner of where the results should go.&lt;br&gt;&amp;#39; Call PutRecordsetInCells(rs, oWorksheet, &amp;quot;A1&amp;quot;)&lt;br&gt;Dim i, iRowCount&lt;br&gt;&lt;br&gt;For i = 0 To vrs.Fields.Count - 1&lt;br&gt;&lt;blockquote&gt;  With voWorksheet.Range(vsStartCell).Offset(0, i)&lt;br&gt;&lt;blockquote&gt;  .Value2 = vrs.Fields(i).Name&lt;br&gt;.Font.Bold = True&lt;br&gt;.Borders(9).LineStyle = 1 &amp;#39; &amp;lt;-- 9 means bottom, 1 means continuous.&lt;/blockquote&gt;  End With&lt;/blockquote&gt;  Next&lt;br&gt;&lt;br&gt;iRowCount = voWorksheet.Range(vsStartCell).Offset(1, 0).CopyFromRecordset(vrs)&lt;br&gt;PutRecordsetInCells = iRowCount&lt;/blockquote&gt;  End Function&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>GetSettings</title><link>http://bevnap.wetpaint.com/page/GetSettings</link><author>2buck</author><guid isPermaLink="false">http://bevnap.wetpaint.com/page/GetSettings</guid><pubDate>Sat, 02 Dec 2006 10:35:43 CST</pubDate><description>Function GetSettings(ByVal vsFilePath)&lt;br&gt;&lt;blockquote&gt;  &lt;i&gt;&amp;#39;Returns a collection of names and values from the file.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39;The file is an Excel spreadsheet saved as a CSV file.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39;The first column in the file is the setting name and the second is the value.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39;A third column can be used for comments.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; Dim cSettings&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; Set cSettings = GetCSVCollection(&amp;quot;Settings.csv&amp;quot;)&lt;/i&gt;&lt;br&gt;Dim asRows, cSettings, i, asEntries&lt;br&gt;&lt;br&gt;asRows = Split(GetFileContents(vsFilePath), vbCrLf)&lt;br&gt;Set cSettings = CreateObject(&amp;quot;Scripting.Dictionary&amp;quot;)&lt;br&gt;For i = 1 To UBound(asRows)&lt;br&gt;&lt;blockquote&gt;  asEntries = Split(asRows(i), &amp;quot;,&amp;quot;)&lt;br&gt;If UBound(asEntries) &amp;gt; 0 Then&lt;br&gt;&lt;blockquote&gt;  cSettings.Add Trim(asEntries(0)&amp;amp; &amp;quot;&amp;quot;), Trim(asEntries(1) &amp;amp; &amp;quot;&amp;quot;)&lt;/blockquote&gt;  End If&lt;/blockquote&gt;  Next&lt;br&gt;&lt;br&gt;Set GetSettings = cSettings&lt;/blockquote&gt;  End Function&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>VBSCript GetCSVCollection</title><link>http://bevnap.wetpaint.com/page/VBSCript+GetCSVCollection</link><author>2buck</author><guid isPermaLink="false">http://bevnap.wetpaint.com/page/VBSCript+GetCSVCollection</guid><pubDate>Sat, 02 Dec 2006 10:27:34 CST</pubDate><description>NOTE: This one is not as good as the VB6 one.&lt;br&gt;&lt;br&gt;Function GetCSVCollection(ByVal vsFilePath)&lt;br&gt;&lt;blockquote&gt;  &lt;i&gt;&amp;#39;Returns a collection of collections.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39;There&amp;#39;s a collection for each row.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39;The file is made by saving an Excel spreadsheet as a CSV file.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; Dim cEntries&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; Set cEntries = GetCSVCollection(&amp;quot;Entries.csv&amp;quot;)&lt;/i&gt;&lt;br&gt;Dim asRows, asFieldNames, cRecordSet, i, asFieldValues&lt;br&gt;Dim cRecord, iFieldCount, j&lt;br&gt;&lt;br&gt;asRows = Split(GetFileContents(vsFilePath), vbCrLf)&lt;br&gt;asFieldNames = Split(asRows(0), &amp;quot;,&amp;quot;)&lt;br&gt;Set cRecordSet = CreateObject(&amp;quot;Scripting.Dictionary&amp;quot;)&lt;br&gt;For i = 1 To UBound(asRows)&lt;br&gt;&lt;blockquote&gt;  asFieldValues = Split(asRows(i), &amp;quot;,&amp;quot;)&lt;br&gt;Set cRecord = CreateObject(&amp;quot;Scripting.Dictionary&amp;quot;)&lt;br&gt;If UBound(asFieldNames) &amp;lt; UBound(asFieldValues) Then&lt;br&gt;&lt;blockquote&gt;  iFieldCount = UBound(asFieldNames) + 1&lt;/blockquote&gt;Else  &lt;br&gt;&lt;blockquote&gt;  iFieldCount = UBound(asFieldValues) + 1&lt;/blockquote&gt;End If  &lt;br&gt;&lt;br&gt;For j = 0 To iFieldCount - 1&lt;br&gt;&lt;blockquote&gt;  cRecord.Add Trim(asFieldNames(j)), asFieldValues(j)&lt;/blockquote&gt;Next  &lt;br&gt;cRecordSet.add i - 1, cRecord&lt;/blockquote&gt;Next  &lt;br&gt;&lt;br&gt;Set GetCSVCollection = cRecordSet&lt;/blockquote&gt;End Function   &lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>GetFileContents</title><link>http://bevnap.wetpaint.com/page/GetFileContents</link><author>2buck</author><guid isPermaLink="false">http://bevnap.wetpaint.com/page/GetFileContents</guid><pubDate>Fri, 01 Dec 2006 23:01:56 CST</pubDate><description>Function GetFileContents(ByVal vsFilePath)&lt;br&gt;&lt;blockquote&gt;  &lt;i&gt;&amp;#39;Returns a string containing all the text in a file.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39;The default folder depends on how the script is run.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39;But it&amp;#39;s usually the folder the script is in.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; Dim sContents&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; sContents = GetFileContents(&amp;quot;smr_mt571_extract.txt&amp;quot;)&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; MsgBox Len(sContents)&lt;/i&gt;&lt;br&gt;Dim oFso, oFile, oTs&lt;br&gt;&lt;br&gt;Set oFso = CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)&lt;br&gt;Set oFile = oFso.GetFile(vsFilePath)&lt;br&gt;Set oTs = oFile.OpenAsTextStream(1) &amp;#39; &amp;lt;-- 1 means ForReading&lt;br&gt;GetFileContents = oTs.Read(oFile.Size)&lt;br&gt;oTs.Close Set oTs = Nothing&lt;br&gt;Set oFile = Nothing&lt;br&gt;Set oFso = Nothing &lt;/blockquote&gt;  End Function&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>VBScript</title><link>http://bevnap.wetpaint.com/page/VBScript</link><author>2buck</author><guid isPermaLink="false">http://bevnap.wetpaint.com/page/VBScript</guid><pubDate>Fri, 01 Dec 2006 22:59:07 CST</pubDate><description>There is no abstract available for this page revision.&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>GetCSVCollection</title><link>http://bevnap.wetpaint.com/page/GetCSVCollection</link><author>2buck</author><guid isPermaLink="false">http://bevnap.wetpaint.com/page/GetCSVCollection</guid><pubDate>Fri, 01 Dec 2006 22:57:27 CST</pubDate><description>Private Function GetCSVCollection(ByVal vstrListFilePath As String) As Collection&lt;br&gt;&lt;blockquote&gt;  &lt;i&gt;&amp;#39; Reads in a Comma Seporated Values (CSV) file&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; and puts it all into collections with nice labels.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; Parameters: vstrListFilePath - the path and file name of the CSV file.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; This function uses the Split function to carve up CSV file&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; and load it all into collections.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; In the CSV file, the first row is for field names (headers)&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; and only the right most column can contain commas.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; That&amp;#39;s usually used for comments.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; --- EXAMPLE ---&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; Set cData = GetCSVCollection(Command)&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; For Each cFields In cData&lt;/i&gt;&lt;br&gt;&lt;blockquote&gt;  &lt;i&gt;&amp;#39; Debug.Print cFields(&amp;quot;Header&amp;quot;)&lt;/i&gt;&lt;/blockquote&gt;&lt;i&gt;&amp;#39; Next&lt;/i&gt;  &lt;br&gt;Dim arrRecs() As String &amp;#39; &amp;lt;-- array of records or lines&lt;br&gt;Dim arrFieldNames() As String &amp;#39; &amp;lt;-- field names are in the first line&lt;br&gt;Dim arrVals() As String &amp;#39; &amp;lt;-- array of values in one line goes to colVals&lt;br&gt;Dim colRecs As New VBA.Collection &amp;#39; &amp;lt;-- where all this data ends up&lt;br&gt;Dim colVals As VBA.Collection &amp;#39; &amp;lt;-- values from one line with field names as keys&lt;br&gt;Dim lngValUBound As Long &amp;#39; &amp;lt;-- max index of vals in rec&lt;br&gt;Dim lngFieldNamesUBound As Long&lt;br&gt;Dim i As Long &amp;#39; &amp;lt;-- row loop index&lt;br&gt;Dim j As Long &amp;#39; &amp;lt;-- column loop index&lt;br&gt;&lt;br&gt;arrRecs = Split(GetFileContents(vstrListFilePath), vbCrLf)&lt;br&gt;arrFieldNames = Split(arrRecs(0), &amp;quot;,&amp;quot;)&lt;br&gt;lngFieldNamesUBound = UBound(arrFieldNames)&lt;br&gt;&lt;blockquote&gt;  For i = 1 To UBound(arrRecs)&lt;br&gt;arrVals = Split(arrRecs(i), &amp;quot;,&amp;quot;)&lt;br&gt;&lt;i&gt;&amp;#39; --- This handles commas in the last column. ---&lt;/i&gt;&lt;br&gt;lngValUBound = UBound(arrVals)&lt;br&gt;If lngValUBound &amp;gt; lngFieldNamesUBound Then&lt;br&gt;&lt;blockquote&gt;  For j = lngFieldNamesUBound + 1 To lngValUBound&lt;br&gt;&lt;blockquote&gt;  arrVals(lngFieldNamesUBound) = arrVals(lngFieldNamesUBound) + &amp;quot;,&amp;quot; + arrVals(j)&lt;/blockquote&gt;Next  &lt;br&gt;lngValUBound = lngFieldNamesUBound&lt;/blockquote&gt;End If  &lt;br&gt;&lt;br&gt;If lngValUBound &amp;gt;= 0 Then&lt;br&gt;&lt;blockquote&gt;  Set colVals = New Collection&lt;br&gt;For j = 0 To lngValUBound&lt;br&gt;&lt;blockquote&gt;  colVals.Add Trim(arrVals(j)), Trim(arrFieldNames(j))&lt;/blockquote&gt;Next  &lt;br&gt;For j = lngValUBound + 1 To lngFieldNamesUBound&lt;br&gt;&lt;blockquote&gt;  colVals.Add &amp;quot;&amp;quot;, Trim(arrFieldNames(j))&lt;/blockquote&gt;Next  &lt;br&gt;colRecs.Add colVals&lt;/blockquote&gt;End If  &lt;/blockquote&gt;Next  &lt;br&gt;Set GetCSVCollection = colRecs&lt;/blockquote&gt;End Function   &lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Get Excel Range Column</title><link>http://bevnap.wetpaint.com/page/Get+Excel+Range+Column</link><author>2buck</author><guid isPermaLink="false">http://bevnap.wetpaint.com/page/Get+Excel+Range+Column</guid><pubDate>Fri, 01 Dec 2006 22:49:36 CST</pubDate><description>Private Function Column(ByVal vlngX As Long) As String&lt;br&gt;&lt;blockquote&gt;  &lt;i&gt;&amp;#39; Returns an Execl range column like &amp;quot;A&amp;quot;.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; EX: objSheet.Columns(Column(1) &amp;amp; &amp;quot;:&amp;quot; &amp;amp; Column(10)).Select&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; 1 &amp;lt;= vlngX &amp;lt;= 676&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; 1 &amp;lt;= vlngY&lt;/i&gt;&lt;br&gt;Dim strColumn As String&lt;br&gt;&lt;br&gt;strColumn = Chr(Asc(&amp;quot;A&amp;quot;) + ((vlngX - 1) Mod 26))&lt;br&gt;If vlngX &amp;gt; 26 Then&lt;br&gt;&lt;blockquote&gt;  strColumn = Chr(Asc(&amp;quot;A&amp;quot;) + Fix(vlngX / 26) - 1) &amp;amp; strColumn&lt;/blockquote&gt;  End If&lt;br&gt;Column = strColumn&lt;/blockquote&gt;  End Function&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>AutoTab</title><link>http://bevnap.wetpaint.com/page/AutoTab</link><author>2buck</author><guid isPermaLink="false">http://bevnap.wetpaint.com/page/AutoTab</guid><pubDate>Fri, 01 Dec 2006 22:42:46 CST</pubDate><description>Public Sub AutoTab()&lt;br&gt;&lt;blockquote&gt;  &lt;i&gt;&amp;#39;For TextBoxes with MaxLength property &amp;gt; 0.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39;Tabs only if the cursor is at the end of the text.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39;Sub Text1_Change ()&lt;/i&gt;&lt;br&gt;&lt;blockquote&gt;  &lt;i&gt;&amp;#39; Call AutoTab&lt;/i&gt;&lt;/blockquote&gt;&lt;i&gt;&amp;#39;End Sub&lt;/i&gt;  &lt;br&gt;Dim Text1 As Control&lt;br&gt;Dim Text As String&lt;br&gt;Dim Length As Integer&lt;br&gt;Dim MaxLen As Integer&lt;br&gt;&lt;br&gt;On Error GoTo AutoTabTrap&lt;br&gt;Set Text1 = Screen.ActiveControl&lt;br&gt;Text = Text1.Text&lt;br&gt;Length = Len(Text)&lt;br&gt;MaxLen = Text1.MaxLength&lt;br&gt;If Length &amp;gt; MaxLen Then&lt;br&gt;&lt;blockquote&gt;  &lt;i&gt;&amp;#39;How can this be? Maybe it was pasted.&lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39;This causes another change event so we&amp;#39;ll be back.&lt;/i&gt;&lt;br&gt;Text1.Text = Left$(Text, MaxLen)&lt;/blockquote&gt;ElseIf Length = MaxLen And Text1.SelStart = MaxLen Then  &lt;br&gt;&lt;blockquote&gt;  SendKeys &amp;quot;{TAB}&amp;quot;&lt;/blockquote&gt;End If  &lt;br&gt;AutoTabTrap:&lt;br&gt;Exit Sub&lt;/blockquote&gt;End Sub  &lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>GetMDACVersion GetExcelVersion</title><link>http://bevnap.wetpaint.com/page/GetMDACVersion+GetExcelVersion</link><author>2buck</author><guid isPermaLink="false">http://bevnap.wetpaint.com/page/GetMDACVersion+GetExcelVersion</guid><pubDate>Fri, 01 Dec 2006 22:37:33 CST</pubDate><description>Public Function GetMDACVersion() As String&lt;br&gt;&lt;blockquote&gt;  Dim objObject As Object&lt;br&gt;&lt;br&gt;GetMDACVersion = &amp;quot;n/a&amp;quot;&lt;br&gt;On Error Resume Next&lt;br&gt;Set objObject = New ADODB.Connection&lt;br&gt;GetMDACVersion = objObject.Version&lt;/blockquote&gt;  End Function&lt;br&gt;&lt;br&gt;Public Function GetExcelVersion() As String&lt;br&gt;&lt;blockquote&gt;  Dim objObject As Object&lt;br&gt;&lt;br&gt;GetExcelVersion = &amp;quot;n/a&amp;quot;&lt;br&gt;On Error Resume Next&lt;br&gt;Set objObject = New Excel.Application&lt;br&gt;GetExcelVersion = objObject.Version&lt;/blockquote&gt;  End Function&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Visual Basic 6.0</title><link>http://bevnap.wetpaint.com/page/Visual+Basic+6.0</link><author>2buck</author><guid isPermaLink="false">http://bevnap.wetpaint.com/page/Visual+Basic+6.0</guid><pubDate>Fri, 01 Dec 2006 22:30:36 CST</pubDate><description>There is no abstract available for this page revision.&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>SelectActiveText</title><link>http://bevnap.wetpaint.com/page/SelectActiveText</link><author>2buck</author><guid isPermaLink="false">http://bevnap.wetpaint.com/page/SelectActiveText</guid><pubDate>Thu, 30 Nov 2006 22:23:23 CST</pubDate><description>Public Sub SelectActiveText() &lt;br&gt;&lt;blockquote&gt;  &lt;i&gt;&amp;#39;Call from the GetFocus events for all the TextBoxes and &lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39;ComboBoxes with Style=0 - Dropdown Combo. &lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39;Select only if tabbed not clicked. &lt;/i&gt;&lt;br&gt;Dim ctrl As Control &lt;br&gt;Const KEY_LBUTTON = &amp;amp;H1 &lt;br&gt;&lt;br&gt;On Error GoTo SelectActiveTextTrap &lt;br&gt;Set ctrl = Screen.ActiveControl &lt;br&gt;If IsLButtonDown() Then &lt;br&gt;&lt;blockquote&gt;  ctrl.SelLength = 0 &lt;/blockquote&gt;  Else &lt;br&gt;&lt;blockquote&gt;  ctrl.SelStart = 0 &lt;br&gt;ctrl.SelLength = Len(ctrl.Text) &lt;/blockquote&gt;  End If &lt;br&gt;SelectActiveTextTrap: &lt;br&gt;Exit Sub &lt;/blockquote&gt;End Sub   &lt;br&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>IsVBIDE</title><link>http://bevnap.wetpaint.com/page/IsVBIDE</link><author>2buck</author><guid isPermaLink="false">http://bevnap.wetpaint.com/page/IsVBIDE</guid><pubDate>Thu, 30 Nov 2006 22:20:18 CST</pubDate><description>Public Function IsVBIDE() As Boolean &lt;br&gt;&lt;blockquote&gt;  &lt;i&gt;&amp;#39; Returns True if this code is running &lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; inside the VB Integrated Development Environment (IDE). &lt;/i&gt;&lt;br&gt;&lt;i&gt;&amp;#39; The trick here is that Debug.Print only runs in the VB IDE. &lt;/i&gt;&lt;br&gt;On Error Resume Next &lt;br&gt;Debug.Print 1 / 0 &lt;br&gt;IsVBIDE = Err.Number &amp;lt;&amp;gt; 0 &lt;/blockquote&gt;End Function  &lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item><item><title>Home</title><link>http://bevnap.wetpaint.com/page/Home</link><author>2buck</author><guid isPermaLink="false">http://bevnap.wetpaint.com/page/Home</guid><pubDate>Wed, 29 Nov 2006 22:22:20 CST</pubDate><description>Some of the best ideas are written on BEVerage NAPkins.&lt;br&gt;&lt;br&gt;See also: &lt;a class=&quot;external&quot; href=&quot;http://bevnap.wetpaint.comhttp://bevnap.blogspot.com&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;bevnap.blogspot.com&lt;/a&gt;&lt;hr size=&quot;1&quot;&gt;&lt;br/&gt;</description></item></channel></rss>