Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Provjera pri unosu podataka

[es] :: Access :: Provjera pri unosu podataka

[ Pregleda: 994 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Carduel
Carduel Spanic
Croatia

Član broj: 93224
Poruke: 84



+1 Profil

icon Provjera pri unosu podataka26.11.2022. u 23:10 - pre 16 meseci
Pozdrav,

nešto razmišljam o kontroli unosa podataka preko forme kako da se provjeri da li smo nekad prije unijeli taj podatak.

Ukoliko se na nivou teblice npr. za atribut productName postavi Indexed na Yes (No Duplicates) koliko vidim da ta opcija neće dati mogućnost da se napravi duplikat prilikom upisa i da nije osjetljiva na velika i mala slova.

Je li potreban VB code da bi se preko forme dobila provjera i izbacila greška (ovaj artikal već postoji, kliknite ok za nastavak) koju mi postavimo, da je korisnik vidi u slučaju duplog unosa?

Ako se provjera uradi u VB code da li treba postaviti provjeru na nivou tablice (indexed yes (no duplicate)?







[Ovu poruku je menjao Carduel dana 27.11.2022. u 00:31 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: Provjera pri unosu podataka27.11.2022. u 15:36 - pre 16 meseci
Dovoljno je postaviti u tabeli osobinu polja Indexed na Yes(No Duplicates).
Unos je senzitivan na mala i velika slova. Naravno da greške u kucanju ne može da predpostavi. Tu ne pomaže nikakav VBA kod.


PS. File, Options, Current Database, čekiraj opciju Compact on Close kod vakog novog fajla.
Prikačeni fajlovi
 
Odgovor na temu

Carduel
Carduel Spanic
Croatia

Član broj: 93224
Poruke: 84



+1 Profil

icon Re: Provjera pri unosu podataka27.11.2022. u 17:22 - pre 16 meseci
Hvala Getsbi,

htio bi da pitam jednu stvar vezano za ovaj i druge slučajeve ovog tipa. Općenito kod baza podataka, nebitno da li je to Access, MySQL, PostgreSQL, da li je pravilo da se zaštita unosa duplikata isključivo postavlja na nivou baze pomoću svojstva polja Indexed?

Koliko vidim u ovom primjeru može se spriječiti unos duplikata i pomoću VBA koda. Znači imamo tri mogućnosti: pomoću Indexed ili VBA kodom i pomoću Indexed i VBA kodom zajedno. Možemo li u ovakvom slučaju reći što je generalno ispravno jer sve ove kombinacije daju traženi rezultat?

I još jedan detalj da meni kao početniku nekako ne odgovara poruka prilikom unosa duplikata koju Access izbaciva u slučaju da stavimo provjeru pomoću Indexed: The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship itd...

Više mi se sviđa provjera u VBA kodu kada se pomoću vbInformation može informirati korisnika MsgBox porukom da je artikal već unesen. Možda i Access može izbaciti generički ovakvu poruku ali nisam uspio pronaći taj način bez VBA koda.

Molim Vas možete li mi objasniti što se dešava kod novog fajla kada se radi o Compact on Close?

lp



 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: Provjera pri unosu podataka27.11.2022. u 19:05 - pre 16 meseci
Fajl koji sam zakačio radi isključivo bez VBA kôda. Jedino što sam napisao kôd da pri otvaranju forme ode na novi zapis.

Za ostale alate ne znam sigurno ali predpostavljam da i oni mogu da postavljaju pravila unosa na nivou tabele. Trenutno nemam ni jedan drugi osim MS Access-a.

Neke poruke se mogu sprečiti kao što su upozorenja prilikom izmene, brisanja sloga kao i kod akcionih upita. To se radi dečekiranjem polja na putanji: File, Options, Client Settings u sekciji Confirm (sva tri polja ili ona koja želiš). Takođe može da se na početku, pri ulasku u apliikaciju, pri otvaranju prve pokretačke forme napiše DoCmd.SetWarnings False a pri zatvaranju aplikacije pre naredbe Quit napiše se DoCmd.SetWarnings True.
Takođe U formi u kojoj upisuješ podatak, na događaj On Error forme upiši:

MsgBox "Upisali ste pogrešan podatak", vbInformation
Response = 0

To Isključuje Access poruku. Isprobaj. Mada mislim da je bolje da te Access upozori.
Sve ostale poruke moraju da se presreću VBA kôdom, kao što si pomenuo u predposlednjem pasususu. Moguće greške koje nastaju izvršavanjem programskog kôda se takođe presreću VBA kôdom.

Compact on Close čini da se pri svakom zatvaranju fajla, on očisti od smeća i nagomilanih grešaka. Zato je moj zakačeni fajl manji od tvog.

 
Odgovor na temu

[es] :: Access :: Provjera pri unosu podataka

[ Pregleda: 994 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.