Appeler un état depuis un formulaire sous accès 2003

Fermé
phystyno - 20 févr. 2013 à 14:47
 tessel75 - 24 févr. 2013 à 14:09
Bonjour,
je suis en train de concevoir une application pour mon mémoire de soutenance
je voudrais appeler un état depuis mon formulaire c'est à dire si j'entre les données pour éditer une facture par exemple en le validant que l'état correspondant s'affiche de mème pour les formulaires de recherche
Merci




A voir également:

3 réponses

Bonsoir,
Pour cela il te faut un bouton que tu trouves sur le Ruban "Création/Contrôles", si ce n'est déjà fait, et le plus simple et le mieux pour un début est d'utiliser l'Assistant qui te guide dans ta démarche. Les actions les plus simples sont très bien répertoriées.
Bon courage et bonne suite.
0
salut,
mon problème est que j'ai créé un formulaire de recherhe basé sur un requète ou table et avec lamème requète ou table j'ai créé un état. A chaque recherche je veux que quand j'appelle l'état qu'il m'affiche les résultats de la recherche donc à chaque fois il doit se mettre à jour. Pour cela qu'est ce que je vais mettre derrière pour qu'il se mette automatiquement à jour
Merci pour votre attention
0
de mème je n'arrive pas à gerer la date dans ma procédure de recherche je voudrais rechercher à chaque fois entre deux dates. Exemple trier les voitures payés entre le 1er janvier et le 15 février par exemple
0
ma procédure de recherche est:
Private Sub RefreshQuery()
Dim SQL As String
Dim SQLWhere As String

SQL = "SELECT NumChas, Marque, Modele, AnneeCirc, Couleur, Odom, PA, DatA FROM VEHICULE Where NOT ISNULL(VEHICULE.NumChas)"
If Not IsNull(Me.txtChassis) Then
SQL = SQL & "And VEHICULE.NumChas like'*" & Me.txtChassis & "*'"
End If
If Not IsNull(Me.txtAnnee) Then
SQL = SQL & "And VEHICULE.AnneeCirc like'*" & Me.txtAnnee & "*'"
End If
If Not IsNull(Me.cmbMarque) Then
SQL = SQL & "And VEHICULE.Marque like'*" & Me.cmbMarque & "*'"
End If
If Not IsNull(Me.cmbModele) Then
SQL = SQL & "And VEHICULE.Modele like'*" & Me.cmbModele & "*'"
End If
If Not IsNull(Me.cmbCouleur) Then
SQL = SQL & "And VEHICULE.Couleur like'*" & Me.cmbCouleur & "*'"
End If
If Not IsNull(Me.txtDatDeb) And Not IsNull(Me.txtDatFin) Then
SQL = SQL & "And clng(VEHICULE.AnneeCirc) between" & CLng(Me.txtDatDeb) & " and " & CLng(Me.txtDatFin) & ""
End If
SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where") - Len("Where") + 1))
SQL = SQL & ";"

Me.lblStats.Caption = DCount("*", "VEHICULE", SQLWhere) & " / " & DCount("*", "VEHICULE")
Me.lstResults.RowSource = SQL
Me.lstResults.Requery
End Sub
0
Bonsoir,
Compte tenu du fait que tu poses plusieurs questions en même temps, je répondrai d'abord à la 1ère, en attendant de lire le développement de la requête, (je ne suis pas un kador du SQL mais je m'y appliquerai)
1) Il n'est vraiment pas judicieux d'avoir pris la même requête pour le formulaire et l'état que tu souhaites éditer. Il faut tout au contraire que tu considères le formulaire comme une boite de dialogue où tu entres les données qui serviront à sélectionner le domaine des données de base à éditer. De la sorte, tu auras un certain nombre de données qui seront autant de critères pour la restriction du domaine à éditer dans l'état.
Ainsi, ton état sera construit sur une seule requête invariante dont tu ne changeras que les critères sous la forme : [Forms]![FormulaireDeDialogue]![ValeurRequiseDuChamp].
Tu peux comme cela entrer autant de critères que tu souhaites. Quant à mon conseil précédent, il n'est en rien changé parce que tout se joue au niveau de la requête source de l'état. C'est ma 1ère réponse en attendant la suite.
Bon courage
0
Bonjour,
J'ai regardé avec attention votre requête. Elle est peut-être très belle et très ambitieuse sur le plan de la rédaction mais je suis moins certain qu'elle soit efficace facilement, à moins d'une mise au point longue et laborieuse. Avec pas mal de crises de nerfs.
Mieux vaut rester simple.
Je maintiens donc qu'il est très préférable d'avoir une requête spécifique pour l'état que vous voulez éditer et de considérer le formulaire comme une boite de dialogue personnalisée dont les champs sont les paramètres de l'édition de l'état.
Pour cela, je vous conseille vivement plusieurs choses:
1) Créer votre requête en mode "Création" (Graphique), dans l'assistant création de requête de Access, plutôt que directement en mode SQL bien plus difficile à manier et pas du tout intuitif.
2) Entrer d'emblée tous vos paramètres dans la requête sous la forme que j'ai dite au dessus, càd [Forms]![FormulaireDeDemande]![ValeurRequiseDuChamp], associé à un "like" et une " * " comme valeur par défaut de tous vos contrôles, ce qui vous permet de vous passer de valeur si le contrôle n'est pas rempli et rend inutile toutes vos conditions "If ... Then ...". Cela facilite grandement les choses et laisse la requête in-variée qq soit les champs entrés ou vides de la demande.
(Soit dit en passant, d'une manière générale pour alléger la rédaction des conditions, s'il n'y a qu'une seule condition à remplir vous pouvez écrire :
"If .... Then ...." sur une seule ligne et sans le "End If" qui n'est alors pas nécessaire.)
3) Pour saisir les valeurs de vos champs dans les contrôles du formulaire de demande, il vous faut autant de liste de choix qu'il y a de contrôles à remplir. Mais il faut aussi que vos requêtes sous-jacentes soient conçues en cascade; j'entends par là que chacune restreigne le choix possible selon ce qui a été sélectionner précédemment. Ainsi la 1ère présentera le choix complet, la 2ème présentera le choix limité à ce qui reste compte tenu de ce qui a été sélectionné au contrôle 1, et ainsi de suite.
4) Vous posez la question de la sélection des dates par période, du tant au tant. La formule est "Between ... and ..." mais vous pouvez aussi bien écrire " >= ... and <= ..."
5) Une fois vos choix faits dans votre formulaire de demande, et l'état conçu de telle sorte qu'il soit créé avec la requête paramétrée avec les données recueillies grâce à celui-là, vous pouvez l'appelez sans aucune difficulté comme je vous ai dit précédemment.
C'est le plus simple et le plus facile que je peux vous proposer, ce que je ferais moi-même.

Bon courage et bonne suite
0