Newsgroup: it.comp.appl.access
Titolo: Procedura per eliminare record

Buon pomeriggio a tutti.
Mi sapreste indicare un procedimento corretto per eliminare da una subform 
uno o pi� record di una tabella?
Grazie
-- 
Giorgia 


In realtà questa controlla solo 3 campi e se questi sono vuoti
cancella la riga!
'Cancella le righe vuote
Private Sub CancellaRigheVuote()
    UltimaRiga = Range("A65356").End(xlUp).Row
    If UltimaRiga < 3 Then
       Exit Sub
    End If
    Range("A3").Select
Conta = 0
For i = 3 To UltimaRiga
    Conta = Conta + 1
    If Conta > UltimaRiga Then
        Exit Sub
    End If
    If Range("D" & i).Value = "" And _
       Range("G" & i).Value = "" And _
       Range("J" & i).Value = "" _
       Then
        Selection.EntireRow.Delete
        i = i - 1
    Else
        ActiveCell.Offset(1, 0).Select
    End If
Next i
End Sub

Giorgia ha scritto:

Mah....come da ogni altra form....
DELETE FROM TuaTabella WHERE......
se solo per un record WHERE Id=Me.TuaSubForm.form.IdRecord
se per + record devi farti una casella di selezione che governi la sub
Poi dopo fai il requery della sub ed hai finito
Io personalmente mi trovo bene ad usare il tasto canc direttamente dalla
subform
-- 
Questo articolo e` stato inviato dal sito web 
http://www.nonsolonews.it

 ha scritto nel messaggio 
news:hmjf3u$sot$1...@news.nonsolonews.it...

Grazie Fair87,
forse perch� ho la subform a maschere continue, non riesco ad usare il tasto 
CANC che sarebbe tanto comodo....
Per il resto � proprio il WHERE che prima non mi veniva accettato.
Ora riprovo e se ho di nuovo lo stesso problema, posto la sintassi che ho 
utilizzato.
Grazie
-- 
Giorgia 

 ha scritto nel messaggio 
news:hmjfft$c0b$1...@speranza.aioe.org...

Private Sub ELIMINA_COSTO_Click()
delete from "[DETTAGLI FATTURE ACQUISTO]" WHERE [PROT FT] = Me.[PROTOCOLLO]
Me.Requery
End Sub
errori che mi si presentano "prevista fine istruzione" e errore di sintassi
grazie
Giorgia 


DoCmd.RunSql "DELETE [Dettagli Fatture Acquisto].* FROM [Dettagli Fatture 
Acquisto] " _
& "WHERE [Prot Ft]=Me.Protocollo;"
Maiuscole o minuscole ï¿½ lo stesso.
Napi


Errore di sintassi......
Private sub ELIMINA_COSTO_Click()
dim Dbs as database
dim StrSql as string
set dbs=currentdb
StrSql = "DELETE FROM [DETTAGLI FATTURE ACQUISTO] WHERE [PROT FT] = " &
Me.PROTOCOLLO.value
dbs.execute StrSql, dbFailOnError
2 cose x�: 
- MAI usare i nomi con spazi nelle tabelle o nei campi!!!! Usa la notazione
DettagliFattureAcquisto o se proprio non puoi DETTAGLI_FATTURE_ACQUISTO (che
poi � quello che fanno le parentesi quadre...)
- Me.protocollo.value � un campo della subform? Se si l'istruzione che ti ho
scritto non funzioner� mai, a meno che il pulsante non sia nella subform....
Se vuoi usare il tasto CANC devi imporre la propriet� ANTEPRIMA TASTI su SI, e
poi scrivere la routine dentro l'evento SU TASTO GIU (O SU)
Select case KeyCode
case vbkeycancel
......routine
case else
end select
Buon lavoro
ciao 
RobertoF


 - Mostra testo citato -
Ciao Giorgia, la sintassi giusta ( tutto su una stessa riga) se il
campo PROT FT è numerico:
CurrentDb.Execute "DELETE * FROM [DETTAGLI FATTURE ACQUISTO] WHERE
[PROT FT]=" & Me![PROTOCOLLO]
mentre se il campo PROT FT è alfanumerico ( anche con apostrofo o
doppie virgolette):
CurrentDb.Execute "DELETE * FROM [DETTAGLI FATTURE ACQUISTO] WHERE
[PROT FT]='" & Replace(Me![PROTOCOLLO], "'", "''") & "'"
Però non capisco l'esigenza del Requery; se devi eliminare i record
( uno alla volta) nella stessa sub, puoi usare:
    DoCmd.SetWarnings False
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
   ' se è l'ultimo record potresti mettere
    If Me.Recordset.RecordCount = 0 Then
    Me.Requery
    DoCmd.Close
        End If
    DoCmd.SetWarnings True
Ciao Vladimiro