Re clé étrengère

Signaler
Messages postés
8
Date d'inscription
lundi 18 mars 2002
Statut
Membre
Dernière intervention
2 juin 2002
-
Messages postés
8
Date d'inscription
lundi 18 mars 2002
Statut
Membre
Dernière intervention
2 juin 2002
-
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
A voir également:

4 réponses

Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
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.
Messages postés
8
Date d'inscription
lundi 18 mars 2002
Statut
Membre
Dernière intervention
2 juin 2002

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
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
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.
Messages postés
8
Date d'inscription
lundi 18 mars 2002
Statut
Membre
Dernière intervention
2 juin 2002

La table interprete est active et le champs Masterfield :=numinterprete;