a voir ton message d'erreur, je dirai tout d abord que tu as du faire une erreur d orthographe quelque part
-------------------------------
Réponse au message :
-------------------------------
> Bonjour,
>
>
>
> J'ai deux tables:
> + Tbl_ndos avec:
> - ID_ndos en numéroauto et clé primaire
> - N_dos en numérique
>
> + Tbl_clas avec:
> - ID_nclas en numéroauto et clé primaire
> - Ref_Tblndos en numérique
> - N_clas en texte
>
> elles sont liées ainsi
> Tbl_ndos.ID_ndos ---1--------plusieurs---> Tbl_nclas.Ref_Tblndos
>
> Mon souci arrive en vba !!
>
> J'ai un formulaire "Form_1" avec:
> + un champ "N_dos" que je rempli (via VBA) à l'ouverture du formulaire
> => on ne peut pas avoir deux fois le même numéro dans le champ "N_dos"
> + un champ "texte"
> + une zone de liste "Zone_nclas" qui m'affiche les numéros de classeur
> => Cette liste est remplie en fonction du champ "N_dos"
>
> SELECT Tbl_ndos.ID_ndos, Tbl_ndos.N_dos, Tbl_nclas.N_clas FROM Tbl_ndos INNER JOIN Tbl_nclas ON Tbl_ndos.ID_ndos=Tbl_nclas.Ref_Tbl_ndos WHERE Tbl_ndos.N_dos=" & Me.N_dos & ";" > |
> + un bouton "ajouter"
>
> voilà pour le décor !
>
> Maintenant, je voudrais, en passant par le VBA évidemment, enregistrer la valeur contenue dans le champ "texte", dans le champ "N_clas" de la table "Tbl_nclas" mais que celle-ci soit lié à la table "Tbl_ndos".
>
> Je pense bien qu'il faille passer par le SQL dans mon recordset mais je vois pas comment.
> Voilà le code !
>
>
> Dim db As DAO.Database > Dim rec As DAO.Recordset > > SQL = "SELECT Tbl_ndos.ID_ndos, Tbl_ndos.N_dos, Tbl_nclas.ID_nclas, Tbl_nclas.Ref_Tbl_ndos, Tbl_nclas.N_clas FROM Tbl_ndos INNER JOIN Tbl_nclas ON Tbl_ndos.ID_ndos = Tbl_nclas.Ref_Tbl_ndos WHERE Tbl_ndos.N_dos=" & Me.N_dos & ";" > > Set db = CurrentDb() > Set rec = db.OpenRecordset(SQL) > > rec.AddNew > rec![N_clas] = Me![texte] > rec.Update > rec.Close > > Me.Zone_nclas.requery > |
>
> L'erreur est, maitenant la suivante:
> Erreur d'exécution '3101':
> Le moteur de base de donnée Microsoft Jet ne peut pas trouver d'enregistrement dans la table 'Tbl_Ndos' avec le (les) champ(s) 'Ref_Tbl_ndos' correspondant à la clé.
> Et m'emmène sur la ligne
> rec.Update
>
> merci d'avance du coup de main !
>
> Gdal