Salt la conținutul principal
Asistență
Conectare

Formular sau un raport care este legat de o procedură stocată sau o funcţie nu se aplică în cazul în care starea

Lucrați de oriunde de pe orice dispozitiv cu Microsoft 365

Faceți upgrade la Microsoft 365 pentru a lucra oriunde cu cele mai recente caracteristici și actualizări.

Faceți upgrade acum

Moderat: Necesită bază macrocomandă, codificare și interoperabilitate detaliate.


Acest articol se aplică numai pentru un proiect Microsoft Access (.adp).


Simptome

Când încercați să filtrați o formă de acces sau un raport utilizând o valoare care se afișează pe un alt obiect, cum ar fi o altă formă de acces, filtrul nu se aplică.

Rezolvare

Există câteva metode care ar putea folosi pentru a rezolva incapacitatea de a filtra un formular sau un raport care este legat de o procedură stocată sau o funcţie. Cele mai multe dintre aceste soluții implică înlocuirea procedura stocată sau funcția cu un alt tip de sursă de înregistrări, cum ar fi un tabel, o vizualizare sau o instrucțiune SQL.

Cu toate acestea, următoarea rezolvare vă arată cum se poate continua utilizarea unei proceduri stocate ca sursă de înregistrări pentru un formular, în timp ce implementarea cu succes o condiție de unde sau filtru.

Atenție: dacă urmați pașii din acest exemplu, modificați proiectul Access eşantion NorthwindCS.adp. Se recomandă să creați copii de rezervă fişierul NorthwindCS.adp și urmați acești pași pe o copie a proiectului.

  1. Deschide proiectul eșantion NorthwindCS.adp.

  2. În fereastra de baze de date, faceți clic pentru a evidenția tabelul Categorii, și apoi faceți clic pe formular automat în meniul Inserare .

    Notă Dacă utilizați Access 2007, faceți clic pentru a evidenția tabelul Categorii în fereastra de baze de date și apoi faceți clic pe formular în grupul de formulare pe fila Creare .

  3. Deschideți formularul în vizualizarea proiect.

  4. Ștergeți obiectul subformular numită Table.Products din formularul principal, și apoi adăugați un buton de comandă pentru a forma. Dacă Expertul nu pornește, faceți clic pe Revocare.

  5. Setați următoarele proprietăți pentru butonul de comandă:
    Name: cmdFilterProducts
    Caption: Filter Products
    On Click: [Event Procedure]

  6. Setați proprietatea OnClick a butonului de comandă la următoarea procedură eveniment:

    Private Sub cmdFilterProducts_Click()
    DoCmd.OpenForm "Products", acNormal, , , acFormEdit, acWindowNormal
    End Sub
  7. În meniul fișier , faceți clic pe închide și reveniți la Microsoft Access.

  8. În meniul fișier , faceți clic pe Salvareși salvați formularul ca Categories1.

    Notă În bara de instrumente Acces rapid , faceți clic pe Salvare.

  9. În fereastra de baze de date, interogări, și apoi faceți clic pe nou.

    Notă Dacă utilizați Access 2007, faceți clic pe Expert interogare în grupul alte pe fila Creare .

  10. În caseta de dialog Interogare nouă , Creați Text procedura stocată, și apoi faceți clic pe OK.

  11. Tastați sau lipiți următoarea declarație Transact-SQL, apoi închideți și Salvați procedura cu numele implicit al spProducts:

    CREATE PROCEDURE spProducts
    @CatID int
    AS
    SELECT * FROM Products WHERE CategoryID = @CatID
    RETURN
  12. Deschideți formularul produse în vizualizare și apoi modificați proprietatea Sursă înregistrări din produsele spProducts.

  13. Defilaţi în jos la proprietatea InputParameters a formularului și apoi să atribuiţi următoarea valoare pentru această proprietate:

    @CatID int = formulare! [Categories1]! [IDCategorie]

  14. Închideți și salvați formularul de produse, și apoi deschideți formularul Categories1.

  15. Navigați la NumeCategorie Confectii, și apoi faceți clic pe butonul Filtru produse . Rețineți că formularul de produse se deschide și afișează numai produsele în cazul în care este egală cu Confectii categorie.

Stare

Acest comportament este proiectat.

Mai multe informații

Deseori, un utilizator de acces va dori să limitați numărul de înregistrări care apar pe un formular de acces sau raport. O metodă pentru a face acest lucru este pentru a filtra înregistrările din formular (sau raport) cu o condiție în cazul în care se utilizează un alt obiect să furnizeze valoarea condițională. De exemplu, un formular poate afișa o valoare condițională, care va fi folosit de alt formular pentru a limita numărul de înregistrări să se afișeze. Cu toate acestea, dacă formularul pe care încercați să filtrați are o procedură stocată sau o funcţie ca sursă de înregistrări, filtrul este ignorat. Următorii pași ilustrează acest comportament.

Atenție: dacă urmați pașii din acest exemplu, modificați proiectul Access eşantion NorthwindCS.adp. Se recomandă să creați copii de rezervă fişierul NorthwindCS.adp și urmați acești pași pe o copie a proiectului.

Pași pentru a Reproduce comportamentul Acess 2003

  1. Urmați pașii de la 1 la 5 din secțiunea "Rezolvare" anterior în acest articol.

  2. Setați proprietatea OnClick a butonului de comandă la următoarea procedură eveniment:

    Private Sub cmdFilterProducts_Click()
    DoCmd.OpenForm "Products", acNormal, , "[CategoryID] = " & Me!CategoryID, acFormEdit, acWindowNormal
    End Sub
  3. În meniul fișier , faceți clic pe închide și reveniți la Microsoft Access.

  4. În meniul fișier , faceți clic pe Salvareși salvați formularul ca Categories1.

  5. Deschideți formularul în Vizualizare formular.

  6. Navigați la NumeCategorie Confectii, și apoi faceți clic pe butonul Filtru produse . Rețineți că formularul de produse se deschide și afișează numai produsele în cazul în care este egală cu Confectii categoria.

  7. Închideți ambele produse și Categories1 formulare.

  8. În fereastra de baze de date, interogări, și apoi faceți clic pe nou. Creați Text procedura stocată, și apoi faceți clic pe OK.

  9. Tastați sau lipiți următoarea declarație Transact-SQL, apoi închideți și Salvați procedura cu numele implicit al spProducts:

    CREATE PROCEDURE spProducts
    AS
    SELECT * FROM Products
    RETURN
  10. Deschideți formularul produse în vizualizare și apoi modificați proprietatea sursă înregistrări din produsele spProducts.

  11. Închideți și salvați formularul de produse, și apoi deschideți formularul Categories1.

  12. Navigați la NumeCategorie Confectii, și apoi faceți clic pe butonul Filtru produse . Rețineți că formularul de produse se deschide și afișează toate produsele în loc de doar produsele din categoria confectii.

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

V-a fost de ajutor această informație?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×