Introduction
This week, we will create a Slide Show of images on a Form that runs when the Form remains idle for a certain period of time. It works something like the following:
When the Main Switchboard Form remains idle for about one minute the Slide Show runs and each image will change at a fixed interval of about 6 seconds. The Idle Time and Interval Time can be changed according to your specific needs.
The idle time of the Form is calculated based on the inactivity (i.e. No interaction with the User) of the Main Switchboard Form and the active control on the Form remains active for more than one minute.
If you click on a Command Button or List box or any other control other than the active control on the Main Switchboard Form then the Form comes out of its idle state and the Slide Show stops.
Checking for the idle state of the Form starts again from that point onwards with the new active control. If the same control remains active for more than one minute then the slide show starts again.
If you open another Form over the Main Switchboard Form then the slide show sleeps until the Main Switchboard Form becomes active again.
You need a few Bitmap Images of Landscapes or Photos and you can use as many images as you like for the Slide Show. All the images should have the same name with a Sequence Number at the end like 1.bmp, 2.bmp, 3.bmp, and so on. You can use jpg or gif and other images but this will display a progress bar for a brief moment while loading the image into the Image Control. All images must be of the same type.
Sample Main Switchboard Form
A sample Main Switchboard Form with the active Slide Show is given below:
The Design Task
To try out this interesting trick; first, organize a few Bitmap Images into a folder as explained above.
Make a copy of your existing Main Switchboard Form (Control Screen).
Open the Form in Design View.
Make enough room on the Form to create an Image Control on the Form.
Display the Toolbox (View - - >Toolbox), if it is not visible.
Select the Control Wizards button on the Toolbox to make it active.
Select the Image control Tool from the Toolbox and draw an Image Control on the Form where you want the SlideShow to appear.
The Common Dialog Control will display. Browse to the Image location and select the image with Serial Number 1 (Image1.bmp).
The selected image will appear in Image Control.
While the Image control is still in the selected state; display the Property Sheet (View - -> Properties) and change the following Property Values as indicated below:
Name = ImageFrame
Size Mode = Zoom
NB: We need part of the Picture Property Value (the location address of the Images) to make changes in the Program that we are going to introduce into the Code Module of the Form. So, note down the image location address on paper from the Picture Property or copy and paste it into a Notepad document for later use.
Display the Code Module of the Form (View - -> Code).
Press Ctrl+A to highlight the existing VBA Code in the Module, if present, and press Delete to remove them.
Copy and Paste the following Code into the Form Module.
Switchboard Form Module VBA Code (Revised Code)
Option Compare Database Dim actForm As String, actControl As String, idletime As Integer Dim oldForm As String, oldControl As String, imageNo As Integer Dim s_path As String Private Sub Form_Activate() Me.TimerInterval = 1000 End Sub Private Sub Form_Deactivate() Me.TimerInterval = 0 Me.ImageFrame.Visible = False End Sub Private Sub Form_Load() DoCmd.Restore idletime = 0 imageNo = 0 s_path = CurrentProject.Path Me.ImageFrame.Visible = False Me.TimerInterval = 1000 End Sub Private Sub Form_Timer() Dim txt As String txt = "Slide-Show Starts In: " actForm = Screen.ActiveForm.Name actControl = Screen.ActiveForm.ActiveControl.Name If actForm = oldForm And actControl = oldControl And actForm = "SlideShow" Then idletime = idletime + 1 If idletime > 15 And idletime < 31 Then Me.Lblup.Visible = True Me.Lblup.caption = txt & (30 - idletime) & " Seconds." Else Me.Lblup.Visible = False End If Else oldForm = actForm oldControl = actControl idletime = 0 Me.ImageFrame.Visible = False Me.Employees.Visible = False DoEvents End If If idletime > 30 Then Me.Lblup.Visible = False DoEvents If idletime Mod 5 = 1 Then Me.ImageFrame.Visible = True Me.Employees.Visible = True imageNo = imageNo + 1 imageNo = IIf(imageNo < 1 Or imageNo > 9, 1, imageNo) Me.ImageFrame.Picture = s_path & "\" & imageNo & ".bmp" DoEvents End If End If End Sub
Make Important Changes to References
Change the "SlideShow" reference in the VBA code line with your own Main Switchboard Form Name.
Change Number 9, in the second line with bold letters, to match with the number of Images you have saved for the Slide Show as explained above.
If your pictures are not Bitmap Images then change the file extension ".bmp" to indicate your image type.
Save and Close the Form.
Open the Main Switchboard Form in Normal View.
Wait for one minute to begin the Slide Show.
Interrupting the Slide Show.
When the Slide Show is running, if you click on a Control other than the active control on the Form the Slide Show will stop and the image will disappear.
If you don't click on any other control on the Form and the time elapsed is more than 30 seconds, since your last click on a Control, the Slide Show will run again.
If you want to increase or decrease the idle time of the Form then change the value in the VBA line If idle time > 30 Then to an appropriate value you prefer.
Each Image stays displayed for about 6 seconds. If you want to increase or decrease the display time, then change the Value in the VBA line
If idle time Mod 5 = 1 Then to the required value you prefer the time delay between two slides for viewing.
Download the Demo Database from the Link given below:
NOTE: Unzip the Database with Photos into a Temporary Folder and open the Database from there. Read the Notes given in the Form for details on how it runs and how to disable it etc.
[...] number with .jpg file extension like: 12345.jpg. Learn another trick with pictures from this link: Run Slide Show when the Form is idle __________________ http://www.msaccesstips.com (Learn MS-Access Tips and Tricks) Learn Advanced [...]
ReplyDeleteHi sir.
ReplyDeleteI follow you on Facebook please I want to ask if you can make a video tutorial on it thank you
Hello, I am sorry I could not reply to you so far. I have attached a Demo Database at the end of this Article. The database and the sample images are in the zipped file. Create a Temporary folder on your Disk Drive, unzip the files and save them in the new folder. Open the database from there. Read the information given in the Form. The Slide-Show will start after 30 seconds after opening the Form.
Delete