Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/05/2011, 11h33   #1
Nouveau Membre du Club
 
stephane laurent
Inscription : janvier 2011
Messages : 81
Détails du profil
Informations personnelles :
Nom : stephane laurent

Informations forums :
Inscription : janvier 2011
Messages : 81
Points : 31
Points : 31
Par défaut modification de la valeur d'un champs

Bonjour,


Je suis encore bien débutant sur access et je bloque pour modifier la valeur d'un champs.

J'ai une table avec un champs [rappel] au format date.

Dans mon formulaire, je voudrais à partir d'un bouton, faire afficher :

--> une boite de dialogue permettant d'indiquer une date, (par ex : 31/12/11)

--> puis une seconde boite de dialogue demandant d'indiquer une nouvelle date, (par ex: 30/06/2012).

--> En validant toutes les dates selectionnées se changeront en une nouvelle date.

Je ne sais pas si c'est possible, mais si ca l'est, quelqu'un pourrait il m'aider

cordialement
Stéphane
ronin.01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 11h50   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bonjour,

Ta demande n'est pas claire.

J'ai compris que dans une table, tu as un champ qui contient une date et que tu voudrais "automatiser" le changement de la valeur de cette date (donc même nouvelle date pour tous les enregistrements).

Est-ce correct ?


Tu voudrais un processus qui, dans un formulaire,

- d'abord t'affiche une date (31/12/11) : d'où vient-elle ?
- Ensuite t'affiche une autre date (30/06/2012) : d'où vient-elle ?
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 12h09   #3
Nouveau Membre du Club
 
stephane laurent
Inscription : janvier 2011
Messages : 81
Détails du profil
Informations personnelles :
Nom : stephane laurent

Informations forums :
Inscription : janvier 2011
Messages : 81
Points : 31
Points : 31
Par défaut [AC-2007] modification de la valeur d'un champs

bonjour, et merci de vous penchez sur ma demande.

Je vais essayer d'être plus clair.

J'ai un fourmulaire en continu qui contient une date de rappel qui changent au gré des enregistrements. Un certain nombre d'enregistrements ont la date du 31/12/2011.

Donc en fin d'année je voudrais transformer les enregistrements qui ont la date du 31/12/2011 sur le champs rappel en 31/12/2012 par exemple et ainsi de suite.... c'est pour cette raison que je voulais passer par des boites de dialogues pour selectionner la date à corriger et pour rentrer la nouvelle date

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Commande53_Click()
 
'on va insérer une boite de dialogue afin de selectionner une date
 
Dim ctl As Control, str As String
 
str = InputBox("Entrez la date à modifier (par ex: 01/01/2011) : ")
 
'si la date  n'est pas dans la série un message d'erreur est renvoyé
 
If DCount("*", "TT_suivi", "daterappel=" & str) = 0 Then
MsgBox ("Cette date n'existe pas")
Else
 
Set ctl = Me.ActiveControl
j'avais commencé par ce bout de code, mais déja là je bloque car il m'affiche toujours "cette date n'existe pas"

J'espère avoir été plus clair
Cordialement
Stéphane
ronin.01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 14h23   #4
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Tu pourrais, par exemple, t’y prendre comme ceci :


1. Dans une zone de liste, tu fais apparaître toutes les dates de rappel qui sont présentes dans la table.
2. Lorsque l’utilisateur choisit une date, la source du formulaire est modifiée de manière à afficher tous les enregistrements concernés ---> cela te permet de vérifier.
3. Tu devrais prévoir dans la table, un champ (Oui/Non) qui serait positionné à Oui et que tu pourrais basculer éventuellement à Non.
4. Dans un autre champ du formulaire, une date s’affiche (par exemple la date choisie + 6 mois) ---> c’est la nouvelle date de rappel que tu voudrais substituer à l’ancienne, pour les enregistrements qui ont « Oui ». Possibilité de modifier cette date « à la main », si nécessaire.
5. Un bouton te permet de commander la mise à jour des enregistrements qui ont telle date actuelle et qui sont marqués Oui.
Le nombre d’enregistrements modifiés s’affiche alors dans un champ de ton formulaire.

Si cela te convient comme mode de fonctionnement, dis à quel endroit tu coinces.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 15h54   #5
Nouveau Membre du Club
 
stephane laurent
Inscription : janvier 2011
Messages : 81
Détails du profil
Informations personnelles :
Nom : stephane laurent

Informations forums :
Inscription : janvier 2011
Messages : 81
Points : 31
Points : 31
Par défaut [AC-2007] modification de la valeur d'un champs

Tout d'abord merci d'avoir passé du temps pour m'aider à résoudre mon problème.

Etant débutant, je ne sais pas si j'arriverai à faire toute la procédure, et surtout il faut que ca soit tres simple pour l'utilisateur final, c'est pour ca que je pensais aux boites de dialogues. je vais étudier ca ce soir.

Il y a une autre possibilité, c'est d'utiliser la fonction Recherchre/Remplacer du ruban. Cependant comme je déploie l'application avec le runtime 2007, il faut que je creer le module recherche. J'ai déja le module Imprimer que j'ai pu obtenir grâce à l'aide d'un membre du forum, mais comme toujours n'étant pas un pro d'access je coince aussi. Sais tu comment l'intégrer ?

Cordialement
Stéphane
ronin.01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 16h12   #6
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Citation:
et surtout il faut que ça soit très simple pour l'utilisateur final
Ce que je te propose n'est pas en contradiction avec celà !


Citation:
fonction Recherchre/Remplacer du ruban
J'ai Access2000... qui me suffit.



Citation:
Etant débutant, je ne sais pas si j'arriverai à faire toute la procédure

Si tu postes une Bdd compatible Access2000 qui nous servirait d'exemple, je t'aiderai volontiers.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 17h26   #7
Invité régulier
 
Térence
Inscription : décembre 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Térence

Informations forums :
Inscription : décembre 2010
Messages : 10
Points : 8
Points : 8
Salut,

Je pense qu'il faut mettre des # autour de la date cherchée.

Voici un bout de code qui fonctionne chez moi :

Code :
1
2
3
4
5
6
7
8
9
Sub test()
 
Dim X As Date
 
X = InputBox("Date ?")
 
Debug.Print DCount("[Champ]", "[Table]", "[Champ] = #" & X & "#")
 
End Sub
Tete1805 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 18h04   #8
Invité régulier
 
Térence
Inscription : décembre 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Térence

Informations forums :
Inscription : décembre 2010
Messages : 10
Points : 8
Points : 8
Sinon, pour le reste, il y a assez simple avec RunSQL :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
Sub ChangeDate()
 
Dim oRst As DAO.Recordset
Dim OldDate, NewDate As Date
 
OldDate = CDate("29/05/2011")
NewDate = CDate("30/05/2011")
 
DoCmd.RunSQL ("UPDATE [Table] SET [Date] = #" & NewDate & _
"# WHERE ([Date] = #" & OldDate & "#);")
 
End Sub
Cordialement,
Térence
Tete1805 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 11h05   #9
Nouveau Membre du Club
 
stephane laurent
Inscription : janvier 2011
Messages : 81
Détails du profil
Informations personnelles :
Nom : stephane laurent

Informations forums :
Inscription : janvier 2011
Messages : 81
Points : 31
Points : 31
Par défaut [AC-2007] modification de la valeur d'un champs

bonjour,

Merci pour vos réponses, j'ai travaillé sur vos propostitions mais comme je n'y connais pas grand choses je n'ai pas abouti.

Aussi j'ai trouvé une autre solution gràce au forum est surtout au tutoriel sur l'assistant ruban de Thierry GASPERMENT.

J'ai donc créer un ruban qui se charge quand je déploie l'application sur les postes qui n'ont pas access et j'ai intégrer le module RECHERCHER/REMPLACER.


Merci de votre aide
Cordialement
Stéphane.
ronin.01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h34.


 
 
 
 
Partenaires

Hébergement Web