Access / Entrer des valeurs au format numérique par SQL

Access / Entrer des valeurs au format numérique par SQL - SQL/NoSQL - Programmation

Marsh Posté le 25-06-2010 à 16:35:37    

Bonjour,
 
Je reprends le code d'une autre personne pour y effectuer des ajouts/modifications.
Notamment, dans ce code, des requetes SQL sont rédigées pour permettre l'entrée de grandeur dans un fichier Access.
Mon problème est que ces grandeurs sont entrées dans un format texte et non pas numérique ou scientifique comme je le souhaiterais.
Les grandeurs à rentrer peuvent varier sur plusieurs ordres de grandeurs, ce qui rend intéressant l'entrée d'un format de type scientifique et numérique, bien compris pas access.
 
Est-ce que vous pourriez m'indiquer l'écriture à faire des commandes.
 
Actuellement, j'ai une écriture du type :

Code :
  1. INSERT INTO Table_Resultats(Alpha,Beta,Gamma) values('a', 'b', 'c')


Pour l'entrée de trois variables calculées, a, b et c
 
Comment doit-elle être modifiée pour que les valeurs numériques a,b et c soit considérées, au final, comme des grandeurs numériques dans le fichier résultat Access ?
 
Merci d'avance de votre aide,
 
Nathan

Reply

Marsh Posté le 25-06-2010 à 16:35:37   

Reply

Marsh Posté le 25-06-2010 à 16:57:06    

On peut faire  
INSERT INTO Table_Resultats(Alpha,Beta,Gamma,Delta) values('a', 'b', 'c', 1)
Mais il faut que Delta soit défini avec un type numérique.
 
En résumé, avec SQL, s'il y a des apostrophes, c'est une chaine de caractères. S'il n'y a pas d'apostrophe, c'est un nombre.

Reply

Marsh Posté le 25-06-2010 à 17:01:47    

Pourtant, quand je rentre des valeurs sans apostrophes, je continue à voir des termes de type texte.
 
D'autre part, la solution ne peut pas être aussi simple, car, en pratique, la requete melange des arguments qui doivent être rentré en texte et d'autre en numérique. On a plutot :
 

Code :
  1. INSERT INTO Table_Resultats(Namefile,Alpha,Beta,Gamma) values('NomDuFichier','a', 'b', 'c')


 
Est-ce qu'il est possible d'indiquer à la commande SQL que, spécifiquement, ces trois grandeurs a, b et c doivent être des grandeurs numériques (par un argument, une conversion ...) précédant les valeurs ?
 
Bien cordialement,


Message édité par NathanGe le 25-06-2010 à 17:02:15
Reply

Marsh Posté le 25-06-2010 à 17:06:21    

Si la colonne est définie avec nu type qui n'est pas un type numérique, alors il faut entrer une valeur qui n'est pas numérique. Il faut être cohérent.
 
Ensuite, si la valeur est stockée sous la forme d'une chaine de caractères, ce n'est pas vraiment un problème, car ensuite, on peut la convertir en un nombre si elle contient un nombre.
 
En VBA Access la conversion en un nombre est faite par CInt() ou CDbl().

Reply

Marsh Posté le 25-06-2010 à 17:29:19    

OK,
 
J'ai essayé de faire la conversion CDBl() en tapant :

Code :
  1. INSERT INTO Table_Resultats(Namefile,Alpha,Beta,Gamma) values('NomDuFichier',CDbl(a), CDbl(b), CDbl(c))


En pratique, les données ainsi rentrée ne peuvent toujours pas être correctement triée, par ordre de grandeur (ce qui me semble indiquer qu'elles ne sont pas considérées comme des double). D'autre part, quand je bascule en Mode Création la base de données Table_Resultats ainsi créée, l'ensemble des colonnes restes présentées comme ayant été remplie en mode 'Texte' (comme Type de données insérées dans le document Access). Ainsi, je n'ai pas l'impression qu'Access ait correctement fait ce remplissage.
 
Comment pourrais-je m'en assurer  ? Comment avoir, en mode création, l'indication correcte que le remplissage s'est fait en mode 'Numérique' ?
 
Bien cordialement,
 

Reply

Marsh Posté le 28-06-2010 à 08:12:31    

Il faut change le type des colonnes de mode texte a un mode numerique.
 
Vu que les colonnes sont en mode text pour le moment, Access convertit tout en texte, meme si tu lui dit que c'est du numerique.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed