Dans ce cas là je ne vois pas dutout.
Désolé
Dans ce cas là je ne vois pas dutout.
Désolé
Jpense qu'on va essayer de repartir du début, comment tu fait tu ta requete et comment l'execute tu
autant l'hiver éclate que l'hétéroclite
le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre
c'est pas bien grave, l'important c'est d'avoir essayé...merci pour tout!Envoyé par milia
dans l'état : j'ai tout d'abord créé ma requete en mode création pour choisir mes champs. ensuite j'ai rajouté le critere dans le champs Nom, afin qu'il aille me chercher le nom dans ma liste modifiable (qui contient nom et prenom).Envoyé par guigui5931
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [Formulaires]![Accueil_consult]![Modifiable58.Column(1)]
enfin, dans mon formulaire, j'ai créé un bouton de commande (avec l'assistant), qui me sert à ouvrir mon etat.
J'avais déja eu un problème comme ça je l'avais résolu en trichant
Ce que j'avais fait :
-requete avec l'assistant SANS le dernier critère
-tu va dans le mode SQL de ta requete
-tu fais un grand copier de la requete
-tu va dans l'éditeur VBA, dans l'évenement Open de ton Etat
En fait ça te permet de mettre en source de ton Etat la requete que tu voulais en rajoutant le critère par le code comme ça t'es sur de aps avoir de problème(enfin pas trop)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim chaine as String chaine = "tu copie la requete SQL" chaine = chaine & " WHERE PROPRIETAIRE.NOM=" & Forms("tonFormulaire")!Modifiable58.Column(1) Me.reportSource=chaine
ce truc ne marche que si tu n'a qu'un seul critère si t'en as plusieurs di le moi jte trouveré autre chose
autant l'hiver éclate que l'hétéroclite
le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre
je doit recuperer deux criteres, le nom et le prénom, mais pour plus de simplicité, je vais rajouter l'identifiant dans la liste modifiable (en invisible) et dans la requete, afin de n'avoir qu'un seul critère. je vais donc essayer ta méthode, et je reviens te dire.
merci
petit soucis, dans Microsoft Visual Basic, mon etat n'apparait pas dans la fenetre projet (et ce n'est pas le seul d'ailleur)...comment faire pour l'avoir?
tu va sur l'Etat en mode création tu fait bouton droit- "Créer Code Evenement" tu choisi générateur de code et normalement il devrait arriver
autant l'hiver éclate que l'hétéroclite
le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre
merci, j'avais zappé complet! par contre, je n'arrive pas à mettre ma requete sql dans le vba, peut-etre est-elle trop longue, mais il me met toujours erreur de compilation, erreur de syntaxe
la longueur de ma requte peut-elle etre en cause? ou y aurait-il une autre erreur?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Dim chaine As String chaine = "SELECT PROPRIETAIRE.ID_PROPRIETAIRE, PROPRIETAIRE.NOM, PROPRIETAIRE.PRENOM, PROPRIETAIRE.NOM_COMPLEMENT, PROPRIETAIRE.PRENOM_COMPLEMENT, PROPRIETAIRE.N_VOIRIE, PROPRIETAIRE.R_VOIRIE, PROPRIETAIRE.ADRESSE, PROPRIETAIRE.COMPLEMENT_ADRESSE, PROPRIETAIRE.CODE_POSTAL, PROPRIETAIRE.COMMUNE, PARCELLES.ID_PARCELLE, PARCELLES.SURFACE_DGI, PARCELLES.ADR_RIVOLI, PARCELLES.ADR_LIBELLE, PARCELLES.N_PARCELLE, DROIT.DESIGNATION, COMMUNE.N_COMMUNE, COMMUNE.NOM, PROPRIETAIRE.CO_CIVILITE" _ FROM(COMMUNE INNER JOIN (COMPTE INNER JOIN (PARCELLES INNER JOIN COMPTE_PARCELLE ON PARCELLES.ID_PARCELLE=COMPTE_PARCELLE.ID_PARCELLE) ON COMPTE.ID_COMPTE=COMPTE_PARCELLE.ID_COMPTE) ON COMMUNE.N_COMMUNE=PARCELLES.N_COMMUNE) INNER JOIN (DROIT INNER JOIN (PROPRIETAIRE INNER JOIN COMPTE_PROPRIETAIRE ON PROPRIETAIRE.ID_PROPRIETAIRE=COMPTE_PROPRIETAIRE.ID_PROPRIETAIRE) ON DROIT.CO_DROIT=COMPTE_PROPRIETAIRE.CO_DROIT) ON COMPTE.ID_COMPTE=COMPTE_PROPRIETAIRE.ID_COMPTE _ GROUP BY PROPRIETAIRE.ID_PROPRIETAIRE, PROPRIETAIRE.NOM, PROPRIETAIRE.PRENOM, PROPRIETAIRE.NOM_COMPLEMENT, PROPRIETAIRE.PRENOM_COMPLEMENT, PROPRIETAIRE.N_VOIRIE, PROPRIETAIRE.R_VOIRIE, PROPRIETAIRE.ADRESSE, PROPRIETAIRE.COMPLEMENT_ADRESSE, PROPRIETAIRE.CODE_POSTAL, PROPRIETAIRE.COMMUNE, PARCELLES.ID_PARCELLE, PARCELLES.SURFACE_DGI, PARCELLES.ADR_RIVOLI, PARCELLES.ADR_LIBELLE, PARCELLES.N_PARCELLE, DROIT.DESIGNATION, COMMUNE.N_COMMUNE, COMMUNE.NOM, PROPRIETAIRE.CO_CIVILITE;" chaine = chaine & " WHERE PROPRIETAIRE.NOM=" & Forms("Accueil_consult")!Modifiable58.Column(1) Me.reportSource = chaine
quand j'ai plusieurs lignes comme ça pour mis retrouver je fait
iul faut que tu fasse attetion d'enlever le ; à la fin de la 3ème ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 chaine = "Select.................................." chaine = chaine & "2eme ligneeeeeeeee" chaine = chaine & "3emmmmmmmme" ....
autant l'hiver éclate que l'hétéroclite
le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre
ok, ça c'est bon, mais ça ne marche toujours pas, il me met une erreur en me surlignant en rouge la premiere ligne (private sub...), et en sélectionant .reportSourceEnvoyé par guigui5931
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Report_Open(Cancel As Integer) Dim chaine As String chaine = "SELECT PROPRIETAIRE.ID_PROPRIETAIRE, PROPRIETAIRE.NOM, PROPRIETAIRE.PRENOM, PROPRIETAIRE.NOM_COMPLEMENT, PROPRIETAIRE.PRENOM_COMPLEMENT, PROPRIETAIRE.N_VOIRIE, PROPRIETAIRE.R_VOIRIE, PROPRIETAIRE.ADRESSE, PROPRIETAIRE.COMPLEMENT_ADRESSE, PROPRIETAIRE.CODE_POSTAL, PROPRIETAIRE.COMMUNE, PARCELLES.ID_PARCELLE, PARCELLES.SURFACE_DGI, PARCELLES.ADR_RIVOLI, PARCELLES.ADR_LIBELLE, PARCELLES.N_PARCELLE, DROIT.DESIGNATION, COMMUNE.N_COMMUNE, COMMUNE.NOM, PROPRIETAIRE.CO_CIVILITE" chaine = chaine & "FROM(COMMUNE INNER JOIN (COMPTE INNER JOIN (PARCELLES INNER JOIN COMPTE_PARCELLE ON PARCELLES.ID_PARCELLE=COMPTE_PARCELLE.ID_PARCELLE) ON COMPTE.ID_COMPTE=COMPTE_PARCELLE.ID_COMPTE) ON COMMUNE.N_COMMUNE=PARCELLES.N_COMMUNE) INNER JOIN (DROIT INNER JOIN (PROPRIETAIRE INNER JOIN COMPTE_PROPRIETAIRE ON PROPRIETAIRE.ID_PROPRIETAIRE=COMPTE_PROPRIETAIRE.ID_PROPRIETAIRE) ON DROIT.CO_DROIT=COMPTE_PROPRIETAIRE.CO_DROIT) ON COMPTE.ID_COMPTE=COMPTE_PROPRIETAIRE.ID_COMPTE" chaine = chaine & "GROUP BY PROPRIETAIRE.ID_PROPRIETAIRE, PROPRIETAIRE.NOM, PROPRIETAIRE.PRENOM, PROPRIETAIRE.NOM_COMPLEMENT, PROPRIETAIRE.PRENOM_COMPLEMENT, PROPRIETAIRE.N_VOIRIE, PROPRIETAIRE.R_VOIRIE, PROPRIETAIRE.ADRESSE, PROPRIETAIRE.COMPLEMENT_ADRESSE, PROPRIETAIRE.CODE_POSTAL, PROPRIETAIRE.COMMUNE, PARCELLES.ID_PARCELLE, PARCELLES.SURFACE_DGI, PARCELLES.ADR_RIVOLI, PARCELLES.ADR_LIBELLE, PARCELLES.N_PARCELLE, DROIT.DESIGNATION, COMMUNE.N_COMMUNE, COMMUNE.NOM, PROPRIETAIRE.CO_CIVILITE" chaine = chaine & " WHERE PROPRIETAIRE.ID_PROPRIETAIRE=" & Forms("Accueil_consult")!Modifiable58.Column(1) Me.reportSource = chaine End Sub
Met des espaces avant le FROM et le GROUP BY
autant l'hiver éclate que l'hétéroclite
le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre
c'est pas encore ça, j'ai toujour la meme erreur. il me dit "membre de methode ou de donnée introuvable"
Pour ma culture personnelle, pourquoi il ne faut pas mettre de point virgule à la fin de la requête?
Merci d'avance
Salut,
Je viens squatter car j'ai quasiment le meme probleme : la requete n'est pas executee.
Pour ce qui est de la virgule, j'ai l'habitude de les laisser dans les chaines de caracteres, aucun probleme jusqu'ici.
Quant a l'erreur sur la chaine string, essaie de l'afficher ou de l'executer en replacant "Forms..." par une valeur. Cela donnera une idee d'ou vient l'erreur
Edit : Quelle est cette methode reportsource ? Ne vouliez vous pas plutot Recordsource ? rowSource ?
meme avec une valeur, l'erreur reste la meme... j'ai mis ça:
(ID_PROPRIETAIRE est en numérique)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2chaine = chaine & " WHERE PROPRIETAIRE.ID_PROPRIETAIRE=1386"
Ton message d'erreur te dit que la chaine est mal formatee, exacte ? La solution la plus simple est de commenter tes lignes en partant de la derniere, puis apres avoir repere la ligne defectueuse, tu l'affiches pour la relire (et trouver ce qui ne va pas).
non, il me dit toujours "membre de methode ou de donnée introuvable". j'ai l'impression qu'il ne veut pas du reportsource.
je viens donc d'essayer ta méthode, mais cela me donne toujours l'erreur, quelque soit la ou les lignes en commentaire.
J'avais edite mon message precedent pour dire que je ne connaissais pas cette metthode. Mais le probleme doit venir d'ailleurs puisque ta chaine est en rouge. Je viens de l'afficher. Elle a ete tronquee. Y a t il un nombre maximal de caractere pour une requete ? En tout cas, voici la chaine dans mon code VBA, elle n'a pas declenche d'erreur.Envoyé par milielf
Rq: j'ai remplace la valeur du control du formulaire par 10
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
22
23 chaine = "SELECT PROPRIETAIRE.ID_PROPRIETAIRE, PROPRIETAIRE.NOM, PROPRIETAIRE.PRENOM, " _ & "PROPRIETAIRE.NOM_COMPLEMENT, PROPRIETAIRE.PRENOM_COMPLEMENT, " _ & "PROPRIETAIRE.N_VOIRIE, PROPRIETAIRE.R_VOIRIE, PROPRIETAIRE.ADRESSE, " _ & "PROPRIETAIRE.COMPLEMENT_ADRESSE, PROPRIETAIRE.CODE_POSTAL, " _ & "PROPRIETAIRE.COMMUNE, PARCELLES.ID_PARCELLE, PARCELLES.SURFACE_DGI, " _ & "PARCELLES.ADR_RIVOLI, PARCELLES.ADR_LIBELLE, PARCELLES.N_PARCELLE, " _ & "DROIT.DESIGNATION, COMMUNE.N_COMMUNE, COMMUNE.NOM, " _ & "PROPRIETAIRE.CO_CIVILITE " _ & " FROM(COMMUNE INNER JOIN (COMPTE INNER JOIN (PARCELLES INNER " _ & "JOIN COMPTE_PARCELLE ON PARCELLES.ID_PARCELLE=COMPTE_PARCELLE.ID_PARCELLE) " _ & "ON COMPTE.ID_COMPTE=COMPTE_PARCELLE.ID_COMPTE) ON COMMUNE.N_COMMUNE= " _ & "PARCELLES.N_COMMUNE) INNER JOIN (DROIT INNER JOIN (PROPRIETAIRE INNER " _ & "JOIN COMPTE_PROPRIETAIRE ON PROPRIETAIRE.ID_PROPRIETAIRE= " _ & "COMPTE_PROPRIETAIRE.ID_PROPRIETAIRE) ON DROIT.CO_DROIT=COMPTE_PROPRIETAIRE.CO_DROIT) " _ & "ON COMPTE.ID_COMPTE=COMPTE_PROPRIETAIRE.ID_COMPTE" _ & " GROUP BY PROPRIETAIRE.ID_PROPRIETAIRE, PROPRIETAIRE.NOM, " _ & "PROPRIETAIRE.PRENOM, PROPRIETAIRE.NOM_COMPLEMENT, PROPRIETAIRE.PRENOM_COMPLEMENT, " _ & "PROPRIETAIRE.N_VOIRIE, PROPRIETAIRE.R_VOIRIE, PROPRIETAIRE.ADRESSE, " _ & "PROPRIETAIRE.COMPLEMENT_ADRESSE, PROPRIETAIRE.CODE_POSTAL, PROPRIETAIRE.COMMUNE, " _ & "PARCELLES.ID_PARCELLE, PARCELLES.SURFACE_DGI, PARCELLES.ADR_RIVOLI, " _ & "PARCELLES.ADR_LIBELLE, PARCELLES.N_PARCELLE, DROIT.DESIGNATION, " _ & "COMMUNE.N_COMMUNE, COMMUNE.NOM, PROPRIETAIRE.CO_CIVILITE " _ & " WHERE PROPRIETAIRE.ID_PROPRIETAIRE=10;"
j'ai vraiment un soucis de mauvaises ondes avec Access je reprend ton code, mais ça ne marche toujours pas... je commence a craquer
le me.reportSource m'a été indiqué tout a l'heure plus haut dans le sujet. mais si je veut la retaper, Access ne me la propose pas dans la liste après le point...
tu as juste mis la chaine dans le report_open? rien de plus?
j'ai l'impression d'avoir rate quelque chose. L' erreur vient de la chaine ou du reportsource ? Jusque la, je partais de l'idee que l'editeur VBA te mettait la string "chaine" en rouge, pour te dire qu'elle est mal formatee. Est ce le cas ?
Jusque la, je n'ai pas tente d'appeler la methode reportsource. Je me suis focalise sur la chaine. Pour autant, je ne connais pas cette methode (google non plus on dirait). Par contre, Me.Report.RecordSource me semble un bon choix.
Edit: ortho, politesse
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