begin process at 2010 02 10 04:35:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Base de données

 > 

Access

 > 

Pb de typage avec DataSet.insert()


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb de typage avec DataSet.insert()

jeudi 30 novembre 2006 à 14:30:54 | Pb de typage avec DataSet.insert()

louiso13

Bonjour à tous (C'est mon premier post ici),

Alors voilà, ca fait 2 jours que je bloque sur une bétise :

Je développe sous Visual Basic 2005 Express et Access 2002, une petite appli de gestion de stock toute bête. Je parviens à insérer des enregistrement dans ma table 'code' contenant la liste des différents code des produits que rencence mon application. Pour ca, j'ai fais un petit form dans lequel on saisi un code identifiant, une désignation et un prix. Tout se comporte très bien tant qu'on ne saisit pas de nombre avec une partie décimale dans la textbox 'prix'. Si on saisi un nombre qui n'est pas un entier j'obtient le message : "Type de données incompatible dans l'expression du critère".

Pourtant ce champ est bien déclaré en double côté access, j'ai même essayé tous les types numériques que propose Access, mais rien à faire, le moteur JET d'access lève toujour cette exception lorsque j'insère une valeur décimale.

Voici mon appel à la méthode insert() :

Try
            CodeTableAdapter.Insert( "D06" _
                                                    , tabCodetxtDescription.Text _
                                                    , CType(tabCodeTxtPrixEstime.Text, Double))
Catch ex As Exception
            MsgBox(ex.Message)
            Exit Sub
End Try

Notez bien que ca marche au poil quand 'tabCodeTxtPrixEstime' contient une valeur entière et même lorqu'elle contient une valeur du type: 12,00.
Y a-t-il un format spécial pour le passage d'argument de type double?
Je vous en supplie AIDEZ-MOI, je suis sur cette bêtise depuis 2 jours!!

Merci d'avance.
vendredi 1 décembre 2006 à 16:39:21 | Re : Pb de typage avec DataSet.insert()

nbaduraux

Membre Club

1. Assures toi du type de ta colonne dans Access :
    Type de données = numérique
    Taille du champs = Réel simple ou Réel double (et non entier ...)
    Ajoutes 2 ou 3 en nombre de décimales pour être sur.

2. Es-tu sur de la conversion de ta chaine tabCodeTxtPrixEstime.Text en double ?
    Si tu ne précises rien, le séparateur doit etre une virgule et non un point
    (le point génèrera une erreur.)
    Tu peux ajouter un Replace pour forcer la virgule :
     CType(tabCodeTxtPrixEstime.Text.Replace(".", ","), Double)

3. Si ces points ne règlent rien : quel est l'objet CodeTableAdapter que tu utilises dans ton exemple et surtout la définition de ta méthode Insert ?

mardi 5 décembre 2006 à 17:33:24 | Re : Pb de typage avec DataSet.insert()

louiso13

Merci pour ta réponse nbaduraux,

j'ai déjà vérifié tout ce qui serait succeptible de lever une erreur avec ce message (genre type des colonnes, variables que je passe à insert() ) mais ca ne règle rien. La variable passée est bien un double, le séparateur qu'il soit point ou virgule n'y change rien.
J'ai bien re-testé, en particulier tes points 1 et 2 mais le problème persiste.

Mon CodeTableAdapter est un tableAdapter lié à mon BaseDataSet, qui me permet d'effectuer des actions de modifications ou de consultation sur ma table code. Comme je débute sur Visual Basic 2005, j'ai l'impression de dire un truc débile et évident mais cela répond-il a ta question?
En ce qui concerne la méthode insert(), elle a été auto-générée avec le tableAdapter et je ne sais pas comment voir/modifier sa définition.

Merci pour le temps que tu me consacre.


mardi 5 décembre 2006 à 19:33:43 | Re : Pb de typage avec DataSet.insert()

nbaduraux

Membre Club
Le problème réside probablement dans cette fonction alors, mais là, je ne peux pas t'aider. Je n'utilises pas les assistants et autre dataset typés car je préfère maitriser les accès aux données. Désolée. 
vendredi 8 décembre 2006 à 14:35:38 | Re : Pb de typage avec DataSet.insert()

Bedoui19773

Salut J'ai un probleme (Erreur N°3201) Dans le code suivant si vous pouvez m'aider merci Private Sub Enregistrement_Click() Dim bds As DAO.Database, rst As DAO.Recordset Set bds = CurrentDb Set rst = bds.OpenRecordset("T_MVT", DB_OPEN_TABLE) With rst .AddNew ![CodeMVT] = Me![Code MVT] ' Ajoute les données. ![Code32FC] = Me![Code32FC] ![CodeMois] = Me![CodeMois] ![CodeRegion] = Me![CodeRegion] ![MontantMois] = Me![Texte47] ![Rectifs] = Me![Texte45] If MsgBox("Enregistrer ces modifications?", vbYesNo) = vbNo Then rst.CancelUpdate Else rst.Update End If End With bds.Close Texte10.Value = "" CodeCRA.Value = "" Code32FC.Value = "" CodeMois.Value = "" CodeRegion.Value = "" Texte29.Value = "" Texte13.Value = "" Texte15.Value = "" Texte47.Value = "" Texte45.Value = "0,000" End Sub


Cette discussion est classée dans : access, insert, code, type, double


Répondre à ce message

Sujets en rapport avec ce message

Optimisation de code [ par cuq ] Question sur l'optimisation du code (au niveau vitesse de traitement)J'utilise beaucoup de notation pour des points 3D'---------------------' Point en [sql]insert into en access. [ par developvbdebut ] bonsoir tout le mondeJe cherche à inserer des des données dans une table via ine requet insert intovoici le code:Dim sql As String  sql = "insert into Replication Access2007 [ par DanielB3 ] Pourquoi ce code qui fonctionne sous access 2003 me renvoie "Erreur 3251" sous Access 2007? Code incriminé:  Dim dbsTemp As Database     Set dbsTemp = ADO : Access protégé par un code, string de connection [ par narfight ] Bonjout,Je n'arrive pas à me connecter a un fichier Access 2007 (ou 97 de toute façon) avec VB2008 Express car il me retourne cette erreur : Request f vb et access [ par lilouhama ] je débude en vb et pour ma boite je fais appel à vous car mon seul espoir j'ai besoin de votre aide. en fait je dois créer un code vb permettant d'imp Requête Paramétrée sous Access en vb.net [ par Petiote ] Bonjour, Voilà mon problème. J'ai une requête sous Access qui a besoin de 2 paramètres (an et ancalcul) pour être exécutée. Le truc c'est que je ne pe Erreur Access VBA [ par Klums ] BonjourJ'ai récupéré un code pour extraire un graphique vers une image jpg.Le problème, il suffit que le code ai été exécuté une fois, pour que :- lor Base de données Access avec lecteur code barre [ par charrison59 ] Bonjour,J'ai fait une base de données Access pour un club d'arts martiaux. Lors des stages, il arrive fréquemment que l'on ne puisse avoir le nombre e besion d'aide [ par hayouta87 ] slt j'ai un blem avec access en effet je sais pa comment lier le code vb avec access,j ecri le code vb mai je sais pa comment procede VisualBasic Script [ par ilSPARTIATEli ] Bien le bonjour, voila je ne connais que très peu le bvs, et je recherche du code qui peut me permetre de me connecter a une base de donnée Access et


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,678 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales