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

Provera duplog unosa

[es] :: Access :: Provera duplog unosa

[ Pregleda: 2635 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Srxon
ipss
RS

Član broj: 312624
Poruke: 5
62.68.105.*



Profil

icon Provera duplog unosa19.03.2013. u 18:22 - pre 134 meseci
Imam jedan problem, ali u sličnim temama ga nisam mogao rešiti.
Kako da me msgbox upozori po napuštanju trećeg polja da zapis sa istim podacima već postoji.
Imam polje ID i on se ne ponavlja, ali po unosu podatka u treće polje da mi javi da u sva tri polja postoje isti zapisi.
Evo postaviću primer pa će biti jasnije.
Prikačeni fajlovi
 
Odgovor na temu

Dexxxl
Dejan Stojanovic
Blagi uzas
Knjazevac

Član broj: 252836
Poruke: 212
77-46-250-186.dynamic.isp.telekom.rs.



+9 Profil

icon Re: Provera duplog unosa19.03.2013. u 18:54 - pre 134 meseci
Otvori tabelu u dizajn modu
klikni na dugme indexes(nalazi se omah desno do kljuca na meni baru
u prvoj koloni (Index Name) upisi neki naziv (bilo koji)
u drugoj (Field name) izaberi prva
U redu ispod nje dodaj druga
U redu ispod nje dodaj treca
postavi unique na yes
Prikačeni fajlovi
 
Odgovor na temu

Srxon
ipss
RS

Član broj: 312624
Poruke: 5
62.68.105.*



Profil

icon Re: Provera duplog unosa19.03.2013. u 19:07 - pre 134 meseci
Super, to je ono što mi treba.
Negde sam video još da umesto ovog windows-ovog msbox stavim svoje "upozorenje", moram da potražim.
Hvala Dexxxl.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Provera duplog unosa19.03.2013. u 21:24 - pre 134 meseci
Imas ovde http://www.elitesecurity.org/t447412-0#3072885
Otkucaj u Pretraga (Ovog forume) ovo "Form Error Event" bez navodnika i dobices mnogo starih tema gde smo o tome govorili. A ime negde i u temi "Baza Znanja"

:-)
 
Odgovor na temu

srdjan ub
-

Član broj: 25171
Poruke: 147
46.235.97.*



+1 Profil

icon Re: Provera duplog unosa19.03.2013. u 21:28 - pre 134 meseci
npr. na on exit polja postavis sledeci kod:

Private Sub prva_Exit(Cancel As Integer)
Dim prva As String

prva = Me![prva]

If IsNull(DLookup("[prva]", "Table1", "[prva]= '" & prva &"'")) = False Then
Me![prva].Undo ' Ponistava vrednost unetog polja
DoCmd.RunCommand acCmdUndo ' ponistava unos sloga
Cancel = True
MsgBox "Pod nazivom polja " & prva & " imate unete podatke", vbCritical, "Paznja"
'DoCmd.FindRecord Nova_sifra 'nadje i prikaze slog sa sifrom koja je pokusana da se duplo unese
' varijanta kada su dostupni svi slogovi ,a ne samo novi
End If
End Sub


' Napomena: Vazi samo za podatke tipa text
 
Odgovor na temu

Srxon
ipss
RS

Član broj: 312624
Poruke: 5
62.68.105.*



Profil

icon Re: Provera duplog unosa19.03.2013. u 21:49 - pre 134 meseci
Hvala svima na pomoći
 
Odgovor na temu

izonic
ishab zonic
Tuzla

Član broj: 38128
Poruke: 591
*.PPPoE-7554.sa.bih.net.ba.

Sajt: www.icentar.ba


+2 Profil

icon Re: Provera duplog unosa20.03.2013. u 19:30 - pre 134 meseci
Code:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Select Case DataErr

Case 3022
MsgBox "Ovaj red podataka je vec unesen"

Case Else

MsgBox "Greska Br: " & DataErr & vbCr _
   & Err.Description

End Select
Response = 0
End Sub

zxz
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Provera duplog unosa21.03.2013. u 13:37 - pre 134 meseci
Resenje sa Form_Error je bolje nego ono drugo predlozeno, sa Polje_OnExit. Evo zasto:

Tabela koja se stiti od duplog unosa vec ima Primary Key ili UNique index koji ne dozvoljava dupli unos (bez ikakvog programiranja, ovo je na nivou tabele). Resenje sa Polje_OnExit trazi da se pri SVAKOM unosu trazi uneta vrednost u tabeli, "If IsNull(DLookup("[prva]", "Table1", "[prva]= '" & prva &"'")) = False...". Dupli unosi u praksi su retka stvar, ili bar ne tako cesta. Dlookup je SPORA operacija. Na 20 rekorda se sporost ne primeti, ali na 200,000 se primeti i te kako. Znaci, usporili smo unos da bi jednom u 50 puta uhvatili duplikat, koji ionako ne bi prosao, samo da bi dali prevedenu poruku.

Resenje sa Form_Error radi ovako:
Nema pretrazivanja u nekim BeforeUpdate ili OnExit eventima. Rekord se podnosi programu za upis. Ako nema drugih gresaka, Access pokusava da upise rekord u tabelu. Ako tabela prihvati rekord (a prihvatice ga ako nije duplikat), sve je OK, ne pokazuje se poruka i nista se ne desava. Ako tabela ne prihvati unos zbog moguceg duplikata, desava se "Case 3022 MsgBox "Ovaj red podataka je vec unesen...". Znaci, nema nikakvog pretrazivanja, a poruka se pojavljue kad treba. Slican problem se javlja kad se naruse FOREIGN KEY - unosis artikl koji ne postoji u sifraniku. To se resava na slican nacin, dodavanjem nove linije u "Select Case DataErr.." blok. Ne znam tacno koji je broj greske u pitanju, ima u Bazi Znanja negde kod koji lista sve greske, pa potrazis i nadjes i primenis.

I usput, Kontroal_OnExit nije mesto z ana nekoliko mesta i tesko se odrzava.

Ako smo profesionalci, budimo pravi profesionalci i koristimo profesionalne metode :-)
 
Odgovor na temu

[es] :: Access :: Provera duplog unosa

[ Pregleda: 2635 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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