Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 05/10/2011, 13h57   #1
Futur Membre du Club
 
Homme
Technicien maintenance
Inscription : août 2008
Messages : 67
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Technicien maintenance

Informations forums :
Inscription : août 2008
Messages : 67
Points : 18
Points : 18
Par défaut Ouverture d'un formulaire sur un enregistrement précis

Bonjour

J'ai écrit quelques fonctions de recherche avec un poil de SQL, le resultat des recherches s'affiche sur un état avec le N° ID des l'enregistrements trouvés et les données bien sur de ces enregistrements.
L'opérateur peut alors si il le veux aprés avoir saisie le N° de l'ID qui veut consulter et fermer l'etat ouvrir le formulaire de la fiche concernée en cliquant sur un bouton qui avant la recherche était Desactivé il peut alors visualisés les donnée que contient l'enregistrement qu'il a selectionné (N° ID). Je tourne un peu en rond et il n'y a rien dans la FAQ sur ce sujet, comment faire pour ouvrir ce satané formulaire avec le N° d'enregistrement défini . Un ptit coup de main siou plait !

Merci d'avance

Jean Pierre
Jeanpierre71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 20h37   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 089
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 089
Points : 11 622
Points : 11 622
Bonjour,

Je suis très étonné que tu n'ais rien trouvé sur ce sujet éculé.

Code :
docmd.openform "monform",,,"id=" & me.zonetexteID
ou zonetexteid est le controle zone de texte que l'utilisateur a saisi.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 23h30   #3
Membre du Club
 
Homme Cédric MERSCH
Ordonnanceur
Inscription : novembre 2009
Messages : 48
Détails du profil
Informations personnelles :
Nom : Homme Cédric MERSCH
Localisation : France

Informations professionnelles :
Activité : Ordonnanceur
Secteur : Industrie

Informations forums :
Inscription : novembre 2009
Messages : 48
Points : 46
Points : 46
Bonsoir Jean-Pierre,

Si le VBA te donne des frissons, il existe la possibilité d'ouvrir ton Form par le biais d'une petite macro "OuvrirFomulaire" agrémentée d'une clause SQL WHERE du genre:
Si je ne m'abuse
Puis tu peux fermer ton état si tu le souhaite en ajoutant une seconde ligne "Fermer".

Amicalement.
Cédric
mc.schmer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2011, 19h17   #4
Futur Membre du Club
 
Homme
Technicien maintenance
Inscription : août 2008
Messages : 67
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Technicien maintenance

Informations forums :
Inscription : août 2008
Messages : 67
Points : 18
Points : 18
Je suis désole loufab ta proposition ne fonctionne pas et claque une erreur
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Private Sub BtAccesFiche_Click()            ' clic sur le bouton acces fiche selectionnée
On Error GoTo Err_BtAccesFiche_Click
    Dim stDocName As String
    Dim Convert As String
    Convert = CStr(ConsultFiche)
    stDocName = "FConsultStockRecherches"
    DoCmd.OpenForm stDocName, , , "id=" & Me.Convert
    Flag = False                                        ' bouton devient inactivé
    TestFlag                                            ' gestion activation desactivation du bouton acces fiches
Exit_BtAccesFiche_Click:
    Exit Sub
 
Err_BtAccesFiche_Click:
    MsgBox Err.Description
    Resume Exit_BtAccesFiche_Click
 
End Sub
La variable ConsultFiche est une variable long public déclaré dans un module ou sont regroupées les fonction et sub utilisées par plusieurs formulaires, elle contient le N° ID saisie par l'opérateur.
Donc quand l'utilisateur visualise sur l'état la liste des enregistrements qui répondent aux critères de la recherche qu'il a demandé.
Il a dans une colonne l'ID des l'enregistrements. Si il veut consulter cette fiche il saisie le N° ID de l'enregistrement qu'il veut consulter ou modifier. Après fermeture de l'état il clic sur un bouton [ACCÈS FICHE] dont la procédure est au dessus en code.
Avec le debogage quand j'entre dans la subroutine ci-dessus j'ai bien le N° saisiede l'ID dans la variable ConsultFiche. Après j'ai sans doute fait une bêtise, mais le paramètre Convert dans la ligne DoCmd.OpenForm n'est pas du gout du compilateur et il me jette
Tu en pense quoi de ma prose ?
Merci a toi car je tourne en rond là et c'est l'un des dernier point qui me pose problème pour boucler mon projet, le reste fonctionne bien, il me reste la sécurisation et la gestion des accès et de débusquer les derniers bug.
Jeanpierre71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2011, 19h56   #5
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 089
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 089
Points : 11 622
Points : 11 622
C'est normal tu confonds controle et variable.

Code :
1
2
3
4
    Dim Convert As String
    Convert = CStr(ConsultFiche)
    stDocName = "FConsultStockRecherches"
    DoCmd.OpenForm stDocName, , , "id=" & Me.Convert
Convert est une variable de type texte.
Tu la "remplie" avec ConsultFiche, un controle probablement...
Code :
Convert = CStr(ConsultFiche)
Ensuite tu crées ta clause Where
Code :
DoCmd.OpenForm stDocName, , , "id=" & Me.Convert
avec "Id=" et un mélange entre la syntaxe d'appel d'un controle et le nom de la variable.

Soit tu utilises ton controle directement,
Code :
DoCmd.OpenForm stDocName, , , "id=" & Me.ConsultFiche
Soit tu utilises ta variable
Code :
DoCmd.OpenForm stDocName, , , "id=" & Convert
Ici Id doit être le nom d'un champ de type numérique de la table source du formulaire FConsultStockRecherches si le type est texte alors tu devras l'écrire comme ceci.

Code :
DoCmd.OpenForm stDocName, , , "id=""" & Convert & """"
Note que le passage par une variable est inutile. D'ailleurs je ne comprends pas pourquoi tu la "castes" en string.

Beaucoup d'incohérences.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 16h36   #6
Futur Membre du Club
 
Homme
Technicien maintenance
Inscription : août 2008
Messages : 67
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Technicien maintenance

Informations forums :
Inscription : août 2008
Messages : 67
Points : 18
Points : 18
Bonjour loufab

Je suis désolé de nouveau de te dérangé encore une fois. J'ai lu avec beaucoup d'attention et d’intérêt ta réponse
Le problème est que tu as mal lu ma demande tu base une bonne partie de ton analyse du problème en partant du principe que ConsultFiche est un contrôle alors que j'ai écrit dans ma demande qu'il s'agissait d'une variable de type Long qui contient le numéro ID de l'enregistrement que l'opérateur a saisie.
J'ai essayer de trituré dans tous les sens ce que tu ma envoyer à chaque fois j'ai des messages erreur de type, erreur dans l'expression. Je pensais que ton dernière exemple en utilisant .
Code :
DoCmd.OpenForm stDocName, , , "IDPieceStock""" & ConsultFiche & """"
Cela marche toujours pas je te donne le code avec la référence de la table à mettre à la place de ID= dans ton exemple.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub BtAccesFiche_Click()            ' clic sur le bouton acces fiche selectionnée
On Error GoTo Err_BtAccesFiche_Click
    Dim stDocName As String
    Dim Convert As String
    Convert = CStr(ConsultFiche)
    stDocName = "FConsultStockRecherches"
    DoCmd.OpenForm stDocName, , , IDPieceStock, "" & ConsultFiche
    Flag = False                                        ' bouton devient inactivé
    TestFlag                                            ' gestion activation desactivation du bouton acces fiches
Exit_BtAccesFiche_Click:
    Exit Sub

Err_BtAccesFiche_Click:
    MsgBox Err.Description
    Resume Exit_BtAccesFiche_Click
    
End Sub
IDPieceStock est le nom du champ dans la table qui est la clé primaire de la dite table (Numeroauto donc un Long) et accessoirement le numéro de l'enregistrement. C'est a cette table que le formulaire que je veux ouvrir fait référence.

Pour ta remarque de la fin de ton message
"Note que le passage par une variable est inutile. D'ailleurs je ne comprends pas pourquoi tu la "castes" en string.
Beaucoup d'incohérences.
"
Je ne pratique Access que depuis mai 2011 avec 6 jours de stage. Mon truc c'est plutôt l'industriel Automates/interface homme machine/ supervision de process/SNCC/ etc. de l'industriel quoi. Mais je développe une base pour mon service pour faciliter le travail de tous. Mon chef de service m'a déja tracé du boulot sur Access pour l'année prochaine (Récupération de données dans des fichiers texte, a des fin d'analyses qu'il ne m'a pas encore précisé)
Je te remercie encore pour ta patience vis à vis de moi

Cordialement

Jean Pierre
Jeanpierre71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 20h45   #7
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 089
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 089
Points : 11 622
Points : 11 622
Et l'opérateur logique ?
Avec le = il va mieux s'en sortir je pense
Code :
DoCmd.OpenForm stDocName, , , "IDPieceStock=""" & ConsultFiche & """"
Chaque , sépare un paramètre. Les clauses Where et Filter sont des clauses de type texte(string) elles doivent donc être entourés de "

Code :
DoCmd.OpenForm stDocName, , , IDPieceStock, "" & ConsultFiche
Dans cette ligne IDpiecestock va être considéré comme une variable ce qui n'est pas le cas. De plus "" & consultfiche ne sera pas inclus dans la clause where mais dans le paramètre suivant. Donc Erreur !

Ce qu'il faut savoir c'est que Access, VBA, SQL c'est du précis. Pas d'invention ou d'approximation.
Pas d'inquiètude on a tous débuté un jour. Le tout c'est d'être rigoureux et de ne pas mettre la charue avant les boeufs.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 17h56   #8
Futur Membre du Club
 
Homme
Technicien maintenance
Inscription : août 2008
Messages : 67
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Technicien maintenance

Informations forums :
Inscription : août 2008
Messages : 67
Points : 18
Points : 18
Bonsoir loufab

Derniere fois que je viens t'ennuyer Ton morceau de code
Code :
DoCmd.OpenForm stDocName, , , "IDPieceStock=""" & ConsultFiche & """"
Ne fonctionne pas. Le message action OpenForm a été annulée s'affiche, la base ne bloque pas mais le formulaire ne s'ouvre pas.

J'ai ENFIN trouvée une solution si ! et cela marche bien, et même très bien Voila la formule magique :
Code :
DoCmd.OpenForm stDocName, , , " [IDPieceStock] like '*" & ConsultFiche & "*'"
Voila, je te remercie 1000 fois pour ton aide éclairée , en espérant ne plus venir hanter tes soirées

Jean Pierre
Jeanpierre71 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 21h11.


 
 
 
 
Partenaires

Hébergement Web