Newsgroup: it.comp.appl.access
Titolo: Recordset...che passione.....

Ciao a tutti,
ci sto litigando da 2 ore....
ho una tbl e ho la necessità di aprire un rst su di essa , individuare il
record che ha un campo di un valore ben preciso e poi eliminarlo.
Fin qui è semplice, ma invece...non mi riesce
     Dim dbs As Database
     Dim rstLog As Recordset
     Dim strFiltrato As Recordset
     Set dbs = CurrentDb
     Set rstLog = dbs.OpenRecordset("TblLogInvio")
      rstLog.Filter = "datainvio = '01/01/1999' "
     Set rstFiltrato = rstLog.OpenRecordset()  '    qui Access mi dice che
la proprietà od il metodo non e' valido
perchè?
         rstFiltrato .Delete
         rstFiltrato .Update
          grazie a chi mi illuminerà
                 Luisa

                  Luisa
Perchè ti vuoi complicare la vita...???
Una volta trovato, e io userei il metodo FindFirst (DAO) puoi eliminarlo...
Ti posto casualmente quello che trovi sull'Help (F1)
Sub EliminaRecord(rstTemp As Recordset, lngRicerca As Long)
	With rstTemp
		.Seek "=", lngRicerca '''"datainvio = #01/01/1999#"
		If .NoMatch Then
			MsgBox "Nessun impiegato #" & lngRicerca & " in file!"
		Else
			.Delete
			MsgBox "Record per impiegato #" & lngRicerca & _
				" eliminato!"
		End If
	End With
End Sub
Ti assicuro che funziona....!
@Alex
-- 
Posted from  [62.98.108.52] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:9pajo4$ljr$1...@fe2.cs.interbusiness.it...

Prova con:
Dim rstLog As Recordset
Dim Criteri As String
Set rstLog = CurrentDB.OpenRecordset("TblLogInvio", dbOpenDynaset)
Criteri = "datainvio =  #01/01/1999#"
rstLog.FindFirst Criteri
If rstLog.NoMatch Then
    MsgBox "Record non trovato"
Else
    rstLog.Delete
End If
Set rstLog = Nothing
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Roberto
**********************************
Grazie per l'illuminazione...
Luisa

 ha scritto nel messaggio
news:9pbfgk$5ss$1...@fe2.cs.interbusiness.it...

Se conosci un pň le stringhe SQL puoi ottenere lo stesso effetto con questo
codice VBA:
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE TblLogInvio.*," & _
"TblLogInvio.datainvio FROM TblLogInvio " & _
"WHERE (((TblLogInvio.datainvio)=#1/1/1999#))"
DoCmd.SetWarnings True
Eviti cosě complicanze dovute alla eventuale mancanza, nel tuo database, di
riferimenti alle librerie DAO, cosa normale, ad esempio, se usi A2000. ;-)


 wrote in message
9pbv65$pdg$1...@stargate1.inet.it...

A quale librerie ti riferisci? Forse mi potrebbe servire per altri problemi
...
Grazie
Luciana


Per l'interpretazione dei comandi, funzioni ecc. che usi nel tuo database
Access nei riferimenti inserisce per default le librerie DAO;
se usi invece A2000 le librerie di default inserite nei riferimenti sono le
ADO: se in A2000 usi comandi interpretati solo dalle librerie DAO, devi
selezionare tu, a manina santa, le librerie DAO nei riferimenti del
database.


 riferimenti alle librerie DAO, cosa normale, ad esempio, se usi A2000. ;-)
Sono daccordo, anche perche' dall'impostazione della domanda mi e' sembrato
che ne dovesse cancellare piu' di uno di record.
Comunque se usi CurrentDB.Execute non c'e' neanche bisogno di impostare i
Warnings e puoi pure usare le transazioni.
Ciao
Sib
--
----------------------------------------------------
la mia home:
http://digilander.iol.it/syb
----------------------------------------------------
il sito comune di it.comp.database.access:
http://www.sitocomune.com
----------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente


OK!
Ciao
Roberto