Lancer une requête sous condition

Le
crcam.lemans
Bonjour,
Voici mon problème :
J'ai un contrôle avec une date. Sur ce contrôle, j'ai affecté une macro qui
doit exécuter une requête sous
condition :

- si la date est < 15/3/2006, lancement requête action 1 (ouvrir requête)
- si la date est comprise entre 15/3/06 au 31/8/06, lancement requête action
2
- si la date est >= au 1/9/06, lancement requête action 3

Le problème est que la macro ne se déclenche que pour les dates <15/3/06.
Pour les autres dates, il ne se passe rien.

Je pense qu'il faut en passer par le VBA, mais je ne connais que VBA sous
excel.

Pouvez-vous m'aider soit en améliorant ma macro, soit en VBA.

Merci.
Jocelyne
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry (ze Titi)
Le #6293151
Bonjour Jocelyne,

On veut bien tout ce que tu veux, même modifier ta macro. Encore
aurait-il fallu que nous l'eussions... ;-)
En VBA, ça donnerait, dans l'évènement "après mise à jour" du contrôle:

If leContrôle.Value<CDate("15/03/2006") Then
Docmd.OpenQuery "requête action 1"
ElseIf leContrôle.Value<Íate("31/08/2006") Then
Docmd.OpenQuery "requête action 2"
Else
DoCmd.OpenQuery "requête action 3"
End If


Dans ton message
Bonjour,
Voici mon problème :
J'ai un contrôle avec une date. Sur ce contrôle, j'ai affecté une macro qui
doit exécuter une requête sous
condition :

- si la date est < 15/3/2006, lancement requête action 1 (ouvrir requête)
- si la date est comprise entre 15/3/06 au 31/8/06, lancement requête action
2
- si la date est >= au 1/9/06, lancement requête action 3

Le problème est que la macro ne se déclenche que pour les dates <15/3/06.
Pour les autres dates, il ne se passe rien.

Je pense qu'il faut en passer par le VBA, mais je ne connais que VBA sous
excel.

Pouvez-vous m'aider soit en améliorant ma macro, soit en VBA.

Merci.
Jocelyne


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info

crcam.lemans
Le #6292931
Merci pour l'info.
Je vais continuer sur VBA - J'ai un problème de fonctionnement lorsque
la date rencontrée se retrouve dans la même condition deux fois de suite. Le
message
d'erreur suivant s'affiche :
Erreur d'exécution '3211' : Le moteur de base de données n'a pas pu
verrouiller la table
"Tarif GHS en vigueur" car elle est déjà utilisée par une autre personne ou
un autre processus".

Là, je bloque à nouveau ???

Je vais essayer de donner quelques explications :

Les 3 requêtes créé une table à structure identique "tarif GHS en vigueur"
qui alimente d'autres contrôles dont un avec liste déroulante.
Seuls les tarifs changent.

Info supplémentaire : j'ai utilisé l'événement "sur entrée", la date étant
alimentée au préalable
par l'importation d'une table. "après mise à jour" devenait inopérant.

Merci pour votre aide.
Jocelyne

"crcam.lemans" %
Bonjour,
Voici mon problème :
J'ai un contrôle avec une date. Sur ce contrôle, j'ai affecté une macro
qui doit exécuter une requête sous
condition :

- si la date est < 15/3/2006, lancement requête action 1 (ouvrir requête)
- si la date est comprise entre 15/3/06 au 31/8/06, lancement requête
action 2
- si la date est >= au 1/9/06, lancement requête action 3

Le problème est que la macro ne se déclenche que pour les dates <15/3/06.
Pour les autres dates, il ne se passe rien.

Je pense qu'il faut en passer par le VBA, mais je ne connais que VBA sous
excel.

Pouvez-vous m'aider soit en améliorant ma macro, soit en VBA.

Merci.
Jocelyne





Thierry (ze Titi)
Le #6292771
Rectification...

Dim qry as QueryDef
If leContrôle.Value<CDate("15/03/2006") Then
set qry=CurrentDb.Querydefs("Requête action 1")
qry.Execute
ElseIf leContrôle.Value<Íate("31/08/2006") Then
set qry=CurrentDb.Querydefs("Requête action 2")
qry.Execute
Else
set qry=CurrentDb.Querydefs("Requête action 3")
qry.Execute
End If
set qry=nothing

En ce jour mémorable du mardi 10/07/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Merci pour l'info.
Je vais continuer sur VBA - J'ai un problème de fonctionnement lorsque
la date rencontrée se retrouve dans la même condition deux fois de suite. Le
message
d'erreur suivant s'affiche :
Erreur d'exécution '3211' : Le moteur de base de données n'a pas pu
verrouiller la table
"Tarif GHS en vigueur" car elle est déjà utilisée par une autre personne ou
un autre processus".

Là, je bloque à nouveau ???

Je vais essayer de donner quelques explications :

Les 3 requêtes créé une table à structure identique "tarif GHS en vigueur"
qui alimente d'autres contrôles dont un avec liste déroulante.
Seuls les tarifs changent.

Info supplémentaire : j'ai utilisé l'événement "sur entrée", la date étant
alimentée au préalable
par l'importation d'une table. "après mise à jour" devenait inopérant.

Merci pour votre aide.
Jocelyne

"crcam.lemans" %
Bonjour,
Voici mon problème :
J'ai un contrôle avec une date. Sur ce contrôle, j'ai affecté une macro qui
doit exécuter une requête sous
condition :

- si la date est < 15/3/2006, lancement requête action 1 (ouvrir requête)
- si la date est comprise entre 15/3/06 au 31/8/06, lancement requête
action 2
- si la date est >= au 1/9/06, lancement requête action 3

Le problème est que la macro ne se déclenche que pour les dates <15/3/06.
Pour les autres dates, il ne se passe rien.

Je pense qu'il faut en passer par le VBA, mais je ne connais que VBA sous
excel.

Pouvez-vous m'aider soit en améliorant ma macro, soit en VBA.

Merci.
Jocelyne






--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info


crcam.lemans
Le #6308011
Merci pour tout. J'avance mais à petits pas.

D'une requête création de table, j'ai changé de stratégie. J'effectue une
requête suppression
sans condition puis une requête ajout avec condition.

Les deux syntaxes fonctionnent . A noter que querydef a provoqué un message
d'erreur (type non défini).
J'ai résolu le problème en passant par outils - références - activer
microsoft DAO 3.6...

Cependant, un autre problème est apparu que je vais exposer dans le message
#supprimé après mise à jour table

Jocelyne
"Thierry (ze Titi)" message de news:
Rectification...

Dim qry as QueryDef
If leContrôle.Value<CDate("15/03/2006") Then
set qry=CurrentDb.Querydefs("Requête action 1")
qry.Execute
ElseIf leContrôle.Value<Íate("31/08/2006") Then
set qry=CurrentDb.Querydefs("Requête action 2")
qry.Execute
Else
set qry=CurrentDb.Querydefs("Requête action 3")
qry.Execute
End If
set qry=nothing

En ce jour mémorable du mardi 10/07/2007, tu as entrepris la lourde tâche
de taper sur ton clavier :
Merci pour l'info.
Je vais continuer sur VBA - J'ai un problème de fonctionnement lorsque
la date rencontrée se retrouve dans la même condition deux fois de suite.
Le
message
d'erreur suivant s'affiche :
Erreur d'exécution '3211' : Le moteur de base de données n'a pas pu
verrouiller la table
"Tarif GHS en vigueur" car elle est déjà utilisée par une autre personne
ou
un autre processus".

Là, je bloque à nouveau ???

Je vais essayer de donner quelques explications :

Les 3 requêtes créé une table à structure identique "tarif GHS en
vigueur"
qui alimente d'autres contrôles dont un avec liste déroulante.
Seuls les tarifs changent.

Info supplémentaire : j'ai utilisé l'événement "sur entrée", la date
étant
alimentée au préalable
par l'importation d'une table. "après mise à jour" devenait inopérant.

Merci pour votre aide.
Jocelyne

"crcam.lemans" %
Bonjour,
Voici mon problème :
J'ai un contrôle avec une date. Sur ce contrôle, j'ai affecté une macro
qui doit exécuter une requête sous
condition :

- si la date est < 15/3/2006, lancement requête action 1 (ouvrir
requête)
- si la date est comprise entre 15/3/06 au 31/8/06, lancement requête
action 2
- si la date est >= au 1/9/06, lancement requête action 3

Le problème est que la macro ne se déclenche que pour les dates
<15/3/06. Pour les autres dates, il ne se passe rien.

Je pense qu'il faut en passer par le VBA, mais je ne connais que VBA
sous excel.

Pouvez-vous m'aider soit en améliorant ma macro, soit en VBA.

Merci.
Jocelyne






--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info






Thierry (ze Titi)
Le #6307961
Excellente(s) initiative(s) !

En ce jour mémorable du jeudi 12/07/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Merci pour tout. J'avance mais à petits pas.

D'une requête création de table, j'ai changé de stratégie. J'effectue une
requête suppression
sans condition puis une requête ajout avec condition.

Les deux syntaxes fonctionnent . A noter que querydef a provoqué un message
d'erreur (type non défini).
J'ai résolu le problème en passant par outils - références - activer
microsoft DAO 3.6...

Cependant, un autre problème est apparu que je vais exposer dans le message
#supprimé après mise à jour table

Jocelyne
"Thierry (ze Titi)" de news:
Rectification...

Dim qry as QueryDef
If leContrôle.Value<CDate("15/03/2006") Then
set qry=CurrentDb.Querydefs("Requête action 1")
qry.Execute
ElseIf leContrôle.Value<Íate("31/08/2006") Then
set qry=CurrentDb.Querydefs("Requête action 2")
qry.Execute
Else
set qry=CurrentDb.Querydefs("Requête action 3")
qry.Execute
End If
set qry=nothing

En ce jour mémorable du mardi 10/07/2007, tu as entrepris la lourde tâche
de taper sur ton clavier :
Merci pour l'info.
Je vais continuer sur VBA - J'ai un problème de fonctionnement lorsque
la date rencontrée se retrouve dans la même condition deux fois de suite.
Le
message
d'erreur suivant s'affiche :
Erreur d'exécution '3211' : Le moteur de base de données n'a pas pu
verrouiller la table
"Tarif GHS en vigueur" car elle est déjà utilisée par une autre personne
ou
un autre processus".

Là, je bloque à nouveau ???

Je vais essayer de donner quelques explications :

Les 3 requêtes créé une table à structure identique "tarif GHS en vigueur"
qui alimente d'autres contrôles dont un avec liste déroulante.
Seuls les tarifs changent.

Info supplémentaire : j'ai utilisé l'événement "sur entrée", la date
étant
alimentée au préalable
par l'importation d'une table. "après mise à jour" devenait inopérant.

Merci pour votre aide.
Jocelyne

"crcam.lemans" %
Bonjour,
Voici mon problème :
J'ai un contrôle avec une date. Sur ce contrôle, j'ai affecté une macro
qui doit exécuter une requête sous
condition :

- si la date est < 15/3/2006, lancement requête action 1 (ouvrir requête)
- si la date est comprise entre 15/3/06 au 31/8/06, lancement requête
action 2
- si la date est >= au 1/9/06, lancement requête action 3

Le problème est que la macro ne se déclenche que pour les dates <15/3/06.
Pour les autres dates, il ne se passe rien.

Je pense qu'il faut en passer par le VBA, mais je ne connais que VBA sous
excel.

Pouvez-vous m'aider soit en améliorant ma macro, soit en VBA.

Merci.
Jocelyne






-- Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info





--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info




Publicité
Poster une réponse
Anonyme