|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre Expert
![]() Hervé Agent Technique Inscription : mars 2009 Messages : 823 ![]() |
Bonjour,
je rencontre un problème avec une requête sql insert to. Le but de cette requête est d'ajouter une ligne dans un tableau d'un classeur fermé. Après avoir consulter le tutos sur les classeurs fermés, j'ai écrit mon code. voici mon problème: cas n°1: Lorsque je fait ma requête comme ceci: Code :
texte_SQL = "INSERT INTO [" & NomFeuille & "$] " & "VALUES ('" & numdemande & "', '" & date1 & "', '" & nom1 & "', '" & etbls & "', '" & lieu & "', " & "'" & domaine & "', '" & typeprob & "', '" & descrip & "', '', '', '', '')" Code :
INSERT INTO [Bd$] VALUES ('2011-0120', '19/09/2011', 'Sélection du nom...', 'Etablissement...', 'Pièces...', 'Catégorie...', 'Type de problème...', '', '', '', '', '') cas n°2: Maintenant lorsque je fais ceci: Code :
texte_SQL = "INSERT INTO [" & NomFeuille & "$] " & "VALUES ('" & numdemande & "', #" & date1 & "#, '" & nom1 & "', '" & etbls & "', '" & lieu & "', " & "'" & domaine & "', '" & typeprob & "', '" & descrip & "', '', '', '', '')" Code :
INSERT INTO [Bd$] VALUES ('2011-0120', #19/09/2011#, 'Sélection du nom...', 'Etablissement...', 'Pièces...', 'Catégorie...', 'Type de problème...', '', '', '', '', '') Pour les 2 cas l'erreur est la même : "Erreur d'éxécution '-2147217913(8004e07)': Type de données incompatible dans l'expression du critère." J'ai mis les champs vides à la fin pour respecter le nombre de champ. Dans ma table j'ai 12 champs les quatres derniers seront remplis par une requête update par un autre utilisateur. Est-ce que j'ai loupé quelques choses? Est-ce une erreur de syntaxe? Merci de votre aide EDIT: Il me semble utile de mettre le code complet : Code :
__________________
@+Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.Ou sur si ce n'est pas le cas |
||
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Il se peut que ce soit l'une des facéties de Jet
![]() En fait, même si tu peux spécifier le format date régional que tu utilises, Jet n'accepte que le format américain en # MM/DD/YYYY #. Je l'avais lu dans l'aide Access mais je ne retrouve plus l'article en question. Un site sérieux qui en parle: http://allenbrowne.com/ser-36.html Si ça ne fonctionne toujours pas, tu peux essayer de "l'insérer" comme un 'double' et de définir le format de la colonne sous Excel en 'date', la conversion ne devrait pas poser de problème. |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Hervé Agent Technique Inscription : mars 2009 Messages : 823 ![]() |
Merci Sclarckone,
mais même en formatant la date avec comme ceci "mm/dd/yyyy" cela ne fonctionnait pas. Après quelques essais sur un fichier test je me suis rendu compte que mes requêtes, aussi bien l'une que l'autre fonctionnait très bien lorsque les cellules du tableau n'étaient pas formatées en Date.Ce n'est donc pas un problème de syntaxe. J'ai donc formaté mes cellules aux format Texte et tout fonctionne à merveille. Si quelqu'un à une explication je suis curieux de savoir pourquoi.
__________________
@+Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.Ou sur si ce n'est pas le cas |
|
|
00
|
|
|
#4 | |||
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Citation:
Tu le sais probablement déjà mais le format date/heure n'existe pas en tant que tel. Les dates sont en fait stockées sous forme de Double dont la partie entière représente le nombre de jour, et la partie décimale le nombre d'heures, minutes, secondes en "fraction de jour". L'origine est prise au 01/01/1900 à 00h00m00s. Donc si tu déclares que ta cellule Excel est au format date, tu ne peux pas rentrer la date sous sa valeur littérale dd/mm/yyyy. Je sais que cela fonctionne quand on le fait à la main mais il doit y avoir une conversion implicitement faite par Excel. J'en veux pour preuve ce que donne l'enregistreur de macro lorsque je rentre à la main le 05/06/2011 dans une cellule préalablement formatée en date/heure: Code :
Ceci dit, je pensais qu'en utilisant les tags '#' spécifiques au format date d'Access, la conversion en 'double' serait implicitement faite et que l'on pourrait alimenter des cellules Excel au format 'date'. Mais ce n'est apparemment pas le cas...l'utilisation de Jet pour les classeurs Excel a donc des limites facilement franchissables! |
|||
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Hervé Agent Technique Inscription : mars 2009 Messages : 823 ![]() |
Merci pour tes explications
__________________
@+Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.Ou sur si ce n'est pas le cas |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com