Bonjour,
Je travaille sur une base de données sur Access 2003 et j'ai un problème.
Ma base est un peu compliqué donc il vaut mieux regarder mes images pour comprendre mon problème.
Pour chaque table, j'ai créé un formulaire qui permet de rechercher, ajouter ou modifier. Et j'ai créé une section recherche dans chaque formulaire pour chercher des fiches facilement, pour ça, il fallait du code. Sur une table, je l'ai fais avec mon formateur lors d'une formation d'une journée, il me suffisait ensuite de recopier le code et de le coller dans chaque formulaire. Le code comportait 3 boutons de commande ainsi que la zone de recherche, la recherche se faisant dans chaque formulaire dans une table différente, il ne me restait plus qu'à remplacer la bonne table. On avait choisi l'ID. Sur mon image "relations", on peut voir ID_PUBL, ID_ETS, ID_STRUC...
Dans ma table "participants associatifs", mon formateur n'avait pas mis d'ID, jugeant que c'était inutile, car cette table n'avait de relation avec aucune autre table...sauf que dans mon code, c'est l'ID que je choisissais...ne sachant quoi mettre d'autre, j'ai créé un ID_PART pour cette table et essayer le code, mais ça ne marche pas non plus.
J'ai un message d'erreur "Erreur d'exécution '13': Incompatibilité de type
Voilà le code que j'ai pour ce formulaire :
Option Compare Database
Private Sub btn_annuler_Click()
On Error GoTo Err_btn_annuler_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
DoCmd.Close
Exit_btn_annuler_Click:
Exit Sub
Err_btn_annuler_Click:
MsgBox Err.Description
Resume Exit_btn_annuler_Click
End Sub
Private Sub btn_nouveau_Click()
On Error GoTo Err_btn_nouveau_Click
DoCmd.GoToRecord , , acNewRec
Exit_btn_nouveau_Click:
Exit Sub
Err_btn_nouveau_Click:
MsgBox Err.Description
Resume Exit_btn_nouveau_Click
End Sub
Private Sub btn_quitter_Click()
On Error GoTo Err_btn_quitter_Click
DoCmd.Close
Exit_btn_quitter_Click:
Exit Sub
Err_btn_quitter_Click:
MsgBox Err.Description
Resume Exit_btn_quitter_Click
End Sub
Private Sub recherche_AfterUpdate()
' Rechercher l'enregistrement correspondant au contrôle.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[ID_PART] = " & Str(Nz(Me![recherche], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
En rouge, la partie qui bug.
Je ne sais pas du tout si je suis claire

mais j'ai mis une autre image pour montrer mon formulaire...en gros, ce que je veux, c'est par exemple sur l'image, si je choisis dans la liste : le nom d'un adhérent, et bien sa fiche apparaisse automatiquement. Donc le code, je l'ai bien, c'est juste le ID_PART qui me pose problème...ou si ID_PART est inutile, par quoi le remplacer, pour que cette zone de liste modifiable comprenne ce qu'elle doit faire.
Est-ce que quelqu'un comprend ce que je dis et pourrait m'aider ?
Ajout du 23-08-2007 à 11:14:
c'est bon, j'ai trouvé. J'avais oublié de rajouter aussi l'ID_PART dans la requête correspondant au formulaire. C'est pour ça qu'il ne le trouvait pas

.
Autre question, je dois faire une requête sur des coordonnées de psy. J'en ai dans ma table "structures" où je n'ai que les cabinets sans identité et dans ma table "public" où je n'ai que les identités (noms des psys) sans cabinet.
Quand je fais ma requête, en modifiant les propriétés de la jointure, je n'arrive à avoir que soit ceux de ma table structures, soit ceux de ma table public. Parce que la jointure demande les champs égaux dans les tables, hors j'ai soit l'un, soit l'autre...
Dois-je faire deux requêtes ? une pour les cabinets et l'autre pour les psy sans cabinet ? ou bien y'a-t-il une formule ou un moyen de les regrouper en une seule requête ?
(Modifié par goldzab le 07-10-2008 à 10:57)