Lucrul cu obiectul Screen

Dacă ați utilizat VBA în alte aplicații Office, probabil ați scris un cod care funcționează cu oricare obiect care este activ în prezent (are focalizarea, ceea ce înseamnă că este cel afectat de tastare sau clic). În Word se poate utiliza obiectul ActiveDocument pentru a lucra cu documentul activ sau cu obiectul Selection pentru a lucra cu selecția curentă. În PowerPoint aveți posibilitatea să lucrați cu obiectul ActivePresentation pentru a lucra cu orice prezentare se întâmplă să fie activă. Dar, în Access, aveți posibilitatea să utilizați obiectul Screen pentru a lucra cu formularul, raportul sau controlul care are focalizarea. Obiectul Screen are diverse proprietăți, inclusiv următoarele:

  • Proprietatea ActiveForm returnează formularul activ. Dacă nu există nici un formular activ, încercarea de a utiliza proprietatea ActiveForm returnează eroarea 2475.
  • Proprietatea ActiveDatasheet returnează foaia de date activă. Dacă nu există nici o foaie de date active, încercarea de a utiliza proprietatea ActiveDatasheet returnează eroarea 2484.
  • Proprietatea ActiveReport returnează raportul activ. Dacă nu există nici un raport activ, încercarea de a utiliza proprietatea ActiveReport returnează eroarea 2476.
  • Proprietatea ActiveDataAccessPage returnează pagina de acces activ la date. Dacă nu există nici o pagină de acces activ la date, încercarea de a utiliza proprietatea ActiveDataAccessPage returnează eroarea 2022.
  • Proprietatea ActiveControl returnează controlul activ. Dacă nu există nici un control activ, încercarea de a utiliza proprietatea ActiveControl returnează eroarea 2474.
  • Proprietatea PreviousControl vă permite să accesați controlul care a avut anterior focalizarea.

Pentru a evita erorile, ar trebui să verificați dacă obiectul țintă este în prezent cel activ înainte de a încerca să-l manipulați utilizând obiectul Screen. Următorul exemplu utilizează numerele de eroare listate mai sus pentru a determina dacă un formular, un raport, o foaie de date sau o pagină de acces la date este activă, apoi afișează o casetă de mesaj care identifică elementul și îi afișează numele:

On Error Resume Next

Dim strName As String 
Dim strType As String 
strType = "Form"
strName = Screen.ActiveForm.Name 
If Err = 2475 Then 
    Err = 0
    strType = "Report"
    strName = Screen.ActiveReport.Name 
    If Err = 2476 Then 
        Err = 0
        strType = "Data access page"
        strName = Screen.ActiveDataAccessPage.Name 
        If Err = 2022 Then 
            Err = 0
            strType = "Datasheet" 
            strName = Screen.ActiveDatasheet.Name 
        End If 
    End If 
End If
MsgBox "Obiectul curent Screen este " & strType & vbCr _
   & vbCr & "Numele obiectului Screen: " & strName, _ 
   vbOKOnly + vbInformation, "Obiectul curent Screen"

Dacă testați acest lucru, utilizați fila Create de pe Panglică (și faceți clic pe pictograma Form) pentru a vă asigura că există un formular activ în Access.