Problème d'auto incrémentation sous VB - Access

Problème d'auto incrémentation sous VB - Access - SQL/NoSQL - Programmation

Marsh Posté le 03-06-2003 à 16:35:51    

J'ai lu les précédents message du forum liés au problème d'ajout d'enregistrements dans une base ACCESS lorsque l'identifiant de la table concernée est en auto-incrémantation. (problème INSERT INTO sous VB)
 
La solution pour laquelle j'ai optée est d'écrire une chaine SQL comme suit :
 
SQL = "INSERT INTO PRODUIT (PROD_ID, PROD_LIB, PROD_PRIX, PROD_DESC) VALUES ("
SQL = SQL + "SELECT MAX(PROD_ID) FROM PRODUIT, " & Lib & ", " & prix & " ," & desc & " );"
 
Mais il semblerait que la syntaxe soit mauvaise. Quelqu'un pourrait il m'aider et rectifier le code (je rappelle que je suis sous VB) ? Je bloque dessus depuis pas mal de temps, et ca me soulagerait beaucoup de regler ce problème au plus vite :)
 
Merci d'avance.


Message édité par dzt le 03-06-2003 à 18:33:48
Reply

Marsh Posté le 03-06-2003 à 16:35:51   

Reply

Marsh Posté le 03-06-2003 à 20:43:23    

max(...) + 1
 
et met le sosu select entre ()
 
et le lib entre quotes
et le desc aussi :)
 
et sinon, pour les chaînes à ralonge, il vaut mieu faire :
 

SQL = "bla blab lbabla blab lbabla blab lbabla blab " &_
      "lbabla blab lbabla blab lbabla blab lbabla blab"


 
1) C'est plus lisible
2) C'est plus rapide à l'éxécution, car la concaténation est faite au moment de la compilation et non lors de l'éxécution.


Message édité par MagicBuzz le 03-06-2003 à 20:43:36
Reply

Marsh Posté le 04-06-2003 à 10:10:52    

Hmm.
 
SQL = "bla blab lbabla blab lbabla blab lbabla blab " &_
      "lbabla blab lbabla blab lbabla blab lbabla blab"
 
Alors ca il apprécie trop pas ("erreur de compilation Charactère incorrect" ) :D
 
J'ai changé ma chaine SQL pour :
 
SQL = "INSERT INTO PRODUIT (PROD_ID, PROD_LIB, PROD_PRIX, PROD_DESC) "
SQL = SQL & "VALUES ((SELECT MAX(PROD_ID + 1) FROM PRODUIT), '" & Lib & "', '" & prix & "', '" & desc & "');"
 
Mais ca deconne toujours ("Erreur non reconnue" ).
Sérieux j'vais péter un cable :]

Reply

Marsh Posté le 04-06-2003 à 11:45:44    

il fo un espace entre  & _
;)
bonne chance pour ton pb
essai deja de mettre tout sur une ligne si ca se trouve c une erreur bidon.
Qd ca marche sur une ligne tu le met en plusieurs c tjs comme ca que je fait.


Message édité par Trancy le 04-06-2003 à 11:48:04
Reply

Marsh Posté le 04-06-2003 à 13:50:05    

Trancy a écrit :

il fo un espace entre  & _
;)
bonne chance pour ton pb
essai deja de mettre tout sur une ligne si ca se trouve c une erreur bidon.
Qd ca marche sur une ligne tu le met en plusieurs c tjs comme ca que je fait.


 
+1  
 
Et puis je dirais meme plus, si ca marche sur une ligne, tu le laisses sur une ligne :)

Reply

Marsh Posté le 04-06-2003 à 14:52:18    

Merci messieurs, ca marche ;)

Reply

Marsh Posté le 04-06-2003 à 15:08:45    

Yoyo@ a écrit :


Et puis je dirais meme plus, si ca marche sur une ligne, tu le laisses sur une ligne :)


 
En meme temps c vrai pkoi se casser la tete qd c pour toi tu fait ce que tu veux, mais si jamais y a qqun qui est amener a lire ton code fo absolument faire sur plusieurs ligne c illisible sinon :ouch:  
 
C cool que ca marche now  :wahoo:

Reply

Marsh Posté le 04-06-2003 à 18:20:28    

dzt a écrit :

Hmm.
 
SQL = "bla blab lbabla blab lbabla blab lbabla blab " &_
      "lbabla blab lbabla blab lbabla blab lbabla blab"
 
Alors ca il apprécie trop pas ("erreur de compilation Charactère incorrect" ) :D
 
J'ai changé ma chaine SQL pour :
 
SQL = "INSERT INTO PRODUIT (PROD_ID, PROD_LIB, PROD_PRIX, PROD_DESC) "
SQL = SQL & "VALUES ((SELECT MAX(PROD_ID + 1) FROM PRODUIT), '" & Lib & "', '" & prix & "', '" & desc & "');"
 
Mais ca deconne toujours ("Erreur non reconnue" ).
Sérieux j'vais péter un cable :]


 
max(...) + 1 (le + 1 en dehors)

Reply

Marsh Posté le 04-06-2003 à 18:20:47    

Trancy a écrit :

il fo un espace entre  & _
;)
bonne chance pour ton pb
essai deja de mettre tout sur une ligne si ca se trouve c une erreur bidon.
Qd ca marche sur une ligne tu le met en plusieurs c tjs comme ca que je fait.


vb c'est d'la merde, en asp y'en a pas besoin :)

Reply

Sujets relatifs:

Leave a Replay

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