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

Brisanje više redova odjednom u subformi

[es] :: Access :: Brisanje više redova odjednom u subformi

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Fanta
Fanta Genije

Član broj: 119794
Poruke: 118
*.adsl.net.t-com.hr.



Profil

icon Brisanje više redova odjednom u subformi23.01.2007. u 11:47 - pre 210 meseci
Evo jednog problemčića!

Mada postoji takva mogučnost u accessu, ja želim napraviti vlastiti događaj.

Problem je u tome što pokušavam da obrišem redove u jednoj subformi(zelim da napravim događaj na dugme), redovi mogu biti odabrani po redu(najčešći slučaj, ali i nasumice). Subforma je datasheet, a redovi se odabiru klikom na njih.Našao sam kod na ovom forumu, ali problem mi je u tome što mi obriše samo jedan red od svih onih koje odaberem i to samo prvi, a ostale ne.

Kod glasi ovako:

Dim strSQL As String
Dim xmojID As Variant
xmojID = Me.subforma.Form!RedniBroj
strSQL = "DELETE * FROM T_tvrtke_proizvodi WHERE ((RedniBroj)=" & xmojID & ");"
CurrentDb.Execute strSQL, dbFailOnError

Me.subforma.Form.Requery
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Brisanje više redova odjednom u subformi23.01.2007. u 13:26 - pre 210 meseci
Ne vidim nikakvu grešku u kodu osim što bi možda trebalo osvežiti tabelu sa "T_tvrtke_proizvodi.Requery". Moja iskustva sa CurrentDb.Execute su da mora da se izvrši pre referenciranja na Recordset po toj tabeli odnosno odmah iza deklarisanja u proceduri, što ovde kako vidim i jeste slučaj. Pozicija kursora u tabeli ne mora da odgovara poziciji kursora u datasheet subforme. Probaj da koristiš "pozicija = T_tvrtke_proizvodi.BookMark" da bi odredio na kom se slogu nalaziš.

 
Odgovor na temu

Fanta
Fanta Genije

Član broj: 119794
Poruke: 118
*.cmu.carnet.hr.



Profil

icon Re: Brisanje više redova odjednom u subformi23.01.2007. u 19:59 - pre 210 meseci
Nažalost tek učim o recodsetima, iskreno dosad se nisam baš njima morao služiti jer je moje učenje uz zadnjih godinu dana bilo više vezano uz PHP i MySQL. Iako su nas na faksu učili baze i uz njih access, tip nam nikad nije objašnjavo ono nabitnije kao što je naprimjer programiranje u VBA ili ADO, on se je služio i pokazivao sve uz pomoć Access wizarda, buttone i događaje.

Više sam stari naučio na ovom forumu odkada sam njegov član vezano uz baze nego na faksu, pogotovo o Accessu u kojemu moram raditi posljednjih deset dana.

@Getsbi stoga bih te zamolio pomoć ako može do kraja, pokušao sam, ali i dalje mi baš ne radi. Kao što rekoh on mi obriše prvi red u subformi od svih koje odaberem, ali ostale ne

Frend mi je sugerirao da koristim možda array, tj. da xmojID pretvorim u to, pa da možda pamti svaki red u subformi kao jedno polje, ali nigdje no mogu, pa ni u ove 2 knjige koje imam o accessu pronaći upustvo kako se koristi.
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Brisanje više redova odjednom u subformi23.01.2007. u 20:19 - pre 210 meseci
Ajde zakači problem pa da pokušam da nađem rešenje.
 
Odgovor na temu

BiloKoje
Beograd

Član broj: 40147
Poruke: 401



+4 Profil

icon Re: Brisanje više redova odjednom u subformi24.01.2007. u 07:47 - pre 210 meseci


Sumnjam da možeš to da uradiš na elegantan način. Na formi nema načina za višestruko selektovanje zapisa ako nisu uzastopni. Čak i kad na formi selektuješ više zapisa VBA kodu se prosleđuje samo onaj u kojem se nalazi kursor.
Za brisanje iz koda više zapisa mora da postoji neki drugi uslov, recimo da postoji ček boks na formi pa da se brišu svi čekirani zapisi.
 
Odgovor na temu

Fanta
Fanta Genije

Član broj: 119794
Poruke: 118
*.adsl.net.t-com.hr.



Profil

icon Re: Brisanje više redova odjednom u subformi30.01.2007. u 14:59 - pre 209 meseci
@BiloKoje u potpunosti si u pravu, tražio sam svuda i svugdje, cak sam i nasao primjer gdje objašnjavaju da je takvo što nemoguće budući da čim se klikne na button svi odabrani redovi u datasheet-u gube sva odabrana svojstva, moguće ih je samo koristi uz pomoć funkcije OnTimer, pa sam na kraju odustao od tog načina i pokušao sam sa tvojim savjetom.

Međutim sada imam malo drugačiji problem, kad checkiram odabrane redove, npr. njih 6, zadnji checkbox mi uopće ne uzme u obzir i obriše mi samo njih pet. Čak sam pokušao i sa msgBox-om da vidim u čemu je greška i on mi isto kaže da sam odabrao samo 5 redova. Kod za brisanje mi glasi ovako:

DELETE T_tvrtke_proizvodi.RedniBroj, T_tvrtke_proizvodi.Idtvrtka, T_tvrtke_proizvodi.idproizvoda, T_tvrtke_proizvodi.imeproizvoda, T_tvrtke_proizvodi.proizvodac, T_tvrtke_proizvodi.cijena, T_tvrtke_proizvodi.Brisati
FROM T_tvrtke_proizvodi
WHERE (((T_tvrtke_proizvodi.Brisati)=True));

Može li mi tko reči u čemu je problem???
 
Odgovor na temu

BiloKoje
Beograd

Član broj: 40147
Poruke: 401



+4 Profil

icon Re: Brisanje više redova odjednom u subformi31.01.2007. u 05:44 - pre 209 meseci


Jedino što mi pada na pamet je da kad čekiraš zadnji zapis ne pređeš u sledeći već izvršavaš upit tako da zadnja promena nije upamćena. Pokušaj da pre izvršenja upita pređeš u prazan red ili na početku goda staviš Refresh.
 
Odgovor na temu

Fanta
Fanta Genije

Član broj: 119794
Poruke: 118
*.adsl.net.t-com.hr.



Profil

icon Re: Brisanje više redova odjednom u subformi31.01.2007. u 08:20 - pre 209 meseci
Problem riješen, samo sam stavio na OnClick Mr.Requary

Hvala BiloKoje
 
Odgovor na temu

[es] :: Access :: Brisanje više redova odjednom u subformi

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

Postavi temu Odgovori

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