|
| insert date dans bdd *.mdb |
| Iniciado por Stéphane D., 07,ago. 2019 15:15 - 3 respuestas |
| |
| | | |
|
| |
Miembro registrado 230 mensajes |
|
| Publicado el 07,agosto 2019 - 15:15 |
Bonjour à tous, Je veux faire un simple insert dans une table mdb mais sa plante, Voici le code :
madate est une Date = Gauche(DateSys(),8)
Reqtxt=[ INSERT INTO PC ( CODE ,LIBELLE ,DATE )VALUES ('%1','%2','%3') ]
Reqtxt = ChaîneConstruit(Reqtxt,"00420", "Mon new article",madate)
SI PAS HExécuteRequêteSQL(Reqsql,cnxAccess,hRequêteSansCorrection,Reqtxt) ALORS Erreur(HErreurInfo()) FinProgramme() FIN Elle fait un insert parfait quand je ne lui mets pas de rubrique DATE, par contre si j'ajoute la rubrique DATE sa plante et me donne ce message : Erreur de syntaxe dans l'instruction INSERT INTO. Si quelqu'un aurait une idée pour le format de la date... Merci d'avance.
-- Stéphane. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.361 mensajes |
|
| Publicado el 07,agosto 2019 - 15:39 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 512 mensajes |
|
| Publicado el 07,agosto 2019 - 18:51 |
Bonjour,
En préambule, le nom d'une rubrique dans une table MS Access ne doit pas être un mot-clé (réservé) parce que l'analyseur du code SQL de MS Access provoque une erreur. Ou alors dans le SQL, il faut "protéger" ce nom de rubrique en l'encadrant avec des crochets pour informer l'analyseur qu'il ne s'agit pas d'un mot-clé. Ici, le nom de la rubrique DATE va provoquer une erreur de syntaxe, sauf si on protège ce nom de rubrique.
Et maintenant le format de date... Comme il s'agit d'une requête sans correction (hRequêteSansCorrection) il faut respecter scrupuleusement le format de date de MS Access.
Le délimiteur de date est le caractère # . Il ne faut pas utiliser le caractère simple quote (c'est-à-dire l'apostrophe). Le séparateur des composantes de la date est / ou - . L'ordre des composantes de la date est : Mois Jour Année
Exemple de date littérale valide pour le SQL de MS Access, ici le 14 juillet 2019 : #7/14/2019#
Voilà une proposition de correction du code:
madate est une Date = DateSys()
Reqtxt est une chaîne = [ INSERT INTO PC ( CODE, LIBELLE, [DATE] ) VALUES ( '%1', '%2', #%3# ) ]
Reqtxt = ChaîneConstruit(Reqtxt,"00420", "Mon new article",DateVersChaîne(madate,"MM/JJ/AAAA"))
L'évaluateur d'expression SQL de MS Access accepte aussi un certain nombre de fonctions VBA. Par exemple, la fonction Date() retourne la date système. C'est possible de l'utiliser en lieu et place du 3ème paramètre.
Reqtxt est une chaîne = [ INSERT INTO PC ( CODE, LIBELLE, [DATE] ) VALUES ( '%1', '%2', Date() ) ]
Reqtxt = ChaîneConstruit(Reqtxt,"00420", "Mon new article")

-- Pour me contacter par courrier électronique, cliquez sur le lien ci-dessous (protection antispam): http://cerbermail.com/…Mensaje modificado, 07,agosto 2019 - 18:56 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 230 mensajes |
|
| Publicado el 07,agosto 2019 - 23:24 |
Salut à vous et merci pour votre réponse. =JBO= C'est bien cela le mot DATE et réservé donc en mettant [DATE] sa passe nickel...
Merci encore pour votre aide.
-- Stéphane. |
| |
| |
| | | |
|
| | | | |
| | |
|