Access – Učitavanje poslednje korišćenog sloga

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

Pratite Krstaricu na www.krstarica.com