Arthur Fuller
artful at rogers.com
Tue Feb 11 15:34:01 CST 2003
The version I like the best calls the static function from the OnCurrent event of the form, then sets the button's enabled property accordingly. A central goal of my interface designs is to make the user feel graceful not clumsy. To that end, anywhere I can eliminate the need to tell him that he's wrong, I do so. If the button is disabled, he can't click it, and will never see the message that tells he's done something wrong. Additionally, it eliminates one more click from the UI, which is a good thing. -----Original Message----- From: accessd-admin at databaseadvisors.com [mailto:accessd-admin at databaseadvisors.com] On Behalf Of Bob Gajewski Sent: February 11, 2003 3:26 PM To: 'accessd at databaseadvisors.com' Subject: RE: [AccessD] Using DateDiff function CORRECTED QUESTION CORRECTION Arthur (Almost) totally unrelated question, but I imagine you know the answer. Which is more efficient? ************************************************************** Private Sub Command20_Click() If DateDiff("h", Now, LastRun()) <= 15 Then If vbNo = MsgBox("You've already updated the records today." & vbCrLf & _ "Are you sure that you want to update them again?", vbYesNo + vbQuestion, "Alert") Exit Sub Else DoCmd.RunMacro "GetRates" End If End If End Sub ************************************************************** or your response to Oleg? I'm desperately trying to streamline my code for processing speed, and I would appreciate any thoughts you have on this. TIA, Bob Gajewski On Tuesday, February 11, 2003 15:00 PM, Arthur Fuller [SMTP:artful at rogers.com] wrote: > Yet another opportunity for me to praise static functions :-) Put this into > a public module: > > Static Function LastRun() as Date > Dim dtNow as Date > If IsNull(dtNow) Then > dtNow = Now() > End If > LastRun = dtNow > End Function > > Now call this function from your click: > > Private Sub Command20_Click() > Dim Andy > If DateDiff("h", Now, LastRun()) <= 15 Then > Andy = MsgBox("You've already updated the records today" & vbCrLf & _ > "Are you sure you wish to update again?", vbYesNo, "alert") > If Andy = vbNo Then > Exit Sub > End If > End If > DoCmd.RunMacro "GetRates" > End Sub > > Or, perhaps better, in the OnCurrent event of the form, set the availability > of the button and forget the "You bungling user" message :-) > > Command20.Enabled = DateDiff("h", Now, LastRun()) > 15 > > Which of course poses problems if the user is likely to have the form open > on the same record for hours and hours, but if that is a possibility you can > put the line above into its own function and call that function from a > timer > Hth, > Arthur > > -----Original Message----- > From: accessd-admin at databaseadvisors.com > [mailto:accessd-admin at databaseadvisors.com] On Behalf Of Oleg_123 at xuppa.com > Sent: February 11, 2003 1:53 PM > To: accessd at databaseadvisors.com > Subject: [AccessD] Using DateDiff function > > Hey, I am trying to make sure a user doesn'y click on same button twice > in one day by mistake. I wrote this; doesn't work caz LastRun keeps > getting redefined if it starts over. Maybe I should an invisible label to > store latest update date and then check against the label ? > > ------------------------------------------------------- > Dim LastRun > > Private Sub Command20_Click() > Dim Andy > > If DateDiff("h", Now, LastRun) <= 15 Then > Andy = MsgBox("You've alredy updated the records today" & vbCrLf & _ > "Are you sure you wish to update again?", vbYesNo, "alert") > If Andy = vbNo Then > Exit Sub > End If > End If > DoCmd.RunMacro "GetRates" > > LastRun = Now > End Sub > > > ----------------------------------------- > Send a Xuppa Valentine to Your Sweetheart today! > http://www.xuppa.com/greet/ > > > _______________________________________________ > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > _______________________________________________ > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > _______________________________________________ AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com