Ciao a tutti,
in una maschera di access ho questo codice:
codice:Private Sub nota_avanzo_Change() Call ModificaNotaAvanzo End Sub Private Sub ModificaNotaAvanzo() Dim SQL As String Dim RS As DAO.Recordset Dim DB As DAO.Database Set DB = CurrentDb SQL = "SELECT nota_avanzo FROM pratiche WHERE pratica=" & Me.nPratica ' - 1 SQL = "SELECT nota_avanzo FROM pratiche WHERE idpratica=" & Me.idPR ' - 2 Set RS = DB.OpenRecordset(SQL) RS.Edit RS!nota_avanzo = Me.nota_avanzo.Text RS.Update RS.Close Set RS = Nothing DB.Close Set DB = Nothing End Sub
Nota_avanzo su database e' un campo memo, nella maschera si tratta di una textbox che quando viene modificata salva il suo contenuto su DB.
Nella tabella pratiche ho due campi uno che si chiama pratica e uno idpratica.
Il campo idpratica e' numerico intero lungo autoincrementante e indicizzato con duplicati non ammessi e chiave primari, il campo pratica e' numerico precisione doppia indicizzato duplicati non ammessi.
Se uso SQL 1 per modificare il dato impiega 0,02 - 0,05 secondi, se uso SQL 2 ogni carattere che premo ci vogliono dai 4 ai 7 secondi per avere nuovamente il controllo della maschera e poter digitare un altro carattere.
Mi e' successo anche di avere bisogno di una query che si basa sul campo idpratica e risultava molto lenta.
Volevo capire il motivo di una differenza cosi elevata, nella tabella ci sono 176762 record, mi sapete aiutare?