Ciao Alex
Il problema si verifica durante il funzionamento, oggi è andato tutto bene fino alle 15 poi si è presentato il problema, il BE non è cambiato e il problema non si verifica durante una scrittura ma durante una lettura.
Il codice con cui ho sostituito la dlookup è il seguente:
On Error GoTo errore
Set db = CurrentDb()
STRSQL = "SELECT TabellaRisorseAssegnate.Stato FROM TabellaRisorseAssegnate WHERE IdRecord=" & Me.Controls("IdRisorseAssegnate" & Indice) & ";"
Set RstRisorse = db.OpenRecordset(STRSQL, dbOpenSnapshot)
If RstRisorse.RecordCount > 0 Then
VarStato = Nz(RstRisorse!stato, 0)
End If
RstRisorse.Close
db.Close
dopo questa lettura c'è una scrittura
Set wrk = DBEngine(0)
Set db = CurrentDb()
On Error GoTo trans_Err
wrk.BeginTrans
STRSQL = "UPDATE TabellaPianificazioneReparto SET TabellaPianificazioneReparto.QtaProdotta =" & Me.Controls("RisorsaEff" & Indice) & " WHERE (((TabellaPianificazioneReparto.IdRecord)=" & Me.Controls("IdPianificazione" & Indice) & "));"
db.Execute STRSQL, dbSeeChanges
STRSQL = "UPDATE TabellaRisorseAssegnate SET TabellaRisorseAssegnate.QtaProdotta =" & Me.Controls("RisorsaEff" & Indice) & " WHERE (((TabellaRisorseAssegnate.IdRecord)=" & Me.Controls("IdRisorseAssegnate" & Indice) & "));"
db.Execute STRSQL, dbSeeChanges
STRSQL = "INSERT INTO TabellaPezziProdotti ( IdRisorsaAssegnata, Data, QtaProd, TempoImpiegato ) values ('" & Me.Controls("IdRisorseAssegnate" & Indice) & "',#" & Format(Now(), "mm/dd/yyyy hh:mm:ss") & "#, '1','" & TempoImpiegato & "');"
db.Execute STRSQL, dbSeeChanges
wrk.CommitTrans dbForceOSFlush
db.Close
wrk.Close
Io penso che il problema possa dipendere dalla connessione wifi che ogni tanto salta, tenuto anche conto che l'ambiente è rumoroso (da un punto di vista elettrico) essendo un reparto di produzione con vari inverter di potenza elevata in funzione.
Pensavo di intercettare l'errore e provare a rieseguire la procedura, se l'errore persiste volevo provare a rimuovere e ricollegare le tabelle, Se poi non funziona nemmeno così chiudere e riaprire access.