<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://customerfx.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>Jason Buss&amp;#39; Blog : Basics, Progress Bar, ADO</title><link>http://customerfx.com/pages/customization/archive/tags/Basics/Progress+Bar/ADO/default.aspx</link><description>Tags: Basics, Progress Bar, ADO</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP2 (Build: 20611.960)</generator><item><title>Providing interface feedback - Progress Bars</title><link>http://customerfx.com/pages/customization/2009/05/07/providing-interface-feedback-progress-bar.aspx</link><pubDate>Thu, 07 May 2009 11:14:00 GMT</pubDate><guid isPermaLink="false">e15581aa-2787-4c59-a940-524c09f5d256:40507</guid><dc:creator>Jason Buss</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://customerfx.com/pages/customization/rsscomments.aspx?PostID=40507</wfw:commentRss><comments>http://customerfx.com/pages/customization/2009/05/07/providing-interface-feedback-progress-bar.aspx#comments</comments><description>&lt;p&gt;When performing lengthy updates in the SalesLogix client, it&amp;#39;s a good idea to provide the user with some degree of feedback so that it doesn&amp;#39;t appear as though SalesLogix has locked up.&amp;nbsp; The Progress Bar control, can be used for this purpose:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;u&gt;&lt;b&gt;Progress Bar&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;&lt;p&gt;The main properties in this control you will want to set are the &amp;quot;Max&amp;quot; and &amp;quot;Position&amp;quot; properties.&amp;nbsp; &amp;quot;Max&amp;quot; defines the upper limit of the bars position.&amp;nbsp; &amp;quot;Position&amp;quot; defines the current position of the bar.&amp;nbsp; Basically, we just need to set &amp;quot;Max&amp;quot; to the count of records modified, and then need to increment the &amp;quot;Position&amp;quot; value by one for each record we update.&lt;/p&gt;&lt;p&gt;In this simple example, I&amp;#39;m simply running through the Account table, and setting the status value from each record to &amp;quot;Open&amp;quot; when it doesn&amp;#39;t already have that status.&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;font size="1"&gt;Sub UpdateAccounts&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;font size="1"&gt;Dim rs&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&gt;Set rs = CreateObject(&amp;quot;ADODB.Recordset&amp;quot;)&lt;/font&gt;&lt;br /&gt;&lt;font size="1"&gt;With rs, pos&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pos = 0&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set .ActiveConnection = Application.GetNewConnection&lt;/font&gt;&lt;br /&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .CursorLocation = adUseClient&lt;/font&gt;&lt;br /&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .CursorType = adOpenStatic&lt;/font&gt;&lt;br /&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .LockType = adLockOptimistic&lt;/font&gt;&lt;br /&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Open &amp;quot;select * from Account where status &amp;lt;&amp;gt; &amp;#39;Open&amp;#39;&amp;quot;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProgressBar1.Max = .RecordCount&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size="1"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProgressBar1.Position = pos&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .MoveFirst&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; While Not (.Bof or .Eof)&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&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; .Fields(&amp;quot;modifyuser&amp;quot;).Value = Application.BasicFunctions.CurrentUserID&lt;/font&gt;&lt;br /&gt;&lt;font size="1"&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; .Fields(&amp;quot;modifydate&amp;quot;).Value = Now&lt;/font&gt;&lt;br /&gt;&lt;font size="1"&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; .Fields(&amp;quot;status&amp;quot;).Value = &amp;quot;Open&amp;quot;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&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; .Update&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&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; pos = pos + 1&lt;/font&gt;&lt;br /&gt;&lt;font size="1"&gt;&lt;b&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; ProgressBar1.Position = pos&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&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; .MoveNext&lt;/font&gt;&lt;br /&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wend&lt;/font&gt;&lt;br /&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Close&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&gt;End With&lt;/font&gt;&lt;br /&gt;&lt;font size="1"&gt;Set rs = Nothing&lt;/font&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;font size="1"&gt;End Sub&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;That&amp;#39;s all there is to it. Users will now be able to visually follow the progress of the update.&amp;nbsp; I hope you found this code sample helpful! &lt;img src="http://customerfx.com/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://customerfx.com/aggbug.aspx?PostID=40507" width="1" height="1"&gt;</description><category domain="http://customerfx.com/pages/customization/archive/tags/SalesLogix+LAN+Client/default.aspx">SalesLogix LAN Client</category><category domain="http://customerfx.com/pages/customization/archive/tags/Controls/default.aspx">Controls</category><category domain="http://customerfx.com/pages/customization/archive/tags/Customizations/default.aspx">Customizations</category><category domain="http://customerfx.com/pages/customization/archive/tags/SalesLogix/default.aspx">SalesLogix</category><category domain="http://customerfx.com/pages/customization/archive/tags/Development/default.aspx">Development</category><category domain="http://customerfx.com/pages/customization/archive/tags/Basics/default.aspx">Basics</category><category domain="http://customerfx.com/pages/customization/archive/tags/How-To/default.aspx">How-To</category><category domain="http://customerfx.com/pages/customization/archive/tags/vbscript/default.aspx">vbscript</category><category domain="http://customerfx.com/pages/customization/archive/tags/ADO/default.aspx">ADO</category><category domain="http://customerfx.com/pages/customization/archive/tags/Progress+Bar/default.aspx">Progress Bar</category></item></channel></rss>