Bonjour,
J'ai un soucis lors du changement du datasource : voici mon code
J'ai 2 querys (qrtCave et qryArchives) qui peuvent être maitre du qryProducteurs
Je vous indique le code dans l'ordre d'exécution où mon message d'erreur apparait :
//Activation du query qryArchives
//connection au maitre qryArchives
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 With DM.qryArchives do begin Active:= false; SQL.Clear; SQL.Add('SELECT * FROM Archives'); Active:= true; end;
//déconnection du maitre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 With DM.qryProducteurs do begin Active:= false; SQL.Clear; Datasource:= DM.DSArchives; SQL.Add('SELECT * FROM Producteurs ' + ' WHERE ((PR_VIN = :AR_VIN) AND (PR_APPELATION = :AR_APPELLATION))'); Active:= true; end;
Maintenant je passe au qryCave
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 With DM.qryProducteurs do begin Active:= false; Datasource:= nil; //déconnection au maitre DSCave SQL.Clear; SQL.Add('SELECT * FROM Producteurs'); end;
//activation du qryCave
Jusqu'ic tout va bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 With DM.qryCave do begin Active:= false; SQL.Clear; SQL.Add('SELECT * FROM Cave'); Active:= true; end;
//connection au maitre qryCave
Voici mon message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 With DM.qryProducteurs do begin Active:= false; SQL.Clear; Datasource:= nil; Datasource:= DM.DSCave; // =====>>> ICI LE MESSAGE D'ERREUR SQL.Add('SELECT * FROM Producteurs ' + ' WHERE ((PR_VIN = :CA_VIN) AND (PR_APPELATION = :CA_APPELLATION))'); Active:= true; end;
Bien sû le champ 'AR_VIN' appartien à qryArchivesEdataBaseError avec message : qryCave: champ 'AR_VIN' non trouvé
Pourquoi cherche-t-il ce champ alors qu'il n'a pas à être dans le qryCave ?
Merci de vos réponses
Edit : J'utilise access en BD[/b]
Partager