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 :
Voila le programme:
Code :
Sub Mise_a_jour_places_dispo()
Dim nbre_places_max As Integer 'nombre de palces maxi'
Dim nbre_places_disp As Integer 'nombre de places disponibles'
Dim bd As Database
Dim rqpr1 As String
Dim Tabrqpr1 As Recordset
Set bd = CurrentDb()
'mise a jour des places disponibles'
MsgBox ("Saisissez le nombre de places" )
nbre_places_disp = InputBox("Combien de places voulez vous ?" )
1/ balise [code]
2/ elle est sensée faire quoi ta requete ?
Merci KangOl pour ta reponse ,
ma requete est sensée permettre de mettre à jour le nombre de places disponibles pour chaque séjour en tenant compte des inscriptions effectuées .
Je suis un peu desordonné, enfin ce programme vba que j'ai fais devra normalement me permettre de mettre à jour le nombre de places disponibles pour chaque séjour en tenant compte des inscriptions effectuées, je ne suis meme pas sure qu'il faut mettre une requette sql dans ce programme la,
svp aidez moi je n'en est besoin pour demain matin. Merci
Set Tabrqpr1 = currentdb.createQueryDef("",rqpr1).openrecordset(dbopendynaset)
End Sub
Jusque là ca semble correct globalement, attention au espace entre les sauts de ligne sur ta requête.Mais après je ne comprend pas trop. Est ce que ta requête ne renvoie qu'une seule valeur ? Logiquement tu devrais obtenir une liste de séjour avec des places restantes. Donc soit tu veux un total global, soit une liste par ligne, dans ce cas il faut savoir ou tu veux l'afficher.
Mais d'ors et déjà tu auras besoin de ceci concernant les recordsets.
Code :
Tabrqpr1.close 'fermeture
Tabrqpr1.movefirst ' placage sur le premier élement
Tabrqpr1.EOF ' Fin du recordset
Tabrqpr1.movenext ' enregistrement suivant
Tabrqpr1.addnew ' Nouveau
Tabrqpr1.edit ' modification enregistrement
Tabrqpr1.update ' Validation modification ou création.
Est ce que ta requête ne renvoie qu'une seule valeur ?
Oui ma requete renvoie qu'une seule valeur.
la je vien de retravailler tout mon programme , il là l'aire de marcher mais je ne sais pas s'il remplie bien sa fonction qui est de "permettre de mettre à jour le nombre de places disponibles pour chaque séjour en tenant compte des inscriptions effectuées".
voila le pro :
Code :
Sub Mise_a_jour_places_disp()
Dim nbre_places_max As Integer 'nombre de palces maxi'
Dim nbre_places_disp As Integer 'nombre de places disponibles'
Dim nbre_insc_effec As Integer 'nombre d'inscription effectuer'
Dim bd As Database
Dim rqpr1 As String
Dim Tabrqpr1 As DAO.Recordset
Dim x As String
'mise a jour des places disponibles'
nbre_places_max = InputBox("Saisissez le nombre de places Maxi" )
Do
nbre_insc_effec = InputBox("Combien de places voulez vous ?" )
Ce que je ne comprends pas bien dans ton programme, c'est la logique que tu appliques et les messages box.
Donc si je résume tu as une table séjour contenant un code séjour, nbmax place et nb restant place, N'y a t'il pas un table concernant les reservations ou achat de place ?
Enfin pour tes questions.
Code :
Dim db as database ' inutile ici
Dim rqpr1 As String ' Chaine de caractère pour la constitution de ta requête (supprimable)
Dim Tabrqpr1 As DAO.Recordset ' Recordset consulte aide en ligne.
Set Tabrqpr1 = CurrentDb.CreateQueryDef("", rqpr1).OpenRecordset(dbOpenDynaset)
OpenRecordset permet d'ouvrir un recordset sur une table ou une requête de sélection. Le recordset c'est un peu comme le pointeur (fleche noire) quand tu consultes le contenu de tes tables. Donc ca te permet d'effectuer des traitements sur une table complète.
Dans ton problème il me semble que ca doit servir, puisque une fois que tu as ouvert ce recordset tu devrais parcourir les enregistrements et mettre à jour pour chaque séjour le nombre de places restantes.
Lu je suis nouveau sur ce site et en programmation VBA
J'aimerai savoir comment on enregistre un fichier dans un endroits donner grace a une macro
Merci d'avance
(si ce n'est pas claire dites le, ou si il faut que j'envoi le code dites le aussi )