Re clé étrengère

csandrine Messages postés 8 Date d'inscription lundi 18 mars 2002 Statut Membre Dernière intervention 2 juin 2002 - 24 mai 2002 à 14:30
csandrine Messages postés 8 Date d'inscription lundi 18 mars 2002 Statut Membre Dernière intervention 2 juin 2002 - 24 mai 2002 à 17:18
j'ai 2 tables
tbinterprete(numinterprete(autoincremente), nom)
tbcd(numcd(autoincremente), numinterprete, titre)
voici mon code pour inserer des enregistrements :

tbinterprete.Insert;
tbinterprete.FieldByName('nom').Asstring=txt1.text;
tbinterprete.Post;
tbcd.Insert;
[tbcd.FieldByName('numinterprete').AsInteger:=tbinterprete.FieldValues['numinterprete'];
tbcd.FieldByName('titre').AsString:=txt_titre.text;

j'ai le message d'erreur suivant : invalid variant type conversion"
pourriez vous m'aider ?

merci d'avance

4 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
24 mai 2002 à 15:48
Au lieu de :
tbcd.FieldByName('numinterprete').AsInteger:=tbinterprete.FieldValues['numinterprete']

tu dois inscrire :
tbcd.FieldByName('numinterprete').AsInteger:=tbinterprete.FieldByName('numinterprete').AsInteger;

FieldValues['NomDuChamp'] est une méthode qui permet de trouver le champ 'une table par le nom du champ (ce que l'on appelle un tableau associatif) et ne donne pas la valeur contenue par ce champ.
Ainsi, dans ton code, tu voudrais affecter une référence sur un champ à une valeur entière !
Le compilateur refuse donc il y a incompatibilité de type.

May Delphi be with you.
0
csandrine Messages postés 8 Date d'inscription lundi 18 mars 2002 Statut Membre Dernière intervention 2 juin 2002
24 mai 2002 à 16:10
Merci. Au moins ca compile.Mais il met un autre message d'erreur"vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associe est requis dans la table interprete."

J'ai pourtant déclaré la table interprete comme mastersource de la table cd.

Comment résoudre ce problème?

est ce que tu connais un bon tutorial pour m'aider avec les bases de donnés (j'utilise Access97)

merci
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
24 mai 2002 à 16:23
Au moment de la réception du message, la table interprete est-elle bien active ?
Tu as déclaré TbInterprete comme MasterSource de TbCd, mais qu'as-tu déclaré comme champ MasterField dans TbCd ?

De bon tutorial sur les bases de données je ne connais point. En revanche, il existe de bons livres sur le sujet.

May Delphi be with you.
0
csandrine Messages postés 8 Date d'inscription lundi 18 mars 2002 Statut Membre Dernière intervention 2 juin 2002
24 mai 2002 à 17:18
La table interprete est active et le champs Masterfield :=numinterprete;
0
Rejoignez-nous