Access ajout dans 2 tables

Résolu
Bonjour,
alors voila mon problème du jour.... je n'arrive pas à remplir 2 tables.. ces 2 tables sont liées...
je voudrais enregistrer un CD dans une table et dans une 2ème table le numéro du CD que je suis en train d'insérer et le numéro de lartiste qui chante lalbum.... mais voila je ne ne peux pas ajouter ces données....

voila le code :

connexion.Execute "insert into cd (nom_cd,duree_cd,annee_sortie,num_genre) values ('" & t_nom_cd & "'," & t_duree_cd & "," & t_annee_sortie & "," & numGenre & ")"

connexion.Execute "insert into participer (num_art, num_cd) values (" & num_art & ", " & num_cd & " )"

et voilà l'erreur :
Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table 'cd'

et quand je fais 'debug' c'est la ligne d'ajout pour participer qui est surlignée....

si quelqu'un voit d'où peut provenir mon problème !!!
merci d'avance
Sillia

7 réponses

  1. Est ce que le "num_cd" s'incremente automatiquement dans la table cd??
    0
    1. oui !! est ce que cela pose un problème?
      0
      1. Est ce que t'a déja fais une fonction qui retourne le dernier numero_CD de la table CD, pour l'ajouter dans l'autre table ?
        0
    2. non j'ai pas fais de fonction qui retourne le dernier num du CD.... faut que je le fasse?
      0
      1. bien sur, sinon comment la 2eme table peut savoir le num_cd puisqu'il s'increment auto. dans la table cd, parce que le num_cd de cette derniere table doit exister dans la table cd
        0
    3. j'ai fais une fonction qui retourne le numéro du cd que je suis en train d'ajouter
      0
      1. ok ok !! par contre j'essaierais ça demain et je te tiens au courant de l'évolution de la chose !! !!
        merci de ton aide
        a demain peut-être !!
        Sillia
        0
        1. Salut !!! voila je viens de tester la fonction qui récupère le numéro du dernier album mais ça ne marche toujours pas.... je met le code ou je récupère le dernier numéro du CD..

          le code :
          'Permet de récupérer le dernier numéro de CD enregistré.

          Dim dernier As String

          Set curseur = New ADODB.Recordset
          dernier = "select max(num_cd) as nb_cd from cd"
          Set curseur = New ADODB.Recordset

          curseur.Open dernier, connexion, adOpenDynamic
          If (nb_cd = 0) Then
          nb_cd = 1
          Else
          recup_num_cd = nb_cd + 1
          End If

          voila merci de votre aide
          sillia
          0
          1. c'est encore moi !!!
            alors je pense que mon problème vient de ma requête puisqu'elle me retourne qu'il n'y a aucun enregistrement dans base... alors qu'il y en a !!!
            et la je vous avoue que je ne vois pa mon erreur...
            max(nom_de_la_variable) sert bien à retourner la valeur la plus grande dans une table?non? donc la par rapport à ce que j'ai écris ça devrait me retourner le numéro de cd le plus grand non?
            merci de votre aide parce que là je suis un peu perdue !!
            Sillia
            0