Probleme avec un module VBA

Probleme avec un module VBA - VB/VBA/VBS - Programmation

Marsh Posté le 23-05-2007 à 21:06:23    

Bonjour
Je vien de faire ce programme en VBA sur acces mais il y’a un petit problème.
Est-ce que vous pouvez m’aider à le résoudre ?
Svp j’en ai besoin pour demain
Merci d’avance  
Il y’a ce message qui s’affiche : http://www.enregistrersous.com/images/64611109320070523211139.jpg
 
Voila le programme:

Code :
  1. Sub Mise_a_jour_places_dispo()
  2. Dim nbre_places_max As Integer 'nombre de palces maxi'
  3. Dim nbre_places_disp As Integer 'nombre de places disponibles'
  4. Dim bd As Database
  5. Dim rqpr1 As String
  6. Dim Tabrqpr1 As Recordset
  7. Set bd = CurrentDb()
  8. 'mise a jour des places disponibles'
  9. MsgBox ("Saisissez le nombre de places" )
  10. nbre_places_disp = InputBox("Combien de places voulez vous ?" )
  11. rqpr1 = "SELECT UPDATE SEJOURS.code_sejour, nbre_places_max, nbre_places_disp" & _
  12. "FROM SEJOURS" & _
  13. "ORDER BY nbre_places_disp"
  14.  
  15.   MsgBox rqpr1
  16. Set Tabrqpr1 = bd.OpenRecordset(rqpr1)
  17. nbre_places_disp = nbre_places_max - nbre_places_disp
  18. MsgBox ("Le nombre de place disponible est de" & nbre_places_disp)
  19. End Sub


Message édité par shuin le 23-05-2007 à 22:46:43
Reply

Marsh Posté le 23-05-2007 à 21:06:23   

Reply

Marsh Posté le 23-05-2007 à 22:08:13    

L'erreur est classique. Des morceaux de chaines de caractères sont concaténés mais il manque des espaces entre eux, ce qui fait que, par exemple "FROM" se retrouve collé à "disp" pour former "...dispFROM...", et il en est de même pour "...SEJOURSORDER....".
 
Edit : En plus il y a à la fois SELECT et UPDATE !


Message édité par olivthill le 23-05-2007 à 22:09:50
Reply

Marsh Posté le 23-05-2007 à 23:16:11    

Est que vous pouvez corriger ma requete svp ?

Reply

Marsh Posté le 24-05-2007 à 07:54:19    

Elle doit faire quoi ta requete ?

Reply

Marsh Posté le 24-05-2007 à 09:22:26    

La syntaxe d'une requete UPDATE doit être de la forme :
UPDATE <table> SET <champ1> = <valeur1>, <champ2> = <valeur2>

Reply

Marsh Posté le 25-05-2007 à 00:36:31    

tegu a écrit :

La syntaxe d'une requete UPDATE doit être de la forme :
UPDATE <table> SET <champ1> = <valeur1>, <champ2> = <valeur2>


 
Est ce qu'il faut faire comme sa ?
 
UPDATE SEJOURS SET code_sejour, nbre_places_max, nbre_places_disp


Message édité par shuin le 25-05-2007 à 00:42:49
Reply

Marsh Posté le 25-05-2007 à 16:28:09    

Il te manque les valeurs.
Quand tu fais une requete UPDATE tu remplaces la valeur existante par une nouvelle :
À titre d'exemple :
UPDATE SEJOURS SET code_sejour=25, nbre_places_max=20, nbre_places_disp=500

 

Bien sûr si un champ est de type caractère alors il faut mettre des guillemets à tes valeurs.
Tu peux aussi utiliser un calcul basé sur d'autres champs pour la mise à jour.
Exemple au hasard (avec age comme champ existant bien sûr):
UPDATE SEJOURS SET nbre_places_max = age * 10, nbre_places_disp = 20

Message cité 1 fois
Message édité par tegu le 25-05-2007 à 16:28:44
Reply

Marsh Posté le 26-05-2007 à 00:19:37    

tegu a écrit :

Il te manque les valeurs.
Quand tu fais une requete UPDATE tu remplaces la valeur existante par une nouvelle :
À titre d'exemple :
UPDATE SEJOURS SET code_sejour=25, nbre_places_max=20, nbre_places_disp=500
 
Bien sûr si un champ est de type caractère alors il faut mettre des guillemets à tes valeurs.
Tu peux aussi utiliser un calcul basé sur d'autres champs pour la mise à jour.  
Exemple au hasard (avec age comme champ existant bien sûr):  
UPDATE SEJOURS SET nbre_places_max = age * 10, nbre_places_disp = 20


 
Ah ok merci Maitre

Reply

Sujets relatifs:

Leave a Replay

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