Grazie Giorgio della risposta.
Questo lo avevo verificato, d'altro canto, come ho già detto, nella versione accdb l'inconveniente non si verifica, d'altro canto nel pc con access 2013 non si verifica in nessun caso.
Ora ho verificato che eliminando l'esecuzione della routine "AggiornaTabCollegamenti" (vedi seguito) il problema non si verifica più, questa routine era richiamata nell'evento Form_Open che segue. Ho risolto momentaneamente eliminando la riga che richiama
la routine suindicata, ma è ovvio che qualcosa non torna poiché nessun errore viene rilevato e non è inserita da nessuna parte una istruzione di cancel.
Davide
----- Routine------
Private Sub Form_Open(Cancel As Integer)
Dim rs As Recordset
On Error GoTo Esci
'MsgBox "Operazioni di apertura maschera Esportapaghe", vbInformation, "Info"
Forms.Splash.TestoAiuto.Visible = True
Forms.Splash.TestoAiuto.Caption = "Aggiorna collegamenti"
AggiornaTabCollegamenti
Forms.Splash.TestoAiuto.Caption = Forms.Splash.TestoAiuto.Caption & vbCrLf & "Verifica collegamenti"
Set rs = CurrentDb.OpenRecordset("SELECT Collegamenti.NomeDB, Collegamenti.Collegamento FROM Collegamenti GROUP BY Collegamenti.NomeDB, Collegamenti.Collegamento")
If rs.RecordCount > 2 Then
MsgBox "Database non collegato correttamente, rieseguire collegamento tramite la funzione CAMBIA DATABASE, in basso a destra." & vbCrLf & _
"Se il problema persiste, contattare GestioneDati.com", vbCritical, "ATTENZIONE!"
Me.EsportazioneINAZ.Enabled = False
Else
Me.EsportazioneINAZ.Enabled = True
End If
Forms.Splash.TestoAiuto.Caption = Forms.Splash.TestoAiuto.Caption & vbCrLf & "Verifica percorsi"
If Dir(Me.PercorsoEsportazione, vbDirectory) = "" Then Me.PercorsoEsportazione.ForeColor = 255
If Dir(Me.DBCollegato) = "" Then Me.DBCollegato.ForeColor = 255
Forms.Splash.TestoAiuto.Caption = Forms.Splash.TestoAiuto.Caption & vbCrLf & "Nome su barra"
SysCmd acSysCmdSetStatus, "GestioneDati.com - Esportazione dati ARCA Versione " & Parametri("Versione")
Esci:
End Sub
Public Sub AggiornaTabCollegamenti()
Dim rst As Recordset
Dim tdf As TableDef
Dim stDB As String
CurrentDb.Execute "DELETE * FROM Collegamenti"
Set rst = CurrentDb.OpenRecordset("SELECT * FROM Collegamenti")
For Each tdf In CurrentDb.TableDefs
' La tabella è collegata se include una stringa di connessione.
If Len(tdf.Connect) > 0 Then
rst.AddNew
rst!NomeTabella = tdf.Name
rst!Collegamento = tdf.Connect
stDB = tdf.Connect
Do While InStr(1, stDB, "") > 0
stDB = Right(stDB, Len(stDB) - InStr(1, stDB, ""))
Loop
rst!NomeDB = stDB
rst.Update
End If
Next tdf
rst.Close
Set rst = Nothing
End Sub