Base de Données Paradox 7 [Résolu]

Messages postés
96
Date d'inscription
samedi 27 mars 2004
Dernière intervention
14 décembre 2017
- 22 mars 2012 à 15:24 - Dernière réponse :
Messages postés
96
Date d'inscription
samedi 27 mars 2004
Dernière intervention
14 décembre 2017
- 14 mai 2012 à 17:41
Bonjour je suis sous delphi 7

jai un petit souci au quel je n 'arrive pas a comprendre les raisons du bug
mon petit programe tous simple de base de donnée me met ce message !!
<<impossible de convertir le variant de type(string) en type (double)>>
et lorsque je poursuis en pas a pas il me dit que mon champ quantite en est la cose ?..

je vous explique mon programe qui est une petite gestion de cave a vin
j'ai donc créé une table paradox 7 avec des champs (A) pour tous ce qui est du texte et des champs N pour tous ce qui est chiffres

lorsque je saisie mes éléments pas de souci ils apparaissent bien dans mon dgrid mais lorsque je valide ma saisie boom !! j'ai ce message erreur

avans cela fonctionnait !!!

je ne comprend plus !!!

[b]
form de visualisation, saisie,ou modification/b

unit TH1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls, OleServer, ExcelXP, Menus,
DB, DBTables, Mask, RzBorder, jpeg, RzButton, DBCtrls, RzBckgnd, Buttons,
ComCtrls;



type
TBDTH1 = class(TForm)
Image1: TImage;
Label2: TLabel;
Image17: TImage;
MessageAlerte: TRzLEDDisplay;
DataSource2: TDataSource;
Table2: TTable;
Menu: TMainMenu;
Fichier1: TMenuItem;
Nouveau1: TMenuItem;
Modifier1: TMenuItem;
Quitter1: TMenuItem;
Imprimer1: TMenuItem;
Fiche1: TMenuItem;
BasedeDonne1: TMenuItem;
saisie1: TMenuItem;
NouvelleFiche1: TMenuItem;
H1: TMenuItem;
H2: TMenuItem;
H3: TMenuItem;
H4: TMenuItem;
H5: TMenuItem;
tri1: TMenuItem;
RH1: TMenuItem;
RH2: TMenuItem;
RH3: TMenuItem;
RH4: TMenuItem;
CasierTH1: TMenuItem;
RM1: TMenuItem;
RM2: TMenuItem;
RM3: TMenuItem;
RM4: TMenuItem;
RM5: TMenuItem;
RM6: TMenuItem;
RM7: TMenuItem;
RM8: TMenuItem;
RM9: TMenuItem;
Casierstm1: TMenuItem;
M1: TMenuItem;
M2: TMenuItem;
M3: TMenuItem;
M4: TMenuItem;
CasiersRB1: TMenuItem;
RB1: TMenuItem;
RB2: TMenuItem;
RB3: TMenuItem;
CasiersTB1: TMenuItem;
B1: TMenuItem;
B2: TMenuItem;
B3: TMenuItem;
N1: TMenuItem;
CasierCH1: TMenuItem;
CH1: TMenuItem;
CH2: TMenuItem;
CasiersCM1: TMenuItem;
CM1: TMenuItem;
Casiers1: TMenuItem;
CB1: TMenuItem;
CB2: TMenuItem;
N2: TMenuItem;
CasiersA1: TMenuItem;
FG1: TMenuItem;
FG2: TMenuItem;
FG3: TMenuItem;
FG4: TMenuItem;
FG5: TMenuItem;
FG6: TMenuItem;
FG7: TMenuItem;
FG8: TMenuItem;
FG9: TMenuItem;
CasiersfilsGauche1: TMenuItem;
FD1: TMenuItem;
FD2: TMenuItem;
FD3: TMenuItem;
FD4: TMenuItem;
FD5: TMenuItem;
FD6: TMenuItem;
FD7: TMenuItem;
FD8: TMenuItem;
FD9: TMenuItem;
N3: TMenuItem;
Divers1: TMenuItem;
VoirLesCasiers1: TMenuItem;
MCasier1: TMenuItem;
Importer1: TMenuItem;
Excel1: TMenuItem;
XT1: TMenuItem;
N5: TMenuItem;
Aide2: TMenuItem;
appropos1: TMenuItem;
ExcelApplication1: TExcelApplication;
Panel1: TPanel;
Panel2: TPanel;
DBGrid1: TDBGrid;
Edit1: TEdit;
Label1: TLabel;
GBSaisie: TGroupBox;
LabelNom: TLabel;
Image6: TImage;
LabelQuantite: TLabel;
LabelAquisition: TLabel;
LabelApogee: TLabel;
LabelEveil: TLabel;
Image4: TImage;
Image3: TImage;
Image5: TImage;
Image2: TImage;
LabelCouleur: TLabel;
LabelAppellation: TLabel;
LabelCru: TLabel;
LabelCepage: TLabel;
Image7: TImage;
LabelRegion: TLabel;
Label6: TLabel;
Label3: TLabel;
Label4: TLabel;
DBAquisition: TDBEdit;
DBQuantite: TDBEdit;
DBMillesime: TDBEdit;
DBNom: TDBEdit;
DBRegion: TDBEdit;
DBAppellation: TDBEdit;
DBCru: TDBEdit;
DBCepage: TDBEdit;
DBCouleur: TDBEdit;
DBType: TDBEdit;
DBEveil: TDBEdit;
DBApogee: TDBEdit;
Validesaisie: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
GBModifier: TGroupBox;
RzBackground1: TRzBackground;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label24: TLabel;
Label30: TLabel;
Label19: TLabel;
Label18: TLabel;
Label20: TLabel;
Label16: TLabel;
Label22: TLabel;
Label21: TLabel;
DBEdit12: TDBEdit;
DBEdit13: TDBEdit;
DBComboBox2: TDBComboBox;
DBEdit14: TDBEdit;
DBEdit15: TDBEdit;
DBComboBox1: TDBComboBox;
DBComboBox3: TDBComboBox;
DBComboBox4: TDBComboBox;
DBEdit16: TDBEdit;
DBEdit17: TDBEdit;
DBEdit18: TDBEdit;
DBEdit19: TDBEdit;
DBRichEdit1: TDBRichEdit;
Validemodif: TRzBitBtn;
Qmodif: TRzBitBtn;
SuprimeFiche: TRzBitBtn;
RzBitBtn4: TRzBitBtn;
RzBitBtn6: TRzBitBtn;
RzBitBtn7: TRzBitBtn;
DBNavigator1: TDBNavigator;
DBnumero: TDBEdit;
Label7: TLabel;
Label5: TLabel;
RzBitBtn8: TRzBitBtn;
RzBitBtn9: TRzBitBtn;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label15: TLabel;
Label17: TLabel;
RzBitBtn5: TRzBitBtn;
Image33: TImage;
DBAnnotation: TDBMemo;
Image14: TImage;
StatusBar1: TStatusBar;
Image8: TImage;
DBCasier: TDBComboBox;
Table2N: TAutoIncField;
Table2Casier: TStringField;
Table2Quantite: TFloatField;
Table2Nom: TStringField;
Table2Region: TStringField;
Table2Appellation: TStringField;
Table2Millesime: TStringField;
Table2Cepage: TStringField;
Table2Couleur: TStringField;
Table2Type: TStringField;
Table2Cru: TStringField;
Table2Eveil: TStringField;
Table2Apogee: TStringField;
Table2Aquisition: TStringField;
Table2Annotation: TStringField;
MaskEdit1: TMaskEdit;

procedure Mise_a_jour(DataSet: TDataSet);
procedure ValidemodifClick(Sender: TObject);
procedure SuprimeFicheClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ValidesaisieClick(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure QmodifClick(Sender: TObject);
procedure RzBitBtn5Click(Sender: TObject);
procedure RzBitBtn9Click(Sender: TObject);
procedure RzBitBtn8Click(Sender: TObject);
procedure DBCasierChange(Sender: TObject);



private
{ Déclarations privées }
public
{ Déclarations publiques }
end;

var
BDTH1: TBDTH1;
SELECT : STRING ;
implementation

uses MultiRechercheTH1, ChoixTH1, SaisieOK;

{$R *.dfm}



procedure TBDTH1.ValidemodifClick(Sender: TObject);
begin
Table2.Active := True;
Table2.Refresh;
end;

procedure TBDTH1.SuprimeFicheClick(Sender: TObject);
var rep : integer;
begin
rep:= MessageBox(Handle,'Etes-vous sûr de vouloir suppirmer ce Vin ?',
'Avertissement',MB_OKCANCEL or MB_ICONSTOP ) ;
if (rep =IDOK) then// test si réponse OK
Table2.Delete; // Suppression de l'enregistrement
Fichier1.Enabled := true; // active l'item du menu Fichier
Table2.Last;
Table2.Append;

end;

procedure TBDTH1.FormCreate(Sender: TObject);
begin

GBSaisie.Visible:= false;;
GBModifier.Visible:= false;
Table2.Open;
Table2.First;

Edit1.text:='0'; //Efface le contenu de l edit1
Table2.First;
repeat
Edit1.text:=inttostr(strtoint(edit1.text)+BDTH1.Table2.FieldValues['Quantite']);
Table2.next;
until table2.eof=true;
end;

procedure TBDTH1.ValidesaisieClick(Sender: TObject);
begin
Table2.Last;
Table2.Refresh;
Table2.Last;
Table2.Insert ;

Table2.Edit; // Positionne la table en mode Edition

Table2.FieldByName('Nom').Value := Table2Nom.Text;
Table2.FieldByName('Region').Value := Table2Region.Text;
Table2.FieldByName('Millesime').Value := Table2Millesime.Text;
Table2.FieldByName('Appellation').Value := Table2Appellation.Text;
Table2.FieldByName('Cru').Value := Table2Cru.Text;
Table2.FieldByName('Cepage').Value := Table2Cepage.Text;
Table2.FieldByName('Couleur').Value := Table2Couleur.Text;
Table2.FieldByName('Type').Value := Table2Type.Text;
Table2.FieldByName('Eveil').Value := Table2Eveil.Text;
Table2.FieldByName('Apogee').Value := Table2Apogee.Text;
Table2.FieldByName('Aquisition').Value := Table2Aquisition.Text;
Table2.FieldByName('Quantite').Value := Table2Quantite.Text;
Table2.FieldByName('Annotation').Value := Table2Annotation.Text;



//Mon appliquation ce bloc ici


Table2.Post(); // Valide l'édition dans la base de données
//Fichier1.Enabled := true; // Active le menu

Table2.Last;
oksaisie.ShowModal;

end;

procedure TBDTH1.Mise_a_jour(DataSet: TDataSet);
VAR St : STRING;
begin
Str(Table2.RecordCount,St);
MaskEdit1.EditText:=St;
end;

procedure TBDTH1.BitBtn3Click(Sender: TObject);
begin
Table2.Active := True;
Table2.Refresh;
OkSaisie.Show;
end;

procedure TBDTH1.QmodifClick(Sender: TObject);
begin
Table2.Active := true;
end;



procedure TBDTH1.RzBitBtn9Click(Sender: TObject);
begin
GBSaisie.Visible := false ;
GBmodifier.Visible:=false;
RechercheTH1.ShowModal;
end;


procedure TBDTH1.RzBitBtn8Click(Sender: TObject);
begin
MenuChoixTH1.ShowModal;
end;





procedure TBDTH1.DBCasierChange(Sender: TObject);
begin
DBCasier.Items.Add('TH1');
DBCasier.Items.Add('TH2');
DBCasier.Items.Add('TH3');
DBCasier.Items.Add('TH4');
DBCasier.Items.Add('TH5');
DBCasier.Items.Add('RH1');
DBCasier.Items.Add('RH2');
DBCasier.Items.Add('RH3');
DBCasier.Items.Add('RH4');
DBCasier.Items.Add('RM1');
DBCasier.Items.Add('RM2');
DBCasier.Items.Add('RM3');
DBCasier.Items.Add('RM4');
DBCasier.Items.Add('RM5');
DBCasier.Items.Add('RM6');
DBCasier.Items.Add('RM7');
DBCasier.Items.Add('RM8');
DBCasier.Items.Add('RM9');
DBCasier.Items.Add('TM1');
DBCasier.Items.Add('TM2');
DBCasier.Items.Add('TM3');
DBCasier.Items.Add('TM4');
DBCasier.Items.Add('RB1');
DBCasier.Items.Add('RB2');
DBCasier.Items.Add('RB3');
DBCasier.Items.Add('TB1');
DBCasier.Items.Add('TB2');
DBCasier.Items.Add('TB3');
DBCasier.Items.Add('CH1');
DBCasier.Items.Add('CH2');
DBCasier.Items.Add('CM1');
DBCasier.Items.Add('CB1');
DBCasier.Items.Add('CB2');
DBCasier.Items.Add('FG1');
DBCasier.Items.Add('FG2');
DBCasier.Items.Add('FG3');
DBCasier.Items.Add('FG4');
DBCasier.Items.Add('FG5');
DBCasier.Items.Add('FG6');
DBCasier.Items.Add('FG7');
DBCasier.Items.Add('FG8');
DBCasier.Items.Add('FG9');
DBCasier.Items.Add('FD1');
DBCasier.Items.Add('FD2');
DBCasier.Items.Add('FD3');
DBCasier.Items.Add('FD4');
DBCasier.Items.Add('FD5');
DBCasier.Items.Add('FD6');
DBCasier.Items.Add('FD7');
DBCasier.Items.Add('FD8');
DBCasier.Items.Add('FD9');
end;

form de selection saisi,modification ou recherche


unit ChoixTH1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RzBckgnd, RzButton;

type
TMenuChoixTH1 = class(TForm)
BoutonSaisie: TRzBitBtn;
BoutonModifier: TRzBitBtn;
BoutonQuiter: TRzBitBtn;
RzBackground1: TRzBackground;
procedure BoutonSaisieClick(Sender: TObject);
procedure BoutonModifierClick(Sender: TObject);
procedure BoutonQuiterClick(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;

var
MenuChoixTH1: TMenuChoixTH1;

implementation

uses TH1;

{$R *.dfm}

procedure TMenuChoixTH1.BoutonModifierClick(Sender: TObject);
begin
BDTH1.ValideModif.Enabled:= true;;
BDTH1.SuprimeFiche.Enabled:=true;
BDTH1.GBSaisie.Visible:=false;
BDTH1.GBModifier.Visible:= true;
//BDTH1.GbModifier.Top:=281;
//BDTH1.GBModifier.Left:=207;
BDTH1.Table2.Active := True;
BDTH1.Table2.Append;
BDTH1.Table2.Refresh;
MenuChoixTh1.close;
end;

procedure TMenuChoixTH1.BoutonQuiterClick(Sender: TObject);
begin
close;
BDTH1.close;
end;

procedure TMenuChoixTH1.BoutonSaisieClick(Sender: TObject);
begin
bdth1.Table2.Active := True;
//bdth1.Table2.Refresh;
bdth1.Table2.Last ;

bdth1.Validesaisie.Enabled:= true;
bdth1.GBSaisie.Visible:= true;
BDTH1.GBModifier.Visible:= false;
bdth1.Table2.Insert ;
bdth1.Table2.Append;

MenuChoixTh1.close;
end;


end.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Dernière intervention
15 décembre 2014
- 23 mars 2012 à 10:59
3
Merci
Salut,

le problème lorsque tu fais ça:
Table2.FieldByName('Quantite').Value := Table2Quantite.Text;
c' est que tu ne vérifies pas que Table2Quantite.Text a une valeur, et si oui, si celle-ci est de même type que le champ.

Le mieux est de faire comme ça pour chaque champ et selon son type:
var VariableEntier: Integer;
begin

...

if Table2Quantite.Text <> '' then
begin
if TryStrToInt(Table2Quantite.Text, VariableEntier) then
Table2.FieldByName('Quantite').AsInteger := variableEntier;
end;

A+


Composants Cindy pour Delphi
Faites une donation.

Merci cs_MAURICIO 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de cs_MAURICIO
Meilleure réponse
Messages postés
96
Date d'inscription
samedi 27 mars 2004
Dernière intervention
14 décembre 2017
- 14 mai 2012 à 17:41
3
Merci
avec un poile de retard merci pour cette solution .

qui va amélioré cette parti.

toute fois mon problème au finale était simplement qu'il acceptait pas de valeur nul!! :-(


merci encore pour votre réponse

amicalement TS

Merci tsainvet 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de tsainvet

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.