Je cours MS Access 2016 se connectant via ODBC à SQLServer 2016. J'ai un formulaire simple basé sur une table liée. Lorsque je l'affiche en mode Formulaire, change certaines données et clique sur l'enregistrement suivant, il met à jour l'enregistrement en cours et passe au suivant, mais lorsque j'utilise une liste déroulante pour sélectionner l'enregistrement à déplacer, il affiche l'enregistrement. J'ai sélectionné et si je change certaines données à ce sujet - il retourne l'erreur 'ODBC -update sur la table liée a échoué; pilote ODBC Microsoft SQL Server délai de requête a expiré (# 0) »Erreur MS Access ODBC Timeout sur l'enregistrement de sauvegarde
J'ai essayé 2 différentes méthodes ci-dessous par le code pour les 2 différentes zones de liste déroulante
Private Sub cboFindRecord_AfterUpdate()
Dim rst As DAO.Recordset
Set rst = Me.RecordsetClone
rst.FindFirst "Id=" & Nz(Me.cboFindRecord, 0)
If Not rst.EOF Then
Me.Bookmark = rst.Bookmark
End If
rst.Close
Set rst = Nothing
End Sub
Private Sub FindRecord2_AfterUpdate()
Me.txtId.Enabled = True
Me.txtId.Locked = False
Me.txtId.SetFocus
If IsNull(Me.FindRecord2) Then
Exit Sub
End If
DoCmd.FindRecord Me.FindRecord2, acEntire, , acSearchAll, , acCurrent
End Sub
(je le code sur d'autres formes cette base de données, et ils fonctionnent, mais pour cette forme, pour cette table il ne le fait pas)
Il ya 500 enregistrements sur la table, il semble que ce soit un problème de blocage plutôt qu'un problème de délai d'attente. Si je lance un Sp_who2 sur SQL Server, cela montre qu'il y a un bloc de processus - mais pourquoi quelqu'un peut-il m'aider?
Avez-vous plusieurs index complexes sur la table en cours de mise à jour? – Minty
J'ai 5 index sur cette table, y compris la clé primaire - juste enlevé tous les index en dehors de la clé primaire et ne fonctionne toujours pas :-( –
Je viens de réaliser que si j'utilise les sélecteurs d'enregistrement pour passer à l'enregistrement suivant/précédent Mais si j'utilise mes zones de liste déroulantes codées pour le sélectionner, il semble créer un autre SPID sur SQL Server et la mise à jour est bloquée par le select –