[ milekrajina @ 05.07.2009. 15:25 ] @
Zbog cega mi sa ovim kodom nece da izbrise polje iz dbf baze:

Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext

[ milekrajina @ 07.07.2009. 09:33 ] @
svaki savet dobro dosao
[ dzigilibonglica @ 07.07.2009. 11:46 ] @
Pojasni malo mitanje:

Mislis li na celu kolonu, ili na jedan pojedinacni zapis iz te kolone?

Ovo sto si ti napisao sluzi za brisanje zapisa. Naravno moras prvo da podesis recordset da ti bude odredjenog tipa. I naravno naredba Delete ti je nepotpuna odnosno uradice ti nesto po default vrednosti, a ako ne znas sta je default, onda nisi siguran sta si uradio :( .
Evo ti primer za ovo sto si ti pokusao kako bi trebalo da se radi (ili bar kako ja radim).

Code:
 
Private Sub IzbrisiRec()
Dim Reci As ADODB.Recordset

    Set Reci = New ADODB.Recordset
    Reci.CursorType = adOpenDynamic
    Reci.CursorLocation = adUseClient
    Reci.LockType = adLockOptimistic
    
    Reci.Open "SELECT * FROM Reci WHERE Sifra='" & RSifra & "'", baza, , adCmdTable

        Reci.MoveFirst
        Reci.Delete (adAffectCurrent)

    Reci.Update
    Reci.Close
   
End Sub


Naravno pre svega treba da razumes recordset (sta je i kako funkcionise). Prvo ga definises, a bas od toga ti zavisi da li je nesto sto brises izbrisano samo kod tebe ili je se izvsilo i na bazi. Stoga sam ti i definisao Recordset u ovom primeru, ako je mozda tu greska. Delete naredba se uvek pise sa parametrom (da li sve ili samo onaj na kojem je kursor).

Ako zelis da izbrises polje(kolonu) da uopste ne postoji u tabeli, to onda radis objektom Command.

Naravno ovo ti je za MDB ili DBF, a ako je neka druga baza u pitanju, ovo sve moze biti skroz drugacije. I ako zelis da izbrises celu kolonu iz tabele, to ne zavisi samo od tvog koda vec i od baze (ne mozes brisati primarni key, ako je u drugoj bazi to forign key, odnosno postoji relacija, moras prvo nju da izbrises itd...)
Pisi ako treba jos pomoci.
[ milekrajina @ 07.07.2009. 12:44 ] @
Meni treba da mi on kada kliknem na tu sifru u dbGridu i kliknem na taster -Izbrisi- izbrise mi sve podatke za tu
sifru u bazi CMD_001.dbf?
[ captPicard @ 07.07.2009. 13:34 ] @
Taj kod gore je to šta ti treba.
[ dzigilibonglica @ 07.07.2009. 15:22 ] @
U tom slucaju sve ostaje isto, samo kod naredbe Delete promeniti vrednost u zagradi da bude sledece:

Reci.Delete(adAffectAllChapters)

Inace ako imas u tom zapisu bilo koje polje koje je PrimaryKey, a to se nalazi u nekoj drugoj tabeli kao foreign key, a relacija nema cascade delete, nece ti raditi!

Pozdrav!
[ milekrajina @ 08.07.2009. 09:27 ] @
Ne radi mi ovaj kod.
Ne znam sto,ali nece
[ dzigilibonglica @ 08.07.2009. 11:59 ] @
JBG. Procitaj u mojoj prethodnoj poruci sta sam ti napisao zbog cega moze da se desi da nece da radi..... Primary->Forign Key (relacije)

A ako je sve to zadovoljeno pa ipak ne radi onda probaj ovaj kod. Ovo ti je malo budz u d*pe reshenje, i nije tako elegantno niti se bas praktikuje, al ce da radi:

Code:

Private Sub IzbrisiRec()
Dim Reci As ADODB.Recordset
Dim BrojZapisa, i as integer

    Set Reci = New ADODB.Recordset
    Reci.CursorType = adOpenDynamic
    Reci.CursorLocation = adUseClient
    Reci.LockType = adLockOptimistic
    
    Reci.Open "SELECT * FROM Reci WHERE Sifra='" & RSifra & "'", baza, , adCmdTable
    BrojZapisa=Reci.RecordCount
    
    For i=0 to BrojZapisa-1
        Reci.MoveFirst
        Reci.Delete (adAffectCurrent)
        Reci.Update
    Next i
    Reci.Close
   
End Sub


Pa nek je sa srecom...
Ako ti ni ovo ne radi, onda ne znam u cemu gresish i ja ti vise ne mogu pomoci.
[ captPicard @ 08.07.2009. 12:16 ] @
Ajde barem kopiraj svoj kod ovdje, a ne da igramo kviz. I napiši na kojoj liniji ti baca grešku, opis greške...
[ milekrajina @ 08.07.2009. 13:48 ] @
Code:

Baca gresku na ovoj liniji:
Reci.Open "SELECT * FROM Reci WHERE Sifra='" & RSifra & "'", baza, , adCmdTable
Greska je :
Run-time error 3001
Arguments are of the wrong type,are out of acceptable range, or are in conflict
with one another
Kod je sledeci:
Dim Reci As ADODB.Recordset
Dim BrojZapisa, i as integer

Set Reci = New ADODB.Recordset
Reci.CursorType = adOpenDynamic
Reci.CursorLocation = adUseClient
Reci.LockType = adLockOptimistic

Reci.Open "SELECT * FROM Reci WHERE Sifra='" & RSifra & "'", baza, , adCmdTable
BrojZapisa=Reci.RecordCount

For i=0 to BrojZapisa-1
Reci.MoveFirst
Reci.Delete (adAffectCurrent)
Reci.Update
Next i
Reci.Close
[ captPicard @ 08.07.2009. 13:58 ] @
Zašto imaš dva zareza u parametru?
Sorry, kužim, ovo je ok.
[ captPicard @ 08.07.2009. 14:00 ] @
Šta ti je RSifra, i di ju deklariraš?
[ dzigilibonglica @ 09.07.2009. 12:24 ] @
@ MileKrajina:

Druze, nemoj se ljutiti, ali ti si beznadezan slucaj....

Dao sam ti primer koda kako se nesto radi, a ti samo iskopirao ceo kod! Pa na mom primeru i tvom konkretnom programu ne moraju biti iste promenjive, a da ne pricamo o tome da nisu ni iste baze u pitanju.

RSifra je neki string koji sam definisao na nivou celog programa, mozes tu promenjivu nazvati kako god hoces, a ona se popuni nekom vrednoscu kada se klikne na neki item liste.

Znaci samo si iskopirao ceo kod, nista nisi izmenjao, Pa poBogu covece, na ovom primeru ti recordset gadja tabelu "Reci", jer sam ga iskopirao iz svog jednog projekta gde imam bazu sa tabelom Reci, gde je prvi element primary key tipa string, odnosno sifra, a tvoja baza je nesto sasvim hiljadito,
a to da se potrefe dva lika sa dve strane foruma, koji imaju potpuno identicne strukture baze podataka , to ti je kao kad bi dva lika u isto vreme napisala Devetu Simfoniju....

Da li si uopste definisao objekat "baza", kojim si se koristio.

Znaci,Jedini nacin da ti pomognem je:

Mastering Visual Basic 6
Evangelos Petroutsos

Nadji negde na netu, pa uci iz toga.... (CHAPTER 17—Database Programming with Visual Basic)

Jbg, nemoj se ljutiti ali tako je
[ captPicard @ 09.07.2009. 13:30 ] @
Citat:
dzigilibonglica: @ MileKrajina:

Druze, nemoj se ljutiti, ali ti si beznadezan slucaj....



:-D

Sorry Mile, ali i ja se slažem sa dzigilibonglicom

p.s. ipak nemoj odustajati, budi uporan! Makar nam pojeo sve živce ovdje Ali probaj prije pročitati neku knjigu za početnike, skini si neki tutorial sa net-a i napiši sam koju liniju koda. I nemoj odmah na baze podataka, to je ipak malo teže za početnika. Nauči najprije šta su varijable, procedure, funkcije, kako se varijable deklariraju...Biti će ti naporno u početku, ali kasnije će ti to puno značiti...

[Ovu poruku je menjao captPicard dana 09.07.2009. u 19:49 GMT+1]