[ xl_kid @ 05.03.2010. 07:19 ] @
| Postovani,
potrebna mi je pomoc oko koda. naime, hteo bih da prilikom izvrsenja koda u slucaju da je odredjeni podatak tj red izbrisan da pozove gresku (primer: kutija pod brojem xxx je izbrisana ili ne postoji u bazi). dole je kod kojim pozivam nekoliko query-ja
****************************************************
Private Sub Command3_Click()
If vbYes = MsgBox("Da li zelite da izbrisete kutije?", vbYesNo + vbDefaultButton1) Then
'vbDefaultButton1 = Y je pritisnuto po defaultu
stDocName = "aqry_ObrisaniArtikli"
DoCmd.OpenQuery stDocName, acNormal, acEdit
'kopira zapise iz glavne tabele atrikli i snima ih u tabeli obrisani artikli
stDocName = "aqry_ObrisaneKutije"
DoCmd.OpenQuery stDocName, acNormal, acEdit
'kopira zapise iz glavne tabele kutije i snima ih u tabeli obrisane kutije
stDocName = "dqry_BrisiArtikle"
DoCmd.OpenQuery stDocName, acNormal, acEdit
'brise zapise iz glavne tabele artikli
stDocName = "dqry_BrisiKutije"
DoCmd.OpenQuery stDocName, acNormal, acEdit
'brise zapise iz glavne tabele kutije
stDocName = "dqry_PrazniTabelu"
DoCmd.OpenQuery stDocName, acNormal, acEdit
'brise zapise iz tabele za brisanje kako bi bila prazna za sledeci unos
Me.Recalc
End If
End Sub
****************************************************
unapred hvala na pomoci |
[ SLOJ.1973 @ 05.03.2010. 07:48 ] @
Hajde pojasni malo:da li ti kod "puca" kada naiđe na obrisani podatak ili prilikom brisanja da prijavi šta je obrisano?
[ golic @ 05.03.2010. 08:29 ] @
Pa zar nije lakse sve podatke cuvati u jednoj tabeli i dodati samo polje Yes/No i samo oznacavati kao obrisano i mozes dodati jos polje da se zna ko je obrisao podatke...
[ xl_kid @ 05.03.2010. 08:41 ] @
"SLOJ.1973" Kod ne puca, sve radi ok ali mi je potrebno da mi izbaci gresku ako se greskom unese broj reda tj u ovom slucaju broj kutije koji je vec izbrisan. Ako unesem vec izbrisani red i hocu da da brisem opet access mi izbaci njegovo upozorenje tj gresku ali obrise sve osatle.
"golic" Ako ih sacuvam u istoj tabeli on mi sumira i te podatke jer iz sumiram po polju "RadniNalog" tako da mi je ovo resenje koje sam uradio sa query-jima radi posao sve ono obrisano mi prebacuje u druge tabele da bih kasnije imao podatak o tome ko je brisao i kada. Jedini mi je problem oko eventualne greske u upisu vec obrisanog reda.
[ Zidar @ 05.03.2010. 13:39 ] @
Ako ti kod radi 'kad je sve normalno', nemoj da diras kod. prepravi kverije za brisanje, tako da brisu samo one osto nije u tabeli obrisanih artikala/kutija. Na primer, aqry_ObrisaniArtikli bi trebao da izgleda logicki ovako
DELETE FROM Artikli
WHERE <neki tvoj uslov za brisanje>
AND ArtiklID NOT IN (SELECT ArtiklID FROM ObrisaniArtikli) -- ovo je dodatni uslov
ili
INSERT INTO ObrisaniArtikli
FROM Artikli
WHERE <neki tvoj uslov za brisanje>
AND ArtiklID NOT IN (SELECT ArtiklID FROM ObrisaniArtikli) -- ovo je dodatni uslov
NA ovaj nacin ces eliminisati iz liste za brisanje ono sto je vec obrisano i kveri ce proci.
Deluje mi da imas neki skriveni problem. Iz tabele Artikli nemoguce je obrisati artikle koji u njoj vise ne postoje. Kako se onda ti artikli mogu naci u kveriju koji dodaje redove u tabelu ObrisaniArtikli? Mozda cela ideja o pracenju sta je obrisano nije bas najzdravija, mozda treba malo promeniti proces?
[ xl_kid @ 06.03.2010. 08:29 ] @
kod radi super, sve je ok. treba mi samo upozorenje korisniku ako je greskom uneo broj kutije u tabeli za brisanje kako bi znao da je ta kutija vec obrisana. ako eliminisem problem kao sto si mi predlozio, korisnik nece znati da je pogresio. ince sve ostale kutije koje su unesene u tabeli za brisanje budu izbrisane. u prilogu je primer sa nesto malo podataka kako bi videli kako radi. zanemarite logovanog korisnika. kutije, videcete, pocinju od broja 23 do 199. kutije pod rednim brojem 55 i 56 sam izbrisao pa mozete videti sta se desava ako hocete njih da obrisete.
btw... podaci o kutijama i artiklima u njima se dobijaju na osnovu aplikacije za ciju izradu tj VELIKU pomoc je zasluzan "Zidar"... hvala jos jednom
[ SLOJ.1973 @ 06.03.2010. 16:02 ] @
Mislim da ti je najbolje da prilikom unošenja podataka za brisanje proveravaš da li kutija sa ID-em tim i tim postoji ili ne.Tako ćeš onome ko unosi uvek skrenuti pažnju da je podatak već obrisan ili ne postoji.Imaš dole u prilogu primer.Pozdrav.
[ xl_kid @ 06.03.2010. 16:50 ] @
bravo SLOJ, moze i tako. juce sam radio nesto slicno na after update polja u drugoj formi ali mi nije palo na pamet da to primenim i ovde. hvala
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.