[ bobiris @ 26.02.2005. 16:39 ] @
Pozdrav bratiji
Hteo bih da jednim klikom ispraznim 4 tabele, a da se fizicki ne obrisu sa diska, vec da mogu da primaju nove podatke (za sledeci period-godinu).

U SQL-u ima nesto kao drop table, ali kako to da primenim u Accessu?

Unapred zahvalan
[ Mihailo @ 26.02.2005. 17:43 ] @
Pa, Access 2000 valjda podržava SQL upite, probaj

DELETE * FROM ime_tabele

DROP koristiš kada hoćeš da obrišeš celu tabelu, znači i strukturu i podatke, a ti hoćeš samo da je isprazniš.
[ Goran Rakić @ 26.02.2005. 17:49 ] @
Ako nema, sigurno ima desni klik na naziv tabele pa empty :)
[ Simke @ 26.02.2005. 22:56 ] @
DELETE * FROM tbl... radi posao.
Inace DROP TABLE brise i samu tabelu...
[ johnnie @ 26.02.2005. 23:14 ] @
Ma da verovatno empty, probaj da nema neki ZAP kao za dbf...
[ Gomatami @ 27.02.2005. 09:58 ] @
JA sam takav problem resio jednostavno: napravis po jedan delete query za svaku tabelu koju koristis, jedan makro koji ih aktivira odjednom i dugmence na formi koje poziva makro.

Peske, ali radi.
[ miomirm @ 27.02.2005. 10:29 ] @
Pogledaj :

http://www.praktikum.co.yu/office/access/acc_049.htm

Pozdrav
[ izonic @ 27.02.2005. 13:53 ] @
Ako hoces samo da ispraznis evo:

Function Isprazni(ImeTabele As String)
Dim Db As Database
Dim Rs As Recordset

Set Db = CurrentDb()

Set Rs = Db.OpenRecordset(ImeTabele)
Do While Not Rs.EOF
Rs.Edit
Rs.Delete
Rs.MoveNext
Loop
Set Db = Nothing
Rs.Close
End Function

Ispod neke kontrole stavit ces na on click ovako
call izbrisi("Ime tabele")
call("me druge tabela")
[ bobiris @ 27.02.2005. 20:57 ] @
Tako je Izonic, hvala!

Ja sam i hteo da izbrisem samo neke tabele, a neke ne. Recimo, tabela "Clanovi" mi treba i dalje, ali mi ne trebaju podaci u tabeli "prihodi", tj. ne za proslu godinu.
[ Simke @ 28.02.2005. 05:11 ] @
Kao sto vec rekoh, DELETE * je sasvim dovoljno... izbegavaj koriscenje recordsets u ove svrhe, jer je skroz ne-efikasno.
[ bobiris @ 28.02.2005. 12:48 ] @
OK Simke, evo ovako sam uradio:

Code:

Private Sub Slika_DblClick(Cancel As Integer)
    
DoCmd.SetWarnings False
DoCmd.RunSQL "delete * from tblKrsteni"
DoCmd.RunSQL "delete * from tblUmrli"
DoCmd.RunSQL "delete * from tblVencani"
DoCmd.SetWarnings True

End Sub


Ovo sam stavio na sliku hrama na formi "Main Switchboard" i to radi.
Sada bih hteo upozorenje pre brisanja sa izborom "OK" ili "Cancel", i shodno tome poruku na kraju, znaci "Podaci izbrisani" ili "Brisanje otkazano".

Slicnu stvar sam napravio za brisanje rekorda (pomocu "Beforde Del_Confirm" i "After Del_Confirm"):

Code:

Private Sub Form_BeforeDelConfirm(Cancel As Integer, _
        Response As Integer)
    ' Suppress default Delete Confirm dialog box.
    Response = acDataErrContinue
    ' Display custom dialog box.
    If MsgBox("BRIŠETE DATUM I SVE PRIHODE TOGA DANA?", vbOKCancel) = vbCancel Then
        Cancel = True
    End If
End Sub

Private Sub Form_AfterDelConfirm(Status As Integer)
    Select Case Status
        Case acDeleteOK
            MsgBox "DATUM I PRIHODI IZBRISANI"
        Case acDeleteCancel
            MsgBox "OTKAZALI STE BRISANJE."
        Case acDeleteUserCancel
            MsgBox "OTKAZALI STE BRISANJE"
    End Select
End Sub


i to radi, ali nikako da to primenim i u ovom slucaju. Valjda se ovaj "DblClick" odnosi na SQL naredbu, a ne na brisanje rekorda, pa zato ne moze.



Pitanje: Kako MOZE?