Tehnika Krstarice > Rad na kompjuteru > Access - Učitavanje poslednje korišćenog sloga

Access - Učitavanje poslednje korišćenog sloga

27.01.2002.

Ponekad je potrebno da kod nekih aplikacija, u nekim formama, automatski učitavate slog koji je poslednji korišćen ili koji je recimo najviše puta menjan (editovan). Da bismo u Accessu postigli ovaj cilj, potrebno je, ukratko, uraditi sledeće:

  • kreirati novu tabelu u kojoj ćemo čuvati primarni ključ korišćenog sloga između dve sesije (dva korišćenja date forme);
  • da bismo primarni ključ sloga smestili u tabelu, iskoristićemo događaj Unload forme;
  • da bismo pronašli i prikazali slog kod pozivanja određene forme, iskoristićemo događaj Load (učitavanje) forme.

Radi ilustracije, uzećemo formu na kojoj je primarni ključ polje [Sifra_Kupca]. Prvo ćemo kreirati tabelu u koju ćemo smeštati vrednost ovog primarnog ključa između dve sesije. Zato, kreirajte novu tabelu sa tri polja:

Naziv polja  Tip       Opis
Varijabla    Text 20   Sadrzi naziv varijable,
                       naziv primarnog kljuca.
Vrednost     Text 80   Sadrzi vrednost varijable.
Opis         Text 255  Za sta se varijabla koristi.

Snimite ovu tabelu pod nazivom [tblKljuc]. U Accessu verzija 95 i 97, ovu tabelu označite kao skrivenu (hidden).

Za snimanje vrednosti primarnog ključa u novu tabelu iskoristićemo obrađivač događaja forme UnLoad. Podesite osobinu UnLoad forme na [Event Procedure], i dodajte naredni kod. U ovoj proceduri ćemo pronaći (ili kreirati) podatak-slog u tabeli tblKljuc, koji u polju [Varijabla] ima vrednost [Posled_Sifra_Kupca], te ćemo u polju [Vrednost] sačuvati vrednost primarnog ključa trenutnog sloga.

Sub Form_Unload (Cancel As Integer)
    Dim db As Database, rst As Recordset

    If IsNull(Me![Sifra_Kupca]) Then Exit Sub
    Set db = DBEngine(0)(0)
    Set rst = db.OpenRecordset("tblKljuc")
    rst.index = "PrimaryKey"
    rst.Seek "=", "Posled_Sifra_Kupca"
    If rst.NoMatch Then
        rst.AddNew
            rst![Varijabla] = "Posled_Sifra_Kupca"
            rst![Vrednost] = Me![Sifra_Kupca]
            rst![Opis] =
"Poslednja vred. sifre kupca, sa forme " & Me.Name
        rst.Update
    Else
        rst.Edit
            rst![Vrednost] = Me![Sifra_Kupca]
        rst.Update
    End If
    rst.Close
End Sub

Osobinu Load, iste forme, podesite na [Event Procedure] i dodajte sledeći kod. Ovaj kod odrađuje sledeće:

  • locira slog u tabeli tblKljuc, gde je u polju Varijabla sadržana vrednost [Posled_Sifra_Kupca]
  • preuzima poslednje upisanu vrednost primarnog ključa iz polja [Vrednost]
  • kreira klon recordseta sa podacima sa forme
  • pronalazi odgovarajući slog - Sifra_Kupca u kloniranom skupu
  • premešta se na taj slog kreiranjem BookMarka forme


Sub Form_Load ()
    Dim db As Database,
    rst As Recordset, rstFrm As Recordset

    Set db = DBEngine(0)(0)
    Set rst = db.OpenRecordset("tblKljuc")
    rst.index = "PrimaryKey"
    rst.Seek "=", "Posled_Sifra_Kupca"
    If Not rst.NoMatch Then
        If Not IsNull(rst![Vrednost]) Then
            Set rstFrm = Me.RecordsetClone
            rstFrm.FindFirst "[Sifra_Kupca]
            = " & rst![Vrednost]
            If Not rstFrm.NoMatch Then
                Me.BookMark = rstFrm.BookMark
            End If
            rstFrm.Close
        End If
    End If
    rst.Close
End Sub

Preporučite ovaj članak

Članak još uvek nije ocenjen.