Je ne sais plus ou j'avais récupéré cette routine (en tout cas excellente!)
qui bouclait sur des arguments provenant de controles et ajoutés en boucle
auantant que de besoin pour extraire des infos filtrées !
L'ennui c'est qu'elle affiche la réponse SQL dynamiquement dans un
sous-formulaire
et que je voudrais qu'à l'affichage des infos plus ou moins filtrées je
puissent sur
un clic de bouton envoyer la réponse SQL vers un état ou vers une table.
J'espère bien m'être expliqué. Le code ci-dessous est plus clair... lui !
' Utilise l'ordre de la base pour les comparaisons de chaînes.
Option Compare Database
Option Explicit
Private Sub AjouteràWhere(ValeurChamp As Variant, NomChamp _
As String, MonCritère As String, NbrArg As Integer)
' Crée le critère pour la clause WHERE.
If ValeurChamp <> "" Then
' Ajoute "et" si aucun critère existe.
If NbrArg > 0 Then
MonCritère = MonCritère & " And "
End If
' Ajoute le critère au critère existant.
' Entoure la valeur de ValeurChamp et l'astérisque de points
' d'exclamations.
MonCritère = (MonCritère & NomChamp & " Like " & Chr(39) & _
ValeurChamp & Chr(42) & Chr(39))
' Augmente le compteur d'argument.
NbrArg = NbrArg + 1
End If
End Sub
----------------------------------------------------------------------
Private Sub DisableControl()
' Si activé, désactive le contrôle dans la section détail après
' avoir changé le critère de sélection.
Dim Tmp As Variant
If Me![Sous-Formulaire_Affichage_Global].Enabled Then
Tmp = ActiveContrôles("Detail", False)
End If
End Sub
----------------------------------------------------------------------
Private Sub Afficher_listing_Click()
' Crée une clause WHERE en utilisant le critère recherche entré
' par l'utilisateur et définit la propriété Source (RecordSource)
' du sous-formulaire Trouver les clients.
Dim MonSQL As String, MonCritère As String, MonJeuEnreg As _
String
Dim NbrArg As Integer
Dim Tmp As Variant
' Initialise le compteur d'argument.
NbrArg = 0
' Initialise l'instruction SELECT.
MonSQL = "SELECT * FROM [Table_Requetes] WHERE "
MonCritère = ""
' Utilise les valeurs entrées dans les zones de texte de l'en-tête de
' formulaire
' pour créer les critères de la clause WHERE.
' vous pouvez ajouter d'autres conditions avec le m^me type de
' ligne ci-dessous
AjouteràWhere [Recherche le champ1], "[CHAMP1]", _
MonCritère, NbrArg
AjouteràWhere [Recherche le champ2], "[CHAMP2]", _
MonCritère, NbrArg
AjouteràWhere [Recherche le champ3], "[CHAMP3]", _
MonCritère, NbrArg
AjouteràWhere [Recherche la champ4], "[CHAMP4]", _
MonCritère, NbrArg
' Si aucun critère n'est spécifié, renvoie tous les enregistrements.
If MonCritère = "" Then
MonCritère = "True"
End If
' Défini la propriété RecordSource du Sous-Formulaire
Me![Sous-Formulaire_Affichage_Global].Form.RecordSource = _
MonJeuEnreg
' Si aucun enregistrement ne correspond aux critères, affiche un message.
' Active le bouton Effacer.
If Me![Sous-Formulaire_Affichage_Global].Form.RecordsetClone._
RecordCount = 0 Then
MsgBox "Aucun enregistrement ne correspond aux critères introduits.", _
48, "Aucun enregistrement trouvé"
Me!Effacer.SetFocus
Else
' Active le contrôle dans la section détail.
Tmp = ActiveContrôles("Detail", True)
' Place le point d'insertion dans le Sous-Formulaire
Me![Sous-Formulaire_Affichage_Global].SetFocus
End If
End Sub
------------------------------------------------------------------------
Private Sub Effacer_Click()
' Efface les contrôles dans l'en-tête de formulaire et retire les
' enregistrements du sous-formulaire.
Dim MonSQL As String
Dim Tmp As Variant
MonSQL = "SELECT * FROM [Table_Requetes] WHERE False"
' efface les zones de recherche.
Me![Recherche le champ1] = Null
Me![Recherche le champ2] = Null
Me![Recherche le champ3] = Null
Me![Recherche le champ4] = Null
' Réinitialise la propriété RecordSource du sous-formulaire pour _
' retirer les enregistrements.
Me![Sous-Formulaire_Affichage_Global].Form.RecordSource = MonSQL
' Place le point d'insertion dans le zone de texte Recherche la société.
Me![Recherche le champ1].SetFocus
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal02
Bonsoir
Vraiment, pas une petite aide ! J'ai mis trop de code ou mal tournée ma question ?
;-) siou palait, huuuum ! PASCAL
"Pascal02" a écrit dans le message de news:3fcc7dfb$0$2389$
Bonjour à vous tous,
Je ne sais plus ou j'avais récupéré cette routine (en tout cas excellente!)
qui bouclait sur des arguments provenant de controles et ajoutés en boucle auantant que de besoin pour extraire des infos filtrées !
L'ennui c'est qu'elle affiche la réponse SQL dynamiquement dans un sous-formulaire et que je voudrais qu'à l'affichage des infos plus ou moins filtrées je puissent sur un clic de bouton envoyer la réponse SQL vers un état ou vers une table.
J'espère bien m'être expliqué. Le code ci-dessous est plus clair... lui !
' Utilise l'ordre de la base pour les comparaisons de chaînes. Option Compare Database Option Explicit
Private Sub AjouteràWhere(ValeurChamp As Variant, NomChamp _ As String, MonCritère As String, NbrArg As Integer)
' Crée le critère pour la clause WHERE.
If ValeurChamp <> "" Then ' Ajoute "et" si aucun critère existe. If NbrArg > 0 Then MonCritère = MonCritère & " And " End If
' Ajoute le critère au critère existant. ' Entoure la valeur de ValeurChamp et l'astérisque de points ' d'exclamations. MonCritère = (MonCritère & NomChamp & " Like " & Chr(39) & _ ValeurChamp & Chr(42) & Chr(39))
' Augmente le compteur d'argument. NbrArg = NbrArg + 1 End If
End Sub ---------------------------------------------------------------------- Private Sub DisableControl()
' Si activé, désactive le contrôle dans la section détail après ' avoir changé le critère de sélection.
Dim Tmp As Variant
If Me![Sous-Formulaire_Affichage_Global].Enabled Then Tmp = ActiveContrôles("Detail", False) End If
End Sub ---------------------------------------------------------------------- Private Sub Afficher_listing_Click()
' Crée une clause WHERE en utilisant le critère recherche entré ' par l'utilisateur et définit la propriété Source (RecordSource) ' du sous-formulaire Trouver les clients.
Dim MonSQL As String, MonCritère As String, MonJeuEnreg As _ String Dim NbrArg As Integer Dim Tmp As Variant
' Initialise le compteur d'argument. NbrArg = 0
' Initialise l'instruction SELECT. MonSQL = "SELECT * FROM [Table_Requetes] WHERE " MonCritère = ""
' Utilise les valeurs entrées dans les zones de texte de l'en-tête de ' formulaire ' pour créer les critères de la clause WHERE.
' vous pouvez ajouter d'autres conditions avec le m^me type de ' ligne ci-dessous
AjouteràWhere [Recherche le champ1], "[CHAMP1]", _ MonCritère, NbrArg AjouteràWhere [Recherche le champ2], "[CHAMP2]", _ MonCritère, NbrArg AjouteràWhere [Recherche le champ3], "[CHAMP3]", _ MonCritère, NbrArg AjouteràWhere [Recherche la champ4], "[CHAMP4]", _ MonCritère, NbrArg
' Si aucun critère n'est spécifié, renvoie tous les enregistrements. If MonCritère = "" Then MonCritère = "True" End If
' Défini la propriété RecordSource du Sous-Formulaire Me![Sous-Formulaire_Affichage_Global].Form.RecordSource = _ MonJeuEnreg
' Si aucun enregistrement ne correspond aux critères, affiche un message. ' Active le bouton Effacer. If Me![Sous-Formulaire_Affichage_Global].Form.RecordsetClone._ RecordCount = 0 Then MsgBox "Aucun enregistrement ne correspond aux critères introduits.", _ 48, "Aucun enregistrement trouvé" Me!Effacer.SetFocus Else
' Active le contrôle dans la section détail. Tmp = ActiveContrôles("Detail", True) ' Place le point d'insertion dans le Sous-Formulaire Me![Sous-Formulaire_Affichage_Global].SetFocus End If
End Sub ------------------------------------------------------------------------ Private Sub Effacer_Click()
' Efface les contrôles dans l'en-tête de formulaire et retire les ' enregistrements du sous-formulaire.
Dim MonSQL As String Dim Tmp As Variant
MonSQL = "SELECT * FROM [Table_Requetes] WHERE False"
' efface les zones de recherche. Me![Recherche le champ1] = Null Me![Recherche le champ2] = Null Me![Recherche le champ3] = Null Me![Recherche le champ4] = Null
' Réinitialise la propriété RecordSource du sous-formulaire pour _ ' retirer les enregistrements. Me![Sous-Formulaire_Affichage_Global].Form.RecordSource = MonSQL
' Place le point d'insertion dans le zone de texte Recherche la société. Me![Recherche le champ1].SetFocus
End Sub
Bonsoir
Vraiment, pas une petite aide !
J'ai mis trop de code ou mal tournée ma question ?
;-)
siou palait, huuuum !
PASCAL
"Pascal02" <pascal02@netcourrier.com> a écrit dans le message de
news:3fcc7dfb$0$2389$626a54ce@news.free.fr...
Bonjour à vous tous,
Je ne sais plus ou j'avais récupéré cette routine (en tout cas
excellente!)
qui bouclait sur des arguments provenant de controles et ajoutés en boucle
auantant que de besoin pour extraire des infos filtrées !
L'ennui c'est qu'elle affiche la réponse SQL dynamiquement dans un
sous-formulaire
et que je voudrais qu'à l'affichage des infos plus ou moins filtrées je
puissent sur
un clic de bouton envoyer la réponse SQL vers un état ou vers une table.
J'espère bien m'être expliqué. Le code ci-dessous est plus clair... lui !
' Utilise l'ordre de la base pour les comparaisons de chaînes.
Option Compare Database
Option Explicit
Private Sub AjouteràWhere(ValeurChamp As Variant, NomChamp _
As String, MonCritère As String, NbrArg As Integer)
' Crée le critère pour la clause WHERE.
If ValeurChamp <> "" Then
' Ajoute "et" si aucun critère existe.
If NbrArg > 0 Then
MonCritère = MonCritère & " And "
End If
' Ajoute le critère au critère existant.
' Entoure la valeur de ValeurChamp et l'astérisque de points
' d'exclamations.
MonCritère = (MonCritère & NomChamp & " Like " & Chr(39) & _
ValeurChamp & Chr(42) & Chr(39))
' Augmente le compteur d'argument.
NbrArg = NbrArg + 1
End If
End Sub
----------------------------------------------------------------------
Private Sub DisableControl()
' Si activé, désactive le contrôle dans la section détail après
' avoir changé le critère de sélection.
Dim Tmp As Variant
If Me![Sous-Formulaire_Affichage_Global].Enabled Then
Tmp = ActiveContrôles("Detail", False)
End If
End Sub
----------------------------------------------------------------------
Private Sub Afficher_listing_Click()
' Crée une clause WHERE en utilisant le critère recherche entré
' par l'utilisateur et définit la propriété Source (RecordSource)
' du sous-formulaire Trouver les clients.
Dim MonSQL As String, MonCritère As String, MonJeuEnreg As _
String
Dim NbrArg As Integer
Dim Tmp As Variant
' Initialise le compteur d'argument.
NbrArg = 0
' Initialise l'instruction SELECT.
MonSQL = "SELECT * FROM [Table_Requetes] WHERE "
MonCritère = ""
' Utilise les valeurs entrées dans les zones de texte de l'en-tête de
' formulaire
' pour créer les critères de la clause WHERE.
' vous pouvez ajouter d'autres conditions avec le m^me type de
' ligne ci-dessous
AjouteràWhere [Recherche le champ1], "[CHAMP1]", _
MonCritère, NbrArg
AjouteràWhere [Recherche le champ2], "[CHAMP2]", _
MonCritère, NbrArg
AjouteràWhere [Recherche le champ3], "[CHAMP3]", _
MonCritère, NbrArg
AjouteràWhere [Recherche la champ4], "[CHAMP4]", _
MonCritère, NbrArg
' Si aucun critère n'est spécifié, renvoie tous les enregistrements.
If MonCritère = "" Then
MonCritère = "True"
End If
' Défini la propriété RecordSource du Sous-Formulaire
Me![Sous-Formulaire_Affichage_Global].Form.RecordSource = _
MonJeuEnreg
' Si aucun enregistrement ne correspond aux critères, affiche un message.
' Active le bouton Effacer.
If Me![Sous-Formulaire_Affichage_Global].Form.RecordsetClone._
RecordCount = 0 Then
MsgBox "Aucun enregistrement ne correspond aux critères introduits.", _
48, "Aucun enregistrement trouvé"
Me!Effacer.SetFocus
Else
' Active le contrôle dans la section détail.
Tmp = ActiveContrôles("Detail", True)
' Place le point d'insertion dans le Sous-Formulaire
Me![Sous-Formulaire_Affichage_Global].SetFocus
End If
End Sub
------------------------------------------------------------------------
Private Sub Effacer_Click()
' Efface les contrôles dans l'en-tête de formulaire et retire les
' enregistrements du sous-formulaire.
Dim MonSQL As String
Dim Tmp As Variant
MonSQL = "SELECT * FROM [Table_Requetes] WHERE False"
' efface les zones de recherche.
Me![Recherche le champ1] = Null
Me![Recherche le champ2] = Null
Me![Recherche le champ3] = Null
Me![Recherche le champ4] = Null
' Réinitialise la propriété RecordSource du sous-formulaire pour _
' retirer les enregistrements.
Me![Sous-Formulaire_Affichage_Global].Form.RecordSource = MonSQL
' Place le point d'insertion dans le zone de texte Recherche la société.
Me![Recherche le champ1].SetFocus
Vraiment, pas une petite aide ! J'ai mis trop de code ou mal tournée ma question ?
;-) siou palait, huuuum ! PASCAL
"Pascal02" a écrit dans le message de news:3fcc7dfb$0$2389$
Bonjour à vous tous,
Je ne sais plus ou j'avais récupéré cette routine (en tout cas excellente!)
qui bouclait sur des arguments provenant de controles et ajoutés en boucle auantant que de besoin pour extraire des infos filtrées !
L'ennui c'est qu'elle affiche la réponse SQL dynamiquement dans un sous-formulaire et que je voudrais qu'à l'affichage des infos plus ou moins filtrées je puissent sur un clic de bouton envoyer la réponse SQL vers un état ou vers une table.
J'espère bien m'être expliqué. Le code ci-dessous est plus clair... lui !
' Utilise l'ordre de la base pour les comparaisons de chaînes. Option Compare Database Option Explicit
Private Sub AjouteràWhere(ValeurChamp As Variant, NomChamp _ As String, MonCritère As String, NbrArg As Integer)
' Crée le critère pour la clause WHERE.
If ValeurChamp <> "" Then ' Ajoute "et" si aucun critère existe. If NbrArg > 0 Then MonCritère = MonCritère & " And " End If
' Ajoute le critère au critère existant. ' Entoure la valeur de ValeurChamp et l'astérisque de points ' d'exclamations. MonCritère = (MonCritère & NomChamp & " Like " & Chr(39) & _ ValeurChamp & Chr(42) & Chr(39))
' Augmente le compteur d'argument. NbrArg = NbrArg + 1 End If
End Sub ---------------------------------------------------------------------- Private Sub DisableControl()
' Si activé, désactive le contrôle dans la section détail après ' avoir changé le critère de sélection.
Dim Tmp As Variant
If Me![Sous-Formulaire_Affichage_Global].Enabled Then Tmp = ActiveContrôles("Detail", False) End If
End Sub ---------------------------------------------------------------------- Private Sub Afficher_listing_Click()
' Crée une clause WHERE en utilisant le critère recherche entré ' par l'utilisateur et définit la propriété Source (RecordSource) ' du sous-formulaire Trouver les clients.
Dim MonSQL As String, MonCritère As String, MonJeuEnreg As _ String Dim NbrArg As Integer Dim Tmp As Variant
' Initialise le compteur d'argument. NbrArg = 0
' Initialise l'instruction SELECT. MonSQL = "SELECT * FROM [Table_Requetes] WHERE " MonCritère = ""
' Utilise les valeurs entrées dans les zones de texte de l'en-tête de ' formulaire ' pour créer les critères de la clause WHERE.
' vous pouvez ajouter d'autres conditions avec le m^me type de ' ligne ci-dessous
AjouteràWhere [Recherche le champ1], "[CHAMP1]", _ MonCritère, NbrArg AjouteràWhere [Recherche le champ2], "[CHAMP2]", _ MonCritère, NbrArg AjouteràWhere [Recherche le champ3], "[CHAMP3]", _ MonCritère, NbrArg AjouteràWhere [Recherche la champ4], "[CHAMP4]", _ MonCritère, NbrArg
' Si aucun critère n'est spécifié, renvoie tous les enregistrements. If MonCritère = "" Then MonCritère = "True" End If
' Défini la propriété RecordSource du Sous-Formulaire Me![Sous-Formulaire_Affichage_Global].Form.RecordSource = _ MonJeuEnreg
' Si aucun enregistrement ne correspond aux critères, affiche un message. ' Active le bouton Effacer. If Me![Sous-Formulaire_Affichage_Global].Form.RecordsetClone._ RecordCount = 0 Then MsgBox "Aucun enregistrement ne correspond aux critères introduits.", _ 48, "Aucun enregistrement trouvé" Me!Effacer.SetFocus Else
' Active le contrôle dans la section détail. Tmp = ActiveContrôles("Detail", True) ' Place le point d'insertion dans le Sous-Formulaire Me![Sous-Formulaire_Affichage_Global].SetFocus End If
End Sub ------------------------------------------------------------------------ Private Sub Effacer_Click()
' Efface les contrôles dans l'en-tête de formulaire et retire les ' enregistrements du sous-formulaire.
Dim MonSQL As String Dim Tmp As Variant
MonSQL = "SELECT * FROM [Table_Requetes] WHERE False"
' efface les zones de recherche. Me![Recherche le champ1] = Null Me![Recherche le champ2] = Null Me![Recherche le champ3] = Null Me![Recherche le champ4] = Null
' Réinitialise la propriété RecordSource du sous-formulaire pour _ ' retirer les enregistrements. Me![Sous-Formulaire_Affichage_Global].Form.RecordSource = MonSQL
' Place le point d'insertion dans le zone de texte Recherche la société. Me![Recherche le champ1].SetFocus
End Sub
Raymond [mvp]
Bonsoir.
c'est vrai que autant de code refroidit un peut l'enthousiasme. tu trouveras une base exemple sur la page: http://access.seneque.free.fr/bases_exemples.htm N° 2 permet de créer une table "_export" et un fichier ".txt" avec les champs sélectionnés d'une table -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"Pascal02" a écrit dans le message de news:3fcce809$0$2381$
Bonsoir
Vraiment, pas une petite aide ! J'ai mis trop de code ou mal tournée ma question ?
;-) siou palait, huuuum ! PASCAL
Bonsoir.
c'est vrai que autant de code refroidit un peut l'enthousiasme.
tu trouveras une base exemple sur la page:
http://access.seneque.free.fr/bases_exemples.htm N° 2
permet de créer une table "_export" et un fichier ".txt" avec les champs
sélectionnés d'une table
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Pascal02" <pascal02@netcourrier.com> a écrit dans le message de
news:3fcce809$0$2381$626a54ce@news.free.fr...
Bonsoir
Vraiment, pas une petite aide !
J'ai mis trop de code ou mal tournée ma question ?
c'est vrai que autant de code refroidit un peut l'enthousiasme. tu trouveras une base exemple sur la page: http://access.seneque.free.fr/bases_exemples.htm N° 2 permet de créer une table "_export" et un fichier ".txt" avec les champs sélectionnés d'une table -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"Pascal02" a écrit dans le message de news:3fcce809$0$2381$
Bonsoir
Vraiment, pas une petite aide ! J'ai mis trop de code ou mal tournée ma question ?