Bonjour,

J'ai une base Access 2007 avec une table contenant des champs de type Oui/Non (boolean) dans laquelle je dois insérer des données depuis des tables paradox (transfert de données de paradox à Access 2007)

J'ai donc créé dans mon programme Delphi XE avec un composant ADOQuery une requête d'insertion et j'utilise un composant Query pour sélectionner les données des tables paradox à "transférer" dans Access.

Dans ce composant pour les données à passer en paramètre j'ai indiqué le type ftBoolean pour les données devant être renseignées dans les champs oui/non de ma base.

Voici mon code Delphi pour le passage des valeurs au paramètres

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
 
  QSel_Param.First;
  Repeat
    //insertion dans la table paramètre
    ADOQInsert_Param.Parameters.ParamByName('ref').Value             := QSel_Param.FieldByName('Reference').AsString;
    ADOQInsert_Param.Parameters.ParamByName('var').Value             := QSel_Param.FieldByName('Variante').AsString;
    ADOQInsert_Param.Parameters.ParamByName('des').Value             := QSel_Param.FieldByName('Designation').AsString;
    ADOQInsert_Param.Parameters.ParamByName('autorisation').Value    := QSel_Param.FieldByName('Autorisation_usinage').AsBoolean;
    ADOQInsert_Param.Parameters.ParamByName('lg_barre').Value        := QSel_Param.FieldByName('Longueur_Barre').AsInteger;
    ADOQInsert_Param.Parameters.ParamByName('piece_mini').Value      := QSel_Param.FieldByName('Longueur_Piece_Mini').AsInteger;
    ADOQInsert_Param.Parameters.ParamByName('piece_maxi').Value      := QSel_Param.FieldByName('Longueur_piece_Maxi').AsInteger;
    ADOQInsert_Param.Parameters.ParamByName('bi').Value              := QSel_Param.FieldByName('BI').AsBoolean;
    ADOQInsert_Param.Parameters.ParamByName('coul').Value            := QSel_Param.FieldByName('Coulissant').AsBoolean;
    ADOQInsert_Param.Parameters.ParamByName('inver').Value           := QSel_Param.FieldByName('Inversion_Origine').AsBoolean;
    ADOQInsert_Param.Parameters.ParamByName('soud').Value            := QSel_Param.FieldByName('Soudure_Dans_Logiciel').AsBoolean;
    //Exécution de l'insertion
    ADOQInsert_Param.ExecSQL;
    QSel_Param.Next;
  Until QSel_Param.Eof;
L'insertion du premier enregistrement de la table paradox dans Access se réalise bien par contre des qu'il veut enregistrer le second j'ai un message d'erreur m'indiquant :

"Type de données incompatible dans l'expression du critère"

Je n'arrive pas à comprendre pourquoi j'ai ce message qui apparait et qui bloque du coup mon transfert de données.

J'ai essayé mon code sans l'insertion des données de type boolean et je n'ai pas de soucis.

Savez-vous comment je peux corriger cette erreur et faire mon transfert complet avec les champs de type boolean.

Merci pour votre aide.