Bonjour,
comment peut-on transferer une variable saisie dans un combobox vers d'autres formulaires ou requetes ? (dans access)
J'ai appris cela il y a longtemps en visual basic, mais j'ai oublié,
merci pour votre aide
pilule007
Bonjour,
comment peut-on transferer une variable saisie dans un combobox vers d'autres formulaires ou requetes ? (dans access)
J'ai appris cela il y a longtemps en visual basic, mais j'ai oublié,
merci pour votre aide
pilule007
Bonjour.
- [forms]![NomTonForm]![NomTonControle] pour un critère dans une requête.
- =[forms]![NomTonForm]![NomTonControle] pour la valeur d'un champ dans un formulaire.
Selon l'usage tu peux aussi utiliser le les paramètres de DoCmd.OpenForm().
- call DoCmd.OpenForm(FormName, View, FilterName, "[UnChamp]=""" & [forms]![NomTonForm]![NomTonControle] & """") si le formulaire qui demande l'ouverture n'est pas celui en cours.
- call DoCmd.OpenForm(FormName, View, FilterName, "[UnChamp]=""" & me.[NomTonControle] & """") si le formulaire qui demande l'ouverture n'est celui en cours.
Et plus rarement on utilise le dernier paramètre de DoCmd.OpenForm() qui est OpneArgs.
Un dernier point le langage de Access (et de la suite office) est VBA (Visual Basic for Application) et qui est un cousin du VB (Visual Basic).
Je ne pinaille pas :-) sur le vocabulaire mais certaines choses qui marchent en VBA ne fonctionnent pas en VB et vice versa.
A+
Merci pour votre réponse,
c'est un peu trop compliqué pour moi,
est ce que vous connaissez un bon tutoriel pas à pas pour progresser dans access ?
merci
pilule007
merci beaucoup,
cela fonctionne
je commence à comprendre comment programmer dans access,
pilule007
Bonjour,
j'ai commencé une base access pour gérer les adhérents à une association de retraités (environ 400 membres)
Cette association propose 24 activités journalières,
j'ai donc créer dans ma table adhérents, 24 champs correspondants aux 24 activités, et sont ainsi nommées.
est il possible de récupérer automatiquement les noms de ces champs dans une liste déroulante, ou bien faut il les créer manuellement dans la liste.
Chaque adhérent peut s'inscrire à plusieurs activités, c'est pour cela que j'ai créé les 24 champs
merci d'avance pour vos réponses
cordialement
pilule007
Bonjour,
j'ai rempli une liste déroulante 'liste-activites' d'un formulaire 'ADHERENTS' avec les champs de ma table 'ADHERENTS',
les champs que j'utilise sont des cases à cocher
J'utilise la requête suivante pour afficher les adhérents qui sont cochés pour une activité (exemple : le champs 'BELOTE' est repris comme tel dans le liste déroulante) et je la charge avec une macro dans l'évènement clic de la liste déroulante.
mais rien ne s'affiche et je ne comprends pas pourquoi (il s'affiche 1 ligne avec des données vides)
Merci pour votre aide
pilule007
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT ADHERENTS.[NOM-PRENOM], ADHERENTS.TELEPHONE, ADHERENTS.EMAIL, [Formulaires]![ADHERENTS]![liste-activites].[Texte] AS Activité FROM ADHERENTS WHERE ((([Formulaires]![ADHERENTS]![liste-activites].[Texte]) Like True));
bonsoir,
SQL ne reconnait pas certaines propriétés des contrôles de formulaires comme Texte d'autant plus si c'est une case à cocher et Like ne fonctionnera pas plus pour la même raison
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT ADHERENTS.[NOM-PRENOM], ADHERENTS.TELEPHONE, ADHERENTS.EMAIL, [Formulaires]![ADHERENTS]![liste-activites] AS Activité FROM ADHERENTS WHERE [Formulaires]![ADHERENTS]![liste-activites] = True;
Bonjour,
merci pour ta réponse
maintenant, cela fonctionne un tout petit peu mieux, mais le resultat affiche tous les adherents, meme ceux qui ne sont pas inscrit pour l'activité
pilule007
Bonjour,
Une façon de faire:
Pour la liste déroulante, mettre la propriété "Origine source" à "Liste valeurs".
Code dans le formulaire:
Code dans un module:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Form_Load() Me.Modifiable0.RowSource = ListeChamps("NomTable") End Sub
Bonne continuation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Public Function ListeChamps(sNomTable As String) As String Dim db As DAO.Database Dim tdfld As DAO.TableDef Dim fld As Field Dim s As String s = "" Set db = CurrentDb() Set tdfld = db.TableDefs(sNomTable) For Each fld In tdfld.Fields 'loop through all the fields of the tables If fld.OrdinalPosition > 1 Then '--- exemple pour ne pas prendre les 2 premiers champs --- à adapter s = s & ";" & fld.Name End If Next If s = "" Then ListeChamps = "" Else ListeChamps = Mid(s, 2) End If Set tdfld = Nothing Set db = Nothing End Function
Bonjour,
j'ai utilisé le code du début dans ma requête, cela fonctionne très bien si je l'utilise comme variable pour faire correspondre le contenu d'un champs,
mais lorsque je l'utilise comme valeur de champs comme :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT ADHERENTS.[NOM-PRENOM], ADHERENTS.TELEPHONE, ADHERENTS.EMAIL, [Formulaires]![ADHERENTS]![liste-activites] AS Activité FROM ADHERENTS WHERE [Formulaires]![ADHERENTS]![liste-activites]![Texte]=True;
( le champs devrait etre égal à BELOTE, champs case à cocher) , en faisant comme cela, le resultat affiche toute la table
merci
pilule007
bonjour,
peux-tu poster le code complet y compris la ligne contenant le nom de la procédure événementielle (par exemple: Private Sub MonControle_AfterUpdate())
En fait j'ai juste créé une requete :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT ADHERENTS.[NOM-PRENOM], ADHERENTS.TELEPHONE, ADHERENTS.EMAIL, [Formulaires]![ADHERENTS]![liste-activites] AS Activité FROM ADHERENTS WHERE [Formulaires]![ADHERENTS]![liste-activites]![Texte]=True;
que j'appelle depuis une liste déroulante qui contient les champs de la table ADHERENTS, les champs concernés sont des cases à cocher,
je l appelle depuis l'évènement clic de la liste déroulante au moyen d'une macro qui charge la requete
pilule007
c'est bien ce code que je veux voir... et si c'est une macro Access, une impression d'écran fera l'affaireje l appelle depuis l'évènement clic de la liste déroulante au moyen d'une macro qui charge la requete
pourquoi ajouter un contrôle du formulaire dans la requête ? cela n'a pas grand intérêt
Code : Sélectionner tout - Visualiser dans une fenêtre à part [Formulaires]![ADHERENTS]![liste-activites] AS Activité
il me semblait t'avoir dit d'enlever !Texte
Code : Sélectionner tout - Visualiser dans une fenêtre à part WHERE [Formulaires]![ADHERENTS]![liste-activites]![Texte]=True;
Bonjour, désolé, je débute dans access, voici ma capture d'écran
ce que je comprend c'est que, par macro, tu ouvres une requête sur clic d'une liste déroulante ?
tel que c'est fait, cela ne fonctionnera pas. Peux-tu mettre ta base à disposition (format zip) en prenant soin de ne pas y mettre des données confidentielles ?
bonjour,
tu peux copier ta base dans une nouvelle base (ou copier uniquement les objets concernés, formulaires, tables requêtes ...), vider les tables contenant les informations sensibles et saisir 1 ou 2 enregistrements avec des infos bidon. Une fois ta base compactée et zippée utilise l'icône "trombone" pour la joindre
merci, je regarde ça cet après-midi ...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager