Erreurs incompréhensibles

papillon13150 Messages postés 8 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je conçois actuellement un petit bon de vente sous access 2016 et j'ai des erreur que je ne comprends pas !
j'ai une saisie semi automatique qui, apres avoir selectionne le produit rechecher dois m'afficher tout son descriptif.
La premiere erreur est que des que je tape la 1ere lettre cela me dis: erreur d'execution '3021' aucun enregiestrement en cours, j'appuie sur fin ( pas debogguer ) de la je peux selectionner le produit dans la liste proposer mais le descriptif ne s'affiche pas ! pour se faire il faut que je resaisisse la recherche et avec le meme nom saisi precedement sinon bien sur le descriptif n 'est pas a jour ( par metaphore je saise n il affiche n-1)
Merci pour vos reponses

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, si tu attends une réponse, pourquoi ne pas poser une question?
    si tu veux avoir un programme correct: au lieu d'appuyer sur fin, appuie sur déboguer, et ensuite corrige l'erreur dans ton programme. inutile d'aller plus loin si les bases ne sont pas correctes.
    assure-toi aussi d'avoir "option explicit" au début de chaque module.
    0
  2. papillon13150 Messages postés 8 Statut Membre
     
    bonjour
    La question est posé que je sache et j'ai a plusieur reprise appuyer sur deboguer et si je pouvais corriger l'erreur disons de maniere evidente je ne solliciterai pas d'explication bien entendu ( option explicit est bien entendu au debut ) mais merci pour votre reponse
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      je n'ai remarqué aucun point d'interrogation: quelle est donc la question?
      si jamais tu souhaites obtenir de l'aide pour corriger les erreurs de ton programme:
      - ne nous cache rien. rien n'est "bien entendu": nous n'avons aucun moyen de deviner ce que tu as réalisé, la seule chose que nous savons, c'est que tu nous demandes de l'aide pour corriger tes erreurs. si tout était "bien entendu", tu n'aurais pas d'erreur.
      - présente-toi, décris ce que tu connais et ce que tu veux apprendre
      - partage le texte exact du message d'erreur
      - partage ton programme, en utilisant la coloration syntaxique
      - indique clairement sur quelle ligne de code l'erreur se produit
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour a vous deux,

      papillon:
      A priori, vous lancez la recherche des le premier caractère, donc normal qu'il n'y ait pas d'enregistrement (erreur 3021)!!!
      Certes avec votre fichier ce serait plus simple de vous apporter une aide
      0
    3. papillon13150 Messages postés 8 Statut Membre
       
      Merci pour votre aide et surtout d'avoir compris mon interogation :-)
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,
      Ok, voyez vous ce que vous devez modifier??
      0
    5. papillon13150 Messages postés 8 Statut Membre
       
      bonjour
      et encore merci de votre attention
      Alors j'ai effectivement deplace le code donc la saisie se fait sans erreur mais il ne m'affiche pas le resultat !
      Vous fait une copie du code
      Option Compare Database

      Option Explicit


      Private Sub Form_Load()

      quantite.Value = 1
      total = 0

      End Sub

      Private Sub liste_commune_Click()

      moteur.Value = liste_commune.Value

      moteur.SetFocus
      If liste_commune.Visible = True Then liste_commune.Visible = False

      DoCmd.Requery

      End Sub

      Private Sub moteur_Change()


      If liste_commune.Visible = False Then liste_commune.Visible = True
      liste_commune.RowSource = "SELECT DISTINCT libelle FROM liste_commune WHERE libelle LIKE '" & moteur.Text & "*'"



      End Sub


      Function masquerlist()

      If liste_commune.Visible = True Then liste_commune.Visible = False

      End Function

      Private Sub categorie_Change()

      Dim ligne As Recordset
      Dim base As DAO.Database

      Set base = Application.CurrentDb
      Set ligne = base.OpenRecordset("SELECT*FROM liste_commune WHERE libelle='" & moteur.Value & "'", dbOpenDynaset)


      ligne.MoveFirst

      categorie.Value = ligne.Fields("categorie").Value
      item.Value = ligne.Fields("item").Value
      prix.Value = ligne.Fields("prix").Value


      ligne.Close
      base.Close
      Set ligne = Nothing
      Set base = Nothing


      End Sub


      Private Sub ajouter_Click()

      Dim ligne As Recordset
      Dim base As DAO.Database
      Dim requete As String
      Dim totalcom As Currency



      Set base = Application.CurrentDb
      requete = "INSERT INTO detail_temp (item,categorie,libelle,quantite,prix,soustotal) VALUES ('" & item.Value & "','" & categorie.Value & ", " & moteur.Value & ",'" & quantite.Value & "','" & prix.Value & "','" & sstotal.Value & "')"

      base.Execute requete

      Set ligne = base.OpenRecordset("SELECT sstotal FROM detail_temp", dbOpenDynaset)

      ligne.MoveFirst

      Do
      totalcom = totalcom + ligne.Fields("sstotal").Value
      ligne.MoveNext
      Loop Until ligne.EOF
      total.Text = totalcom

      ligne.Close
      base.Close
      Set ligne = Nothing
      Set base = Nothing

      DoCmd.Requery



      End Sub


      Donc bien evidement les derniere ligne correspondant au bouton "ajouter" est, pour l'intant, par defaut en erreur
      0