marcod59
Messages postés170Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention13 juin 2010
-
28 juil. 2006 à 09:46
marcod59
Messages postés170Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention13 juin 2010
-
28 juil. 2006 à 19:12
Bonjour,
J'ai un programme avec une base en DAO. Il fonctionne très bien sauf dans un cas. Lorsque je supprime le dernier enregistrement, je ne parviens plus à en ajouter un autre. Lorsque je contrôle le fonctionnement du programme je constate que les valeurs BOF et EOF sont à true au moment de l'ajout d'ou l'impossibilité de l'action. Comment puis-je résoudre ce problème SVP. Voici le code pour l'ajout :
Private Sub nouveau_Click()
On Error GoTo erreur_nouveau
Me!adresse.Clear
a = Data1.Recordset.RecordCount
If a <> 0 Then
Data1.Recordset.MoveFirst
End If
Do While Not Data1.Recordset.EOF
Me!adresse.AddItem Data1.Recordset("champ")
Data1.Recordset.MoveNext
Loop
marcod59
Messages postés170Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention13 juin 2010 28 juil. 2006 à 19:12
Bonjour,
J'ai essayé, mais j'ai toujours le problème d'ajout. Par contre, j'ai ajouté Data1.EOFAction = 2 dans Private Sub nouveau_Click()
et maintenant ça me met l'enregistrement. Il me reste un problème de rafraîchissement du combobox, mais je pense que cela devrait aller.
Merci pour ton aide, et bonne prog
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 28 juil. 2006 à 13:13
Bonjour,
Après une suppression du dernier enregistrement le recordset ne pointe
ni sur Bof ni sur Eof.Autrement dit il n' est pas actif.ça semble bizard mais c' est comme ça!
Donc ce qu' il faut faire c' est l' activer en le dirriger vers
l' un ou l' autre.De préférence vers l' un PUIS vers l' autre.
Voilà comment moi je contourne le problème
Toujours après Rs.Delete
On error resume next
Rs.MoveFirst
Rs.MoveLast
marcod59
Messages postés170Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention13 juin 2010 28 juil. 2006 à 16:50
Bonjour,
Donc pour résoudre le problème il faut traiter dans la suppression ! J'ai suivi tes instructions, mais ça ne fonctionne pas. Voici le code modifié de la partie suppression qui elle fonctionne :
Private Sub sup_Click()
On Error Resume Next
rép = InputBox("Etes vous sûr O/N?")
If UCase(rép) = "O" Then
Data1.Recordset.Delete
On Error Resume Next
Data1.Recordset.MoveFirst
Data1.Recordset.MoveLast
Me!Donnees.SetFocus
Me!adresse.Clear
Do While Not Data1.Recordset.EOF
Me!adresse.AddItem Data1.Recordset("champ")
Data1.Recordset.MoveNext
Loop
Data1.Recordset.MoveFirst
End If
End Sub
Et comme tu le dis Bof et Eof sont vrais, et si je suis ce qui est dit dans l'aide de VB. Lorsque les deux sont vrais, cela génère une erreur donc impossibilité de réécrire un enregistrement.