Bonjour,
Je viens de reprendre une application développée par mon prédecesseur. Sur cette application on crée des fiches clients et fréquemment on revient sur ces fiches pour compléter leur dossier. En moyenne, entre dix et quinze personnes travaillent en même temps sur cette application. Il s'agit d'un formulaire contenant les infos du client contenant un sous-formulaire répertoriant les courriers qu'on lui a déjà envoyé
Cette application plante constamment (entre 5 et 10 fois par jour). Il semble qu'il y 'ai un problème de verrouillage des enregistrements. Le problème le plus fréquent est lorsque quelqu'un crée une nouvelle fiche client
l'erreur suivante est levée : code erreur 2105 Impossible d'atteindre l'enregistrement spécifié.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 On Error goto Err_Nouvelle_Fiche DoCmd.GoToRecord , , acNewRec On Error GoTo 0
Les solutions que j'ai déjà tentées :
- Fractionner la base. J'ai disposé la base dorsale dans un dossier partagé et une copie de la base frontale est a disposition sur chaque poste
- Dans les propriétés du formulaire et de son sous formulaire j'ai positionné le champ verrouillage à Enr modifié et le champ Type RecordSet à Feuille rép.dyn.(MAJ globale)
- J'ai essayé de creer le nouvel enregistrement dans le code vb en DAO j'y arrive (il est bien inséré dans ma table) mais cependant je n'arrive pas, immédiatement après l'avoir crée, à me positionner par le code sur ce nouvel enregistrement dans mon formulaire
Je vous remercie de toutes les pistes que vous pourrez me donner car cela fait plus d'une semaine que je patauge et que je cherche a régler ou contourner ce problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 set oRsb = oDb.OpenRecordset(matable,dbOpenDynaset) oRsb.addNew oRsb.Fields("Id") = "toto" ind = oRsb.Fields("Num").Value oRsb.Update ' mode bidouillage on c'est le seul moyen que j'ai trouvé pour afficher mon enregistrement dans mon formulaire mais ça me semble hyper crad' Dim crit as String crit = "[Num_ligne] = " & ind oRsb.FindNext crit set temp = Me.Recordset set Me.Recordset = oRsb temp.close set temp = nothing 'mode bidouillage off
Merci d'avance
Partager