Bonjour à tous,

je m'adresse encore à vous pour en savoir toujours plus !

j'ai un problème avec une requête UPDATE dans uen table Access 2003
j'ai un bout de code qui construit la requete du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
"UPDATE TableDossiers SET annee = 2000 AND modele = xxx WHERE Id_Dossier = 5"
mais ceci ne fonctionne que si je ne change qu'une seule valeur :s Pourriez vous me donner la syntaxe d'un update permettant d'imbriquer plusieurs instructions ?

Je n'ai pas de message d'erreur SQL et je suis via ODBC

je vous met le code en entier pour info si jamais

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
if edit6.text <> ''  then
begin
    addClauseWhere2 := addClauseWhere2 + ' annee = ' + edit6.text +' AND ';
    flag2 := true;
end;
 
if edit9.text <> ''  then
begin
    addClauseWhere2 := addClauseWhere2 + ' modele = ' + QuotedStr(edit9.text) +' AND ';
    flag2 := true;
end;
 
if edit10.text <> '' then
begin
    addClauseWhere2 := addClauseWhere2 + ' langue = ' + QuotedStr(edit10.text) +' AND ';
    flag2 := true;
end;
if edit11.text <> '' then
begin
    addClauseWhere2 := addClauseWhere2 + ' ref = ' + QuotedStr(edit11.text) +' AND ';
    flag2 := true;
end;
 
if edit12.text <> '' then
 
begin
    addClauseWhere2 := addClauseWhere2 + ' Quantite = ' + edit12.text +' AND ';
    flag2 := true;
end;
 
if edit13.text <> '' then
begin
    addClauseWhere2 := addClauseWhere2 + ' NomDossiers = ' + QuotedStr(edit13.text) +' AND ';
    flag2 := true;
end;
 
if edit14.text <> '' then
begin
    addClauseWhere2 := addClauseWhere2 + ' Bureau = ' + QuotedStr(edit14.text) +' AND ';
    flag2 := true;
end;
 
Application.ProcessMessages;
 
if flag2 = true then
   begin
     SQLQuery1.Active:=false;
     AddClauseWhere2 := copy(addclauseWhere2,0,length(addclauseWhere2)-5);
     // supprime les 5 dernieres Lettres 'AND' et si aucune combo le 'Where'
     MaRequete2:= 'UPDATE TableDossiers SET ('+addclauseWhere2+') WHERE Id_Dossier = '+edit1.text ;
     SQLQuery1.SQL.Clear;
     SQLQuery1.SQL.Text:= MaRequete2 ;
     // permet d'effectuer des modifs dans la DB
     SQLQuery1.ExecSQL;
     ListBox8.Items.Clear;
     ShowMessage('Modifs effectuées avec succès');
     edit1.text := '';
     flag2 := false;
   end
   else
     begin
       if (edit6.text <> '') and (edit9.text <>'') and (edit10.text <>'') and (edit11.text <>'') and (edit12.text <>'') and (edit13.text <>'') and (edit14.text <>'') then
       begin
         SQLQuery1.Active:=False;
         SQLQuery1.SQL.Clear;
         AddClauseWhere2 := copy(addclauseWhere2,0,length(addclauseWhere2)-5);
         // supprime les 5 dernieres Lettres 'AND' et si aucune combo le 'Where'
         MaRequete2:= 'INSERT INTO TableDossiers (annee,modele,langue,ref,quantite,NomDossiers,Bureau) VALUES ('+ edit6.text +','+ QuotedStr(edit9.text) +','+ QuotedStr(edit10.text) +','+ QuotedStr(edit11.text) +','+ (edit12.text) +','+ QuotedStr(edit13.text) +','+ QuotedStr(edit14.text)+')';
         //
         SQLQuery1.SQL.Text:= MaRequete2 ;
         // permet d'effectuer des modifs dans la DB
         //SQLQuery1.Active:=True;
         //SQLQuery1.First;
         SQLQuery1.ExecSQL;
        //ListBox8.Items.Clear;
         ShowMessage('Ajout effectué avec succès');
       end
       else
         showmessage ('Un ou des champ(s) ne sont pas remplis');
     end;
 
RechargeComboBox ();
ListBoxDisabled ();
end;
meric de votre aide précieuse !

inc002