Problème d'ajout d'un enregistrement dans une table ACCESS

Résolu
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008 - 15 avril 2007 à 17:11
hajourawm Messages postés 19 Date d'inscription mercredi 17 mars 2010 Statut Membre Dernière intervention 25 mars 2011 - 23 févr. 2010 à 10:51
Bonjour les amis,

je bute contre un problème que je ne comprends pas, j'ai mis sur une feuille des boutons pour ajouter des enregistrements dans une table ACCESS, mais celà m'affiche une erreur, voici mon code:

Ajouter:
Private Sub Command3_Click()
Adodc1.Recordset.AddNew
End Sub

Enregistrer:
Private Sub Command4_Click()
' Chemin complet et nom de la base
strDB = "C:\pesageo.mdb"
' Nom de la table
strTable = "Produit"
 
' Ouverture connexion vers la base
Set oConn = New ADODB.Connection
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.Open strDB
 
' Optionnel : Vide la table
'oConn.Execute "DELETE FROM " & strTable
 
' Ouverture recordset sur la table
Set oRS = New ADODB.Recordset
oRS.CursorLocation = adUseClient
oRS.Open strTable, oConn, adOpenDynamic, adLockOptimistic, adCmdTable
 
'For i = 4 To 9  ' Début de Boucle, à partir de la ligne index 0 et ce, jusqu'à la dernière
     enr1 = Text1(0).Text ' Extraction de la ligne en cours
     enr2 = Text1(1).Text
     oRS.AddNew
     oRS.Fields("code_produit") = enr1  ' remplacer Champ1 par le vrai nom du champ
     oRS.Fields("Libellé") = enr2
    
'Next ' Fin de Boucle

If oRS.EditMode = adEditAdd Or _
   oRS.EditMode = adEditInProgress Then
       oRS.Update
End If
 
' Fermeture et libération des objets
'If oRS.State <> adStateClosed Then oRS.Close
'Set oRS = Nothing
'oConn.Close
'Set oConn = Nothing

oConn.Execute "SELECT * FROM " & strTable

Set oRS = New ADODB.Recordset
oRS.CursorLocation = adUseClient
oRS.Open strTable, oConn, adOpenDynamic, adLockOptimistic, adCmdTable

oRS.MoveFirst
'Do While oRS.EOF = False
  '  List1.AddItem.Fields (1)
 '   oRS.MoveNext
'Loop
End Sub

l'erreur est la suivante:
L'opération doit utiliser une requête qui peut être mise à jour.

Merci les amis

34 réponses

chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
16 avril 2007 à 01:00
on est bien d' accord
Ajouter
Saisie
Enregistrer
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
16 avril 2007 à 01:01
je ne peux pas supprimer Adodc1 car je dois visualiser tous les enregistrements dans un tableau pour permettre le choix d'un produit et son transfert vers un champ d'un autre Form

pourtant j'ai essayé ce que tu m'as dit et ça marche mais je n'affiche pas tous les enregistrements

Qu'est ce queje peux faire alors???
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
16 avril 2007 à 01:21
ça larche maintenant

je vais abuser de ta patience mais j'ai essayé la suppresion avec :

oRS.Delete
Adodc1.Refresh
oRS.MoveNext
If oRS.EOF = True Then
oRS.MovePrevious
End If

mais ça fonctionne pas il y a une erreur retournée!!!
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
16 avril 2007 à 01:31
Attention avec Delete...
Si tu n' as qu' un enregistrement, après Delete tu ne te pointe sur aucun enregistrement
et .MoveNext ou le .MovePrevious renvoie une erreur


Fais comme ceci
oRS.Delete
Adodc1.Refresh
On Error Resume Next 'éviter l' erreur
oRS.MoveNext 'pour se palcer au suivant
If Ors.Eof Then oRS.MovePrevious 
Maintenant soit tu es en fin de fichier, soit au précédent,
soit au début de fichier
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
16 avril 2007 à 01:35
l' erreur arrive aussi si l' enregistrement que tu viens
de supprimer était le dernier de la liste
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
16 avril 2007 à 01:38
j'ai essayé mais je crois que celà supprime le premier enregistrement et non celui sélectionné?!!
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
16 avril 2007 à 01:46
si tu supprimesavec ors, tu dois d' abord rechercher avec
Ors l' élément sélectionné...
lorsque tu le trouves tu supprimes.
Sinon laisses tomber pou cette nuit et va te reposer
Moi aussi je vais faire de même
Moi je suis erreinté ...

A la prchaine InchAllah..
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
16 avril 2007 à 01:56
Ok inchaellah, je laisse tomber pour cette nuit tout en ésperant que demain nchaellah tu vas m'apporter une aide comme ce soir.

je te remercie mon frère
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
16 avril 2007 à 01:59
si tu as des problème avec Ors, supprimes directement avec Adodc1
Adodc1.Recordset.Delete
et refais le même traitement pour la gestion de l' erreur
mais en utilisant toujours Adodc1

Allez Bonne nuit
Je t' enverrais la facture demain...

 
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
16 avril 2007 à 22:24
Private Sub Suppression_Click()
Adodc1.Recordset.Delete
Adodc1.Refresh
On Error Resume Next 'éviter l' erreur
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF Then Adodc1.Recordset.MovePrevious
End Sub

et voici l'erreur générée:
Impossible de supprimer dans les tables spécifiées, tout en sachant que mon Adodc1 est liée à ma table produit.

!!!! bizzare
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
16 avril 2007 à 23:29
Bonsoir,
regardes dans les propriétés de ton Adodc...
CusrorType doit être Dynamic
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
17 avril 2007 à 02:11
ça marche pas non plus

!!!!
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
18 avril 2007 à 15:04
on est arrivé au terminus je crois :)
0
hajourawm Messages postés 19 Date d'inscription mercredi 17 mars 2010 Statut Membre Dernière intervention 25 mars 2011
23 févr. 2010 à 10:51
bjr,jé une problème lors de code d'ajout d'un enregistrement dans une base Access2007,je peut pa faire même la connexion.??
0
Rejoignez-nous