Mesaj tip PopUp temporizat în Ms Access

Sunt situaţii în care, prin folosirea anumitor acţiuni, este necesară afişarea unui mesaj, dar care să nu implice acţiunea noastră de închidere; de exemplu, o serie de update-uri succesive.

Pentru asta, o variantă simplă se poate realiza printr-un mic ajutor VBA.

Public Function fcPopUpTimer(nrSec As Integer, sText As String) As String
CreateObject("WScript.Shell").PopUp sText, nrSec, "Mesaj atentionare", 0 + 48
End Function

Fig. 1

În exemplul de mai sus, sText este variabila care implică textul ce poate fi afişat, în funcţie de context (de exemplu: „S-a realizat update-ul primei tabele!„, nrSec reprezintă numărul de secunde (1, 2, 3 etc.) cât va fi afişat mesajul, setul 0+48 se ocupă de tipul de buton care va fi afişat (0-butonul OK, 48-semnul exclamării). Mai multe opţiuni pentru buton şi simbolul afişat pot fi găsite accesând linkul

Acolo unde este necesar, se invocă funcţia respectivă, precum în exemplul de mai jos.

Call fcPopUpTimer(2, "S-a realizat update-ul primei tabele!")

Efectul se poate remarca în figura 1.

O variantă mai sofisticată, pentru aceeaşi funcţie (fcPopUpTimer), poate implica diferite interacţiuni, în funcţie de butonul apăsat. Astfel, funcţia ar putea arăta ca mai jos.

Public Function fcPopUpTimer(sText As String) As String
Dim WshShell, btn
Set WshShell = CreateObject("WScript.Shell")
btn = WshShell.PopUp("Vreti sa continuam update-ul?", 3, "Mesaj atentionare", 4 + 48)
Select Case btn
Case 6 ' Actionarea butonului Yes
MsgBox "O decizie recomandabilã.", vbExclamation, "Actiune"
Case 7 ' Actionarea butonului No
MsgBox "Vom face update altadatã.", vbCritical, "Anulare"
Case -1 ' Nicio actiune
MsgBox "Se pare cã, încã sunteþi indecis.", vbInformation, "Amânare"
End Select
End Function

Rezultatul poate fi remarcat în figurile următoare.

Fig. 2 Prima interacţiune
Fig. 3 Apăsarea butonului Yes
Fig. 4 Apăsarea butonului No
Fig. 5 Asteptare (inacţiune)

Author: Ovidiu.S

Suficient de pasionat de această zonă profesională ca, în cazul în care ştiu ceva - cât de puţin - să împărtăşesc cu alţii.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *