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

poruka za brisanje recorda

[es] :: Access :: poruka za brisanje recorda

[ Pregleda: 4523 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

DON_steXo

Član broj: 246483
Poruke: 33
*.crnagora.net.



Profil

icon poruka za brisanje recorda05.07.2010. u 21:01 - pre 167 meseci
Kako da izmijenim tekst poruke prilikom brisanja recorda? (You are about to delete 1 record(s) ). Uspio sam da u okviru forme na event On Delete postavim msgbox sa opcijama yes i no ali ne ne znam koji kod ide unutar bloka za potvdu brisanja i odustajanje niti kako da sprijecim da se poslije pojavljivanja custom upozorenja pojavi sistemsko upozorenje. Svaki savjet za lakse resenje je dobrodosao.
 
Odgovor na temu

smal
Slobodan Maljković
Kragujevac, Srbija

Član broj: 228672
Poruke: 286
*.dynamic.sbb.rs.



+13 Profil

icon Re: poruka za brisanje recorda05.07.2010. u 21:14 - pre 167 meseci
Prvo moraš da na On Load event forme/subforme postaviš sledeće:
Code:
Private Sub Form_Load()
Application.SetOption "Confirm Record Changes", 0
End Sub

pa tek onda na On Delete željni kod. Ja često koristim pitanje u Msgboxu, tj. od korisnika se očekuje da potvrdi da li je zaista siguran da hoće da obriše konkretan record (po šifri, nazivu ilii slično):
Code:
Private Sub Form_Delete(Cancel As Integer)
Dim SID As String
Dim rsc As DAO.Recordset
Set rsc = Me.RecordsetClone

SID = Me.SIFRA.Value

Dim LResponse As Integer
LResponse = MsgBox("Briši stavku: " & SID, vbYesNo + vbQuestion, "Brisanje?")
If LResponse = vbNo Then
DoCmd.CancelEvent
Me.Undo
End If
Set rsc = Nothing
End Sub
 
Odgovor na temu

DON_steXo

Član broj: 246483
Poruke: 33
*.crnagora.net.



Profil

icon Re: poruka za brisanje recorda05.07.2010. u 21:20 - pre 167 meseci
Hvala puno! Radi odlicno!

Ako budem imao slicnih pitanja pisem ponovo.
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Re: poruka za brisanje recorda05.07.2010. u 21:51 - pre 167 meseci
Access help kaze da se koriste eventi BeforeDelConfirm i AfterDelConfirm. Prilozeni kod se moze cut/paste u bilo koju aplikaciju, i promenite text poruka ako zelite. Jos uvek ce ispod texta biti Yes/No/Cancel. To se moze eliminisati ali zahteva dosta znanja i truda, pa bih radiej ostavio ovako, poruka na srpskom, dugmici yes/No/cancel na engleskom.

Code:


Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)
    ' Ovo iskljucuje standardbnu poruku:
    Response = acDataErrContinue
    ' Ovde pravim moju poruku
    If vbYes <> MsgBox("Zelite li da obrisete izabrane rekorde?" _
                        , vbYesNoCancel + vbDefaultButton3) Then
        Cancel = True
        
        'Ovo sam ja dodao, slobodno obrisite ako van se ne dopada ;-)
        MsgBox "Odustali ste od brisanja! Pametno."
        
    Else
    'Ovde je moja poruka o potvrdi brisanja, uklonite je ako vam se ne dopada:
        Cancel = False
        MsgBox "Rekordi ce biti obrisani!"
        
    End If
End Sub


Private Sub Form_AfterDelConfirm(Status As Integer)
'Ovde Access javlja sta se u stvari desilo
'(ceo kod u ovoj proceduri moze da se obrise ako vam smeta)
    Select Case Status
        Case acDeleteOK
            MsgBox "Izabrani rekordi su obrisani."
        Case acDeleteCancel
            'Ovo se desava ako kroz program posaljete Status ovoj proceduri
            MsgBox "Korisnik je obustavio brisanje."
'Ovo pise u HELPu da se desava, ali se ne desava
'            MsgBox "Programmer je obustavio brisanje."
        Case acDeleteUserCancel
        'Ovo se desava ako korsnik obustavi brisanje u Form_BeforeDelConfirm
        'Ovako je po Help-u ali se mni ova poruka nikad ne pojavi:
            MsgBox "Korisnik je obustavio brisanje."
    End Select
End Sub



U prethodnom postu je pokazano kako se koristi Delete event. Delete event javlja se za svaki rekord, pa ako odabrete grupu rekorda za brisanje, Delete event ce se javiti svaki put i pitace vas za svaki rekord pojedinacno da li zelite da ga stvarno obrisete. Zatim, setovanje
Code:
Application.SetOption "Confirm Record Changes", 0
je na nivou aplikacije i moze da utice na druge stvari. Ne kazem da ne treba ovako raditi, ali treba biti svestan sta se u stvari desava.


Evenyti BeforedelConfirm i AfterDelConfirm javljaju se jednom tokom operacije brisanja, za sve rekorde odjednom. Prvo je desi OnDelete, pa onda oNDeleteConfirm. Rekordi su vec obrisani na OnDelete. Kad kaazete No ili Cancel na DelConfirm, tada se u stvari odardi Undo. AfterDelConfirm moze da vam vrati poruku kao sto sam stavio u primeru, a ako ne upisete nikakav kod onda taj event tiho prodje bez poruka.

 
Odgovor na temu

smal
Slobodan Maljković
Kragujevac, Srbija

Član broj: 228672
Poruke: 286
*.dynamic.sbb.rs.



+13 Profil

icon Re: poruka za brisanje recorda05.07.2010. u 22:14 - pre 167 meseci
Citat:
Delete event javlja se za svaki rekord, pa ako odabrete grupu rekorda za brisanje, Delete event ce se javiti svaki put i pitace vas za svaki rekord pojedinacno da li zelite da ga stvarno obrisete


E da, to stoji. Doduše, taj kod sam koristio za prilike kada ima veoma malo brisanja, na pr. na kasi gde se unos artikala vrši barkod čitačem, ali je zato bitno da se naglasi koji se artikl briše kada zatreba. U stvari, najbolje bi bila varijanta da, ako je broj stavki za brisanje manji od 4, da pita za naziv svakog recorda ponaosob, a ako se selektuje veći broj stavki, da se brisanje potvrdi samo jednom.

Može li to nekako da se izvede?

[Ovu poruku je menjao smal dana 05.07.2010. u 23:27 GMT+1]
 
Odgovor na temu

banem
Kikinda

Član broj: 16619
Poruke: 583
*.dynamic.sbb.rs.



+15 Profil

icon Re: poruka za brisanje recorda05.07.2010. u 22:34 - pre 167 meseci
Ja to stavim malo jednostavnije, umesto:

Response = acDataErrContinue

ide:

Response = 0

------

Smal, da bi utvrdio koliko zapisa je obeležno, iskoristi npr. ovo:

Function BrObelezenihZapisa() As Long
Dim F As Form
Dim RS As Recordset

Set F = Forms![frmNazivForme]
Set RS = F.RecordsetClone

RS.MoveFirst
RS.Move F.SelTop - 1
BrObelezenihZapisa = F.SelHeight
End Function

Mislim da će raditi ovako. Onda u programu što već imaš samo napravi:

If BrObelezenihZapisa > 3 Then

...itd
Pozdrav,
Branislav
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: poruka za brisanje recorda06.07.2010. u 07:24 - pre 167 meseci
Zašto ne napravite svoju formu za Upite tipa Da/Ne/Odustani?
F
 
Odgovor na temu

smal
Slobodan Maljković
Kragujevac, Srbija

Član broj: 228672
Poruke: 286
*.static.sbb.rs.



+13 Profil

icon Re: poruka za brisanje recorda06.07.2010. u 08:34 - pre 167 meseci
Citat:
banem: Smal, da bi utvrdio koliko zapisa je obeležno, iskoristi npr. ovo:

Kada je funkcija na On Delete, kontrolno pitanje izgleda mora da se pojavljuje za svaki obrisani record, mada lepo izbroji broj recorda, ali zato dosta uspori skrolovanje liste...

U svakom slučaju, hvala za funkciju, ostaviću program kakav je bio, a nju ću iskoristi za neku drugu primenu, već imam ideju :)
 
Odgovor na temu

smal
Slobodan Maljković
Kragujevac, Srbija

Član broj: 228672
Poruke: 286
*.static.sbb.rs.



+13 Profil

icon Re: poruka za brisanje recorda06.07.2010. u 11:15 - pre 167 meseci
Citat:
Zidar: Zatim, setovanje
Code:
Application.SetOption "Confirm Record Changes", 0
je na nivou aplikacije i moze da utice na druge stvari. Ne kazem da ne treba ovako raditi, ali treba biti svestan sta se u stvari desava.

Umesto pomenutog koda, može i da se na BeforeDelConfirm stavi
Code:
DoCmd.SetWarnings False

pa na AfterDelConfirm:
Code:
DoCmd.SetWarnings True

U pravu je Zidar. Tako je ipak sigurnije.
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: poruka za brisanje recorda06.07.2010. u 11:27 - pre 167 meseci
Citat:
smal: Umesto pomenutog koda, može i da se na BeforeDelConfirm stavi
Code:
DoCmd.SetWarnings False

pa na AfterDelConfirm:
Code:
DoCmd.SetWarnings True

U pravu je Zidar. Tako je ipak sigurnije.


Hm, a šta ako se dogodi neka greška tijekom operacije?
F
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Re: poruka za brisanje recorda06.07.2010. u 14:50 - pre 167 meseci
Citat:
Hm, a šta ako se dogodi neka greška tijekom operacije?

Pa stavicemo ERROR handling, bilo koja varijanta da je u pitanju.

Nisam znao da SET Wanings ponistava i poruke o brisanju, mislio sam da je to samo za action queries. Nemam vremena da proverim, ali nemam ni razloga da sumnjam.

U svakom slucaju, lepa diskusija. Sve ideje koje su iznete su dobre. Svaka ideja ima svoju primenu u odredjenoj situaciji. Stos je znati za veci broj opcija i znati kada koju treba primeniti. A ideje se uvek mogu nadgraditi. Ono sto Small radi je veoma interesantno, vredi experimentisati. Intersantno je i pitanje kako prijaviti broj rekorda koji su oznaceni za brisanje. I naravno, sta ako stavri podju naopako, pa nam treba neka komanda tipa Undo. A i zamena za originalni Access msgbox je razuman zahtev.

Ima dakle sta da se radi u ovoj oblasti.

 
Odgovor na temu

normandija
Srbija

Član broj: 70439
Poruke: 364
*.teol.net.



+62 Profil

icon Re: poruka za brisanje recorda13.08.2010. u 10:51 - pre 165 meseci
A na koji nacin se moze u obavjestajnom dijalogu promeniti da pise DA/NE umesto Yes/No ?
Bolje izgubiti trenutak u zivotu,nego zivot u trenutku !!!
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: poruka za brisanje recorda13.08.2010. u 15:13 - pre 165 meseci
Evo ti jedan .dll fajl koji treba da registruješ i uključiš u VBA reference kao i sve druge biblioteke. Kasnije u VBA kodu, umesto MsgBox........ kooristiš zxzBox........ Ovo sam dobio posredstvom Izonika alijas ZXZ sa foruma koji nažalost više ne radi.

Isprobaj i ovaj drugi fajl.

[Ovu poruku je menjao Getsbi dana 13.08.2010. u 16:26 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

izonic
ishab zonic
Tuzla

Član broj: 38128
Poruke: 591
92.36.173.*

Sajt: www.icentar.ba


+2 Profil

icon Re: poruka za brisanje recorda13.08.2010. u 23:43 - pre 165 meseci
Funkciju staviti u neki modul.
Modul mora biti zatvoren pri pokretanju brisanja.

Code:
Option Compare Database
Option Explicit
Const Titl = "Ime vase aplikacije"
Dim K As Single
Dim iResponse As String

Function Brisi_Rekorde() As Boolean
'*******************************************
'Ime:      Brisi_Rekorde  (Function)
'Sadržaj:  Upozorenje pri brisanju rekorda
'Autor:     ZXZ
'Datum:      13.08.2010
'Adresa: Tuzla BiH
'Email:     [email protected]
'Ulazni parametri:
'Izlazni parametri:True/false
'*******************************************
Dim Frm As Form
Dim Broj_Redova As Single

DoCmd.SetWarnings False
Set Frm = Screen.ActiveForm
Broj_Redova = Frm.SelHeight

    If K = 0 Then
    K = Broj_Redova - 1
    iResponse = MsgBox("Brišeš: " & Broj_Redova & " red/(ov)a  ", _
    vbYesNo + vbCritical + vbApplicationModal + vbDefaultButton1, Titl)
    Else
    K = K - 1
    End If
    
Select Case iResponse
    Case vbYes:
      Brisi_Rekorde = False
    Case vbNo:
      Brisi_Rekorde = True
End Select
Izlaz:
Exit Function
Kraj:
End Function


Poziv funkcije sa forme:
Code:
Private Sub Form_Delete(Cancel As Integer)
Cancel = Brisi_Rekorde
End Sub


zxz
 
Odgovor na temu

normandija
Srbija

Član broj: 70439
Poruke: 364
*.teol.net.



+62 Profil

icon Re: poruka za brisanje recorda16.08.2010. u 09:53 - pre 165 meseci
Citat:

Evo ti jedan .dll fajl koji treba da registruješ i uključiš u VBA reference kao i sve druge biblioteke. Kasnije u VBA kodu, umesto MsgBox........ kooristiš zxzBox........ Ovo sam dobio posredstvom Izonika alijas ZXZ sa foruma koji nažalost više ne radi.

Isprobaj i ovaj drugi fajl.



a de da ukljucim taj .dll ? mislim na koji nacin kako podesiti to ?
Bolje izgubiti trenutak u zivotu,nego zivot u trenutku !!!
 
Odgovor na temu

pmiroslav
Miroslav
Osijek

Član broj: 57354
Poruke: 298
*.dsl.optinet.hr.



+2 Profil

icon Re: poruka za brisanje recorda16.08.2010. u 11:36 - pre 165 meseci
Otvoriš neku formu u Design modu pa pritisneš ikonicu Code da ti se otvori Microsoft Visual basic prozor.
U tom prozoru odeš na Tools - References
zatim Browse pa učitaš taj zxz.dll.
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: poruka za brisanje recorda16.08.2010. u 15:31 - pre 165 meseci
Ako ćeš biblioteku da koristiš samo za tekući .mdb onda možeš da je staviš u isti folder sa .mdb fajlom i postupiš kako ti je Miroslav rekao. Ako želiš da je koristiš u svim budućim programima i da na nju zaboraviš što se premeštanja i kopiranja tiče, onda je registruj.
Registrovanje:
1. ispod C:\Windows\system32 iskopirati zxz.dll
2. ( Start, Run regsvr32 /s zxz.dll )

 
Odgovor na temu

normandija
Srbija

Član broj: 70439
Poruke: 364
*.teol.net.



+62 Profil

icon Re: poruka za brisanje recorda17.08.2010. u 12:15 - pre 165 meseci
Uredu,hvala mnogo na odgovorima ....
Bolje izgubiti trenutak u zivotu,nego zivot u trenutku !!!
 
Odgovor na temu

[es] :: Access :: poruka za brisanje recorda

[ Pregleda: 4523 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

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