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 01/01/2012, 18h29   #1
Membre habitué
 
Alain
Inscription : septembre 2004
Messages : 206
Détails du profil
Informations personnelles :
Nom : Alain
Âge : 53
Localisation : France

Informations forums :
Inscription : septembre 2004
Messages : 206
Points : 142
Points : 142
Par défaut Utiliser une variable dans une requête SQL

Bonjour et meilleurs vœux à tous,
mon problème du 1er de l'an !

Je souhaite utiliser une variable dans la requête source d'un état
Code :
1
2
varMaTable="nomdeMaTable"
sqlFiltre = "SELECT * FROM " & varMaTable & ""
j'ouvre l'état avec
Code :
DoCmd.OpenQuery "rptEtat",acViewPreview
Comment affecter le contenu de ma requête SQL à la source de mon état ?
Merci pour votre aide
Alain
alainb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2012, 18h39   #2
Rédacteur/Modérateur
 
Avatar de GAYOT
 
Homme Jean-Damien GAYOT
Inscription : novembre 2004
Messages : 2 076
Détails du profil
Informations personnelles :
Nom : Homme Jean-Damien GAYOT
Âge : 56
Localisation : France, Meuse (Lorraine)

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : novembre 2004
Messages : 2 076
Points : 4 396
Points : 4 396
Envoyer un message via Skype™ à GAYOT
Bonjour
Sur l'évènement Ouverture de l'état:
Code :
1
2
3
4
5
6
7
8
Private Sub Report_Open(Cancel As Integer)
Dim varMaTable as String
Dim sqlFiltre as String
 
varMaTable="nomdeMaTable"
sqlFiltre = "SELECT * FROM " & varMaTable 
Me.RecordSource = sqlFiltre
End Sub
__________________
Plus j'avance et plus j'ai l'impression de ne rien savoir. Et comme j'essaie d'aller loin..!!.

Tutoriels sur:http://jdgayot.developpez.com

Pas de sujets techniques par Mp. Sinon
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2012, 08h58   #3
Rédacteur/Modérateur
 
Avatar de Jeannot45
 
Homme Jean BALLAT
Inscription : octobre 2004
Messages : 2 856
Détails du profil
Informations personnelles :
Nom : Homme Jean BALLAT
Âge : 63
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : octobre 2004
Messages : 2 856
Points : 5 220
Points : 5 220


Pour compléter l'information de Gayot , je te conseille la lecture de ce tuto : Plusieurs requêtes pour un même état

Bonne lecture
__________________
Jeannot

Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA

Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
Jeannot45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 09h25   #4
Membre habitué
 
Alain
Inscription : septembre 2004
Messages : 206
Détails du profil
Informations personnelles :
Nom : Alain
Âge : 53
Localisation : France

Informations forums :
Inscription : septembre 2004
Messages : 206
Points : 142
Points : 142
Citation:
Envoyé par Jeannot45 Voir le message

Pour compléter l'information de Gayot , je te conseille la lecture de ce tuto : Plusieurs requêtes pour un même état
Bonne lecture
Bonjour,
L'article cité me donne plusieurs réponses.
Je souhaite maintenant utiliser NZ dans ma requête
Mes essais sont laborieux...

aucun enregistrement ne s'affiche si maListe est vide avec
Code :
sqlFiltre = "SELECT * FROM " & varMaTable & " WHERE monChamp = NZ('" & maListe & "', monChamp)"
tous les enregistrements s'affichent si maListe est vide avec
Code :
sqlFiltre = "SELECT * FROM " & varMaTable & " WHERE NZ('" & maListe & "', monChamp)"
alainb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2012, 08h48   #5
Rédacteur/Modérateur
 
Avatar de Jeannot45
 
Homme Jean BALLAT
Inscription : octobre 2004
Messages : 2 856
Détails du profil
Informations personnelles :
Nom : Homme Jean BALLAT
Âge : 63
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : octobre 2004
Messages : 2 856
Points : 5 220
Points : 5 220


la Fonction NZ(NomVariable,ValeurSiVide) te permet de tester d'une manière plus simple le cas d'une valeur nulle

exemple :
Code VBA :
1
2
3
4
5
6
 
If Nz(Mavariable,0) = 0 Then
    ....
else
    ....
End If
Par contre dans ta syntaxe SQL, j'utiliserai plutot la fonction VraiFaux() dans l'interface VBE qui se traduit pas Iif() en SQL
Exemple :
Code SQL :
1
2
 
sqlFiltre = "SELECT * FROM " & varMaTable & " WHERE Iif(" & monChamp & "= ;monChamp;'" & maListe & "')"

Je n'ai pas testé donc à vérifier
__________________
Jeannot

Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA

Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
Jeannot45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 10h22   #6
Membre habitué
 
Alain
Inscription : septembre 2004
Messages : 206
Détails du profil
Informations personnelles :
Nom : Alain
Âge : 53
Localisation : France

Informations forums :
Inscription : septembre 2004
Messages : 206
Points : 142
Points : 142
Bjr Jean,

Dans ta proposition, je ne comprend par comment "Iif" teste "maListe"
Code :
sqlFiltre = "SELECT * FROM " & varMaTable & " WHERE Iif(" & monChamp & "= ;monChamp;'" & maListe & "')"
J'ai la solution avec :
Code :
1
2
sqlFiltre = "SELECT * FROM " & varMaTable & _
" WHERE Iif ( '" &  maListe & "';'" & maListe.value & "'; monChamp)"
merci pour ton aide précieuse
Alain
alainb 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 03h32.


 
 
 
 
Partenaires

Hébergement Web