Pb de RecordSet : 2 Tables / 1 Formulaire

Résolu
cs_gothar12 Messages postés 10 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 5 juin 2006 - 4 mai 2006 à 19:23
cs_gothar12 Messages postés 10 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 5 juin 2006 - 5 mai 2006 à 19:33
Bonjour,


J'ai un petit problème sous Access, j'ai fait un formulaire qui enregistre les champs dans une table nommée INTERV donc dans chaque champ, je met INTERV comme source contrôle dans les propriétés pour l'enregistrement.
Seulement j'ai un menu déroulant qui part chercher des chiffres dans une autre table INVENTAIRE et je veux remplir certains champs automatiquement en fonction du chiffre depuis la table INVENTAIRE. En fait, j'ai plusieurs champs identiques entre les 2 tables nommés pareils.
Donc j'ai fait le code suivant

Private Sub Modifiable247_Click() 'modifiable 247 c'est le nom de mon menu déroulant, je veux que lorsque je click sur un nombre dedans (correspond a un numero d'équipement de la table INVENTAIRE), çà remplisse les autres champs de mon fomulaire (donc requete a la table INVENTAIRE pour remplir les champs)


If Not Modifiable247 = "" Then 'si le champ n'est pas vide, c'est a dire, un numero d'équipement a été choisi

champ6.Value = Modifiable247.Value 'çà, pa important


Dim SQL As String
Dim SQL2 As String


SQL2 SQL2 + " WHERE (numero_equipement '" & (Modifiable247.Value) & "') "


Set db = CurrentDb
'alors on va afficher automatiquement les champs numero serie, marque, type modele, designation
'UF et numero UF depuis la table INVENTAIRE
'--------------------------------------
SQL = "SELECT numero_serie FROM INVENTAIRE"
SQL = SQL + SQL2


Set rs = db.OpenRecordset(SQL, dbOpenDynaset)
champ0.Value = rs.Fields(0)

il plante sur le Set rs = db.OpenRecordset(SQL, dbOpenDynaset)
type de donnees incompatible dans l'expression du critère
et je repete pour tous les autres champs ensuite SQL = "SELECT marque, type_modele, designation, UF, numero_UF FROM INVENTAIRE" ....
Je ne vois pas pourquoi cela ne marche pas, les champs numero_equipement, marque, type_modele, designation, UF, numero_UF sont communs au deux table et je les ai liés dans les relations
Il faut savoir aussi que dans les propriétés de mon formulaire j'ai mi INTERV en source car c'est dans cette table qu'y figureront les données apres enregistrement.

Merci de votre aide pour m'éclairer. Si vous avez des questions sur des choses que vous n'avez pas compris n'hésitez pas.

3 réponses

asecher Messages postés 262 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 27 avril 2007 1
4 mai 2006 à 19:38
Déja vu sur ce forum (hier il me semble).
Faudrait voir à chercher un peu (voir règlement du forum)

Si numero_equipement est numérique (entier), enlève les simples apostrophes autour de & (Modifiable247.Value) &

Soit :

SQL2 = SQL2 + " WHERE (numero_equipement=" & (Modifiable247.Value) & ") "

A+

Alain 31
3
cs_gothar12 Messages postés 10 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 5 juin 2006
4 mai 2006 à 20:38
Non çà n'est pas çà, quand je met un point d'arret dans ma requete SQL il prend bien le nombre il met pas exempleSQL SELECT numero_serie FROM INVENTAIRE WHERE (numero_equipement '343') "

C'est sur cette ligne la : Set rs = db.OpenRecordset(SQL, dbOpenDynaset) que çà plante !
0
cs_gothar12 Messages postés 10 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 5 juin 2006
5 mai 2006 à 19:33
Effectivement il s'agissait de cela, merci beaucoup
0
Rejoignez-nous