Ajout d'enregistrement table access en VBA

Résolu
Bonjour,

je suis entrain de faire une petite application en access. je suis coincé devant un problème que j'explique comme ceci :

dans l'application il y a un formulaire qui contient 02 champs de texte (texte1 et texte2)

et il y a une table (table1) qui reçois les valeurs que je vais saisir dans "texte1" et "texte2" dans la colonne "série" ( les valeurs sont de "texte1.value" à "texte2.value" ). exemple :

si je met dans texte1 la valeur 10 et dans texte2 la valeur 15, alors les valeurs qui vont être enregistrées dans la table1 dans la colonne série sont 10, 11, 12, 13, 14, 15 (soit 16 enregistrements)

je ne sais pas comment faire cela en VBA.

si quelqu'un sais comment s y prendre alors sont aide m'est très précieuse. J'ai besoin de votre aide.

merci à tout ceux qui m'aideront.



--
c'est en s'entre-aidons que nous réussirons

1 réponse

  1. Modérateur
    Salut,

    tu peux regarder ça et t'en inspirer pour commencer.

    Ensuite, il suffit de mettre une boucle pour générer les numéros entre les deux bornes.
    1
    1. Merci blux, c'est gentille de m'avoir répondu.

      voici le code que j'ai utilisé :

      Private Sub Commande4_Click()
      Dim rst As Recordset
      Dim DBTemp As DAO.Database
      Set DBTemp = CurrentDb
      Set rst = DBTemp.OpenRecordset("table1")
      With rst
      rst.AddNew
      rst("série").Value = Me.Texte1.Value
      If rst("série").Value < Me.Texte2.Value Then
      Do While rst("série").Value + 1
      Loop
      End If
      End With
      MsgBox ("c'est fait !!")
      End Sub

      ça ne rajoute que la valeur de texte1

      je vous informe que je suis novice en VBA;

      je ne sais pas comment mettre une boucle.
      0
    2. Modérateur
      je vous informe que je suis novice en VBA;
      Tu as déjà fait un truc qui tient la route, c'est tout à fait encrourageant !

      Pour la suite, on peut faire un truc comme ça (à corriger en fonction des erreurs de syntaxe qui j'aurais pu commettre) :

      Private Sub Commande4_Click()  
      Dim rst As Recordset  
      Dim DBTemp As DAO.Database  
      Set DBTemp = CurrentDb  
      Set rst = DBTemp.OpenRecordset("table1")  
      With rst  
          for i = Me.Texte1.Value to Me.Texte2.Value  
              rst("série").Value = i  
              rst.AddNew  
          next  
      End With  
      MsgBox ("c'est fait !!")  
      End Sub

      Le truc va quand même être de s'assurer que les insertions dans 'table1' sont correctement gérées au niveau clé primaire.
      0
    3. encore merci blux. j'ai mis ton code et voici le message qui apparait :

      Erreur d'execution '3020'
      Update ou CancelUpdate effectué sans appeler AddNew ni Edit.

      je ne sais pas de quoi il s'agit

      néanmoins j'ai essayé de :

      - ajouter la déclaration "Dim i as integer"
      - et ajouter "rst.Update" après "End With"

      mais aucune valeur ne s'ajoute dans la table.
      0
    4. Modérateur
      J'ai oublié le rst.update après le rst.addnew...
      0
    5. oui, mais ça ne marche pas.

      j'ai essayé de mettre "rst.addnew" avant "with rst" et ça n'enregistre que la valeur "texte1" avec le même message d'erreur.
      0