Newsgroup: it.comp.lang.visual-basic
Titolo: Eliminare dati access

Ciao a tutti,
Dovrei eliminare dei record in una tabella access tramite VB6 e non
avendolo mai fatto chiedo aiuto!
L' applicazione VB6 ha una Form (MiaForm) con un campo testo (Numero)
ed un pulsante (Elimina)
Nel campo Numero inserisco il n° di ID del record che voglio
eliminare.
La query è all' incirca così
DELETE T_Controlli.IDControllo From T_Controlli WHERE IDControllo
= ??? dovrebbe essere Numero.Text
La cosa principale è però questa, Come mi connetto alla tabella per
eliminare?
Nome database = Produzione.mdb (è un BE con solo le tabelle)
Percorso : J:\Database access\Produzione.mdb
Grazie per ogni info che mi arriverà
Marco

 Marco
Ciao,
http://www.connectionstrings.com/access
oppure
http://www.connectionstrings.com/access-2007
e poi
http://www.mrwebmaster.it/visual-basic/guide/interazione-database_173.html
ciao
stefano

 stefano
Stavo già guardando l' ultimo link ma non mi dice come eliminare il
dato, solo aggiungerlo...
scusa ma con VB6 lavoro molto poco e non sono un programmatore!
Marco

 Marco
normalmente non scrivo codice nei post, faccio un'eccezione:
     dim stringa as string
     dim nRecAff as long
     stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
     stringa = stringa & "C:\test\database.mdb"
     dim cn as adodb.connection
     Set cn = New ADODB.Connection
     cn.Open stringa
     if cn.state = adstateopen then
        cn.execute "DELETE FROM Tabella WHERE Id = " & Numero.Text, nRecAff
        if nRecAff = 0 then
        	   msgbox "Nessun record cancellato"
        end if	
     end if
     Set cn = Nothing
ciao
stefano

 > Stavo gi guardando l' ultimo link ma non mi dice come eliminare il

Ci ero appena arrivato ma uso il tuo codice che sicuramente è migliore
e poi ti devo qualcosa per la tua gentilezza no?
io avevo fatto così :
stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    stringa = stringa & "J:\Folitec\DB Da SQL Server\Microperdite\Base
dati\Microperdite_base_dati.mdb"
    cnn.Open (stringa)
    cmd.ActiveConnection = cnn
    cmd.CommandText = "DELETE T_MicroperditeEP.IDMicrop FROM
T_MicroperditeEP WHERE T_MicroperditeEP.IDMicrop=" & Numero.Text
    cmd.CommandType = adCmdUnknown
    Set rs = cmd.Execute
grazie 1000
Marco

      Set rs = cmd.Execute
va bene anche il tuo codice, eccezion fatta per
 >      Set rs = cmd.Execute
l'istruzione delete non restituisce alcun set di dati (tranne il numero 
di record interessati) quindi č assolutamente inutile assegnare il 
risultato ad un recordset (sempre che rs lo sia).
ciao
stefano

 stefano
Capito, comunque come ti ho detto ho utilizzato il tuo codice e mi
trovo benissimo.
Buona giornata
Marco


Devo chiedere ancora aiuto su questa applicazione...
L' ho creata perchè sui database di access che puntano ad una base
dati attraverso la rete a volte capita di avere un record corrotto da
eliminare.
L' app funziona ma a volte dice che non è possibile eliminare il
record in quanto è bloccato, forse perchè gli utenti lo stanno
impegnando.
C' è un modo per scavalcare il blocco ed eliminarlo comunque con VB6?
grazie
Marco

 C' � un modo per scavalcare il blocco ed eliminarlo comunque con VB6?
Spero proprio di no.
Se comunque ti crei un log di quelli non eliminati, ci puoi ripassare in 
un secondo momento.
ciao
stefano


Cioè? come lo creo?
se no pensavo ad un timer che parte sull' errore eliminazione e
riprova ogni 5 secondi fino a che ce la fa...