Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la
sélection ou non d'un champs (et donc son affichage colonne dans le
résultat de la requête).
J'arrive à rendre la colonne vide, mais pas à la masquer
complètement. Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la
sélection ou non d'un champs (et donc son affichage colonne dans le
résultat de la requête).
J'arrive à rendre la colonne vide, mais pas à la masquer
complètement. Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la
sélection ou non d'un champs (et donc son affichage colonne dans le
résultat de la requête).
J'arrive à rendre la colonne vide, mais pas à la masquer
complètement. Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la sélection ou
non
d'un champs (et donc son affichage colonne dans le résultat de la
requête).
J'arrive à rendre la colonne vide, mais pas à la masquer complètement.
Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la sélection ou
non
d'un champs (et donc son affichage colonne dans le résultat de la
requête).
J'arrive à rendre la colonne vide, mais pas à la masquer complètement.
Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la sélection ou
non
d'un champs (et donc son affichage colonne dans le résultat de la
requête).
J'arrive à rendre la colonne vide, mais pas à la masquer complètement.
Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Bonjour Kolonna,
Un formulaire avec une case à cocher nommée Cocher0. Sur mise à jour de
la case à cocher, la procédure suivante me montre ou non la colonne
Societe_Client.
Private Sub Cocher0_AfterUpdate()
Dim strSQL As String
Dim qry As DAO.QueryDef
strSQL = "select societe_client,contact_client,ville_client from
tclient"
If Cocher0.Value Then
strSQL = Replace(strSQL, "societe_client,", "")
End If
Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
DoCmd.OpenQuery ("tmp")
Set qry = Nothing
CurrentDb.QueryDefs.Delete "tmp"
End Sub
Attention s'il s'agit du dernier champ de la clause Select de la requête
car absence de la virgule.
Cela répond-il à ta demande ?
A+
Eric
"=?Utf-8?B?S29sb25uYQ==?=" écrivait
news::Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la
sélection ou non d'un champs (et donc son affichage colonne dans le
résultat de la requête).
J'arrive à rendre la colonne vide, mais pas à la masquer
complètement. Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Bonjour Kolonna,
Un formulaire avec une case à cocher nommée Cocher0. Sur mise à jour de
la case à cocher, la procédure suivante me montre ou non la colonne
Societe_Client.
Private Sub Cocher0_AfterUpdate()
Dim strSQL As String
Dim qry As DAO.QueryDef
strSQL = "select societe_client,contact_client,ville_client from
tclient"
If Cocher0.Value Then
strSQL = Replace(strSQL, "societe_client,", "")
End If
Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
DoCmd.OpenQuery ("tmp")
Set qry = Nothing
CurrentDb.QueryDefs.Delete "tmp"
End Sub
Attention s'il s'agit du dernier champ de la clause Select de la requête
car absence de la virgule.
Cela répond-il à ta demande ?
A+
Eric
"=?Utf-8?B?S29sb25uYQ==?=" <Kolonna@discussions.microsoft.com> écrivait
news:DD2AE129-BB81-4C4A-96F4-5032087D049C@microsoft.com:
Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la
sélection ou non d'un champs (et donc son affichage colonne dans le
résultat de la requête).
J'arrive à rendre la colonne vide, mais pas à la masquer
complètement. Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Bonjour Kolonna,
Un formulaire avec une case à cocher nommée Cocher0. Sur mise à jour de
la case à cocher, la procédure suivante me montre ou non la colonne
Societe_Client.
Private Sub Cocher0_AfterUpdate()
Dim strSQL As String
Dim qry As DAO.QueryDef
strSQL = "select societe_client,contact_client,ville_client from
tclient"
If Cocher0.Value Then
strSQL = Replace(strSQL, "societe_client,", "")
End If
Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
DoCmd.OpenQuery ("tmp")
Set qry = Nothing
CurrentDb.QueryDefs.Delete "tmp"
End Sub
Attention s'il s'agit du dernier champ de la clause Select de la requête
car absence de la virgule.
Cela répond-il à ta demande ?
A+
Eric
"=?Utf-8?B?S29sb25uYQ==?=" écrivait
news::Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la
sélection ou non d'un champs (et donc son affichage colonne dans le
résultat de la requête).
J'arrive à rendre la colonne vide, mais pas à la masquer
complètement. Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Merci !
P'tite question complémentaire, puisque je vois que je vais être obligé de
me mettre aux requêtes via vba...
Peux-tu m'indiquer comment construire cette requête selection en vba ?
J'ai essayé comme ceci, via un bouton:
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(StrSql)
End Sub
mais rien ne s'ouvre !!
J'ai surement dû raté un truc...
Merci d'avance,
Kolonna.Bonjour Kolonna,
Un formulaire avec une case à cocher nommée Cocher0. Sur mise à jour de
la case à cocher, la procédure suivante me montre ou non la colonne
Societe_Client.
Private Sub Cocher0_AfterUpdate()
Dim strSQL As String
Dim qry As DAO.QueryDef
strSQL = "select societe_client,contact_client,ville_client from
tclient"
If Cocher0.Value Then
strSQL = Replace(strSQL, "societe_client,", "")
End If
Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
DoCmd.OpenQuery ("tmp")
Set qry = Nothing
CurrentDb.QueryDefs.Delete "tmp"
End Sub
Attention s'il s'agit du dernier champ de la clause Select de la requête
car absence de la virgule.
Cela répond-il à ta demande ?
A+
Eric
"=?Utf-8?B?S29sb25uYQ==?=" écrivait
news::Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la
sélection ou non d'un champs (et donc son affichage colonne dans le
résultat de la requête).
J'arrive à rendre la colonne vide, mais pas à la masquer
complètement. Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Merci !
P'tite question complémentaire, puisque je vois que je vais être obligé de
me mettre aux requêtes via vba...
Peux-tu m'indiquer comment construire cette requête selection en vba ?
J'ai essayé comme ceci, via un bouton:
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(StrSql)
End Sub
mais rien ne s'ouvre !!
J'ai surement dû raté un truc...
Merci d'avance,
Kolonna.
Bonjour Kolonna,
Un formulaire avec une case à cocher nommée Cocher0. Sur mise à jour de
la case à cocher, la procédure suivante me montre ou non la colonne
Societe_Client.
Private Sub Cocher0_AfterUpdate()
Dim strSQL As String
Dim qry As DAO.QueryDef
strSQL = "select societe_client,contact_client,ville_client from
tclient"
If Cocher0.Value Then
strSQL = Replace(strSQL, "societe_client,", "")
End If
Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
DoCmd.OpenQuery ("tmp")
Set qry = Nothing
CurrentDb.QueryDefs.Delete "tmp"
End Sub
Attention s'il s'agit du dernier champ de la clause Select de la requête
car absence de la virgule.
Cela répond-il à ta demande ?
A+
Eric
"=?Utf-8?B?S29sb25uYQ==?=" <Kolonna@discussions.microsoft.com> écrivait
news:DD2AE129-BB81-4C4A-96F4-5032087D049C@microsoft.com:
Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la
sélection ou non d'un champs (et donc son affichage colonne dans le
résultat de la requête).
J'arrive à rendre la colonne vide, mais pas à la masquer
complètement. Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Merci !
P'tite question complémentaire, puisque je vois que je vais être obligé de
me mettre aux requêtes via vba...
Peux-tu m'indiquer comment construire cette requête selection en vba ?
J'ai essayé comme ceci, via un bouton:
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(StrSql)
End Sub
mais rien ne s'ouvre !!
J'ai surement dû raté un truc...
Merci d'avance,
Kolonna.Bonjour Kolonna,
Un formulaire avec une case à cocher nommée Cocher0. Sur mise à jour de
la case à cocher, la procédure suivante me montre ou non la colonne
Societe_Client.
Private Sub Cocher0_AfterUpdate()
Dim strSQL As String
Dim qry As DAO.QueryDef
strSQL = "select societe_client,contact_client,ville_client from
tclient"
If Cocher0.Value Then
strSQL = Replace(strSQL, "societe_client,", "")
End If
Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
DoCmd.OpenQuery ("tmp")
Set qry = Nothing
CurrentDb.QueryDefs.Delete "tmp"
End Sub
Attention s'il s'agit du dernier champ de la clause Select de la requête
car absence de la virgule.
Cela répond-il à ta demande ?
A+
Eric
"=?Utf-8?B?S29sb25uYQ==?=" écrivait
news::Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la
sélection ou non d'un champs (et donc son affichage colonne dans le
résultat de la requête).
J'arrive à rendre la colonne vide, mais pas à la masquer
complètement. Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Bonjour,
En fait ton code est bon, mais si rien ne s'ouvre c'est normal.
En fait tu viens de créer un recordset qui contient toutes les données
correspondant à ta requête.
Maintenant tout dépend ce que tu veux faire de tes données.
Si tu veux les mettres source d'un état ou d'un form, tu n'as pas besoin de
recordset.
Si tu veux parcourir tes données en vba pour faire des traitement tu peux,
par exemple comme suit :
Do While Not Rs.EOF
'ici tu mets ton traitement
Rs.Movenext
Loop
le code suivant permet de boucler ligne à ligne dans ton recordset jusqu'à
la fin de fichier.
Si tu veux afficher un champ, tu peux mettre à la place de 'ici tu mets ton
traitement :
Msgbox Rs.Fields("NomDeTonChamp")
ici le msgbox permet l'affichage, et fields permet de récupérer un champ
nommé entre les guillemets.
Bref, tout dépend de ce que tu veux faire au final
Arnaud
"Kolonna" a écrit dans le message news:Merci !
P'tite question complémentaire, puisque je vois que je vais être obligé de
me mettre aux requêtes via vba...
Peux-tu m'indiquer comment construire cette requête selection en vba ?
J'ai essayé comme ceci, via un bouton:
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(StrSql)
End Sub
mais rien ne s'ouvre !!
J'ai surement dû raté un truc...
Merci d'avance,
Kolonna.Bonjour Kolonna,
Un formulaire avec une case à cocher nommée Cocher0. Sur mise à jour de
la case à cocher, la procédure suivante me montre ou non la colonne
Societe_Client.
Private Sub Cocher0_AfterUpdate()
Dim strSQL As String
Dim qry As DAO.QueryDef
strSQL = "select societe_client,contact_client,ville_client from
tclient"
If Cocher0.Value Then
strSQL = Replace(strSQL, "societe_client,", "")
End If
Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
DoCmd.OpenQuery ("tmp")
Set qry = Nothing
CurrentDb.QueryDefs.Delete "tmp"
End Sub
Attention s'il s'agit du dernier champ de la clause Select de la requête
car absence de la virgule.
Cela répond-il à ta demande ?
A+
Eric
"=?Utf-8?B?S29sb25uYQ==?=" écrivait
news::Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la
sélection ou non d'un champs (et donc son affichage colonne dans le
résultat de la requête).
J'arrive à rendre la colonne vide, mais pas à la masquer
complètement. Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Bonjour,
En fait ton code est bon, mais si rien ne s'ouvre c'est normal.
En fait tu viens de créer un recordset qui contient toutes les données
correspondant à ta requête.
Maintenant tout dépend ce que tu veux faire de tes données.
Si tu veux les mettres source d'un état ou d'un form, tu n'as pas besoin de
recordset.
Si tu veux parcourir tes données en vba pour faire des traitement tu peux,
par exemple comme suit :
Do While Not Rs.EOF
'ici tu mets ton traitement
Rs.Movenext
Loop
le code suivant permet de boucler ligne à ligne dans ton recordset jusqu'à
la fin de fichier.
Si tu veux afficher un champ, tu peux mettre à la place de 'ici tu mets ton
traitement :
Msgbox Rs.Fields("NomDeTonChamp")
ici le msgbox permet l'affichage, et fields permet de récupérer un champ
nommé entre les guillemets.
Bref, tout dépend de ce que tu veux faire au final
Arnaud
"Kolonna" <Kolonna@discussions.microsoft.com> a écrit dans le message news:
CE316C3F-7B24-43EE-B632-7EE12C636D78@microsoft.com...
Merci !
P'tite question complémentaire, puisque je vois que je vais être obligé de
me mettre aux requêtes via vba...
Peux-tu m'indiquer comment construire cette requête selection en vba ?
J'ai essayé comme ceci, via un bouton:
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(StrSql)
End Sub
mais rien ne s'ouvre !!
J'ai surement dû raté un truc...
Merci d'avance,
Kolonna.
Bonjour Kolonna,
Un formulaire avec une case à cocher nommée Cocher0. Sur mise à jour de
la case à cocher, la procédure suivante me montre ou non la colonne
Societe_Client.
Private Sub Cocher0_AfterUpdate()
Dim strSQL As String
Dim qry As DAO.QueryDef
strSQL = "select societe_client,contact_client,ville_client from
tclient"
If Cocher0.Value Then
strSQL = Replace(strSQL, "societe_client,", "")
End If
Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
DoCmd.OpenQuery ("tmp")
Set qry = Nothing
CurrentDb.QueryDefs.Delete "tmp"
End Sub
Attention s'il s'agit du dernier champ de la clause Select de la requête
car absence de la virgule.
Cela répond-il à ta demande ?
A+
Eric
"=?Utf-8?B?S29sb25uYQ==?=" <Kolonna@discussions.microsoft.com> écrivait
news:DD2AE129-BB81-4C4A-96F4-5032087D049C@microsoft.com:
Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la
sélection ou non d'un champs (et donc son affichage colonne dans le
résultat de la requête).
J'arrive à rendre la colonne vide, mais pas à la masquer
complètement. Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Bonjour,
En fait ton code est bon, mais si rien ne s'ouvre c'est normal.
En fait tu viens de créer un recordset qui contient toutes les données
correspondant à ta requête.
Maintenant tout dépend ce que tu veux faire de tes données.
Si tu veux les mettres source d'un état ou d'un form, tu n'as pas besoin de
recordset.
Si tu veux parcourir tes données en vba pour faire des traitement tu peux,
par exemple comme suit :
Do While Not Rs.EOF
'ici tu mets ton traitement
Rs.Movenext
Loop
le code suivant permet de boucler ligne à ligne dans ton recordset jusqu'à
la fin de fichier.
Si tu veux afficher un champ, tu peux mettre à la place de 'ici tu mets ton
traitement :
Msgbox Rs.Fields("NomDeTonChamp")
ici le msgbox permet l'affichage, et fields permet de récupérer un champ
nommé entre les guillemets.
Bref, tout dépend de ce que tu veux faire au final
Arnaud
"Kolonna" a écrit dans le message news:Merci !
P'tite question complémentaire, puisque je vois que je vais être obligé de
me mettre aux requêtes via vba...
Peux-tu m'indiquer comment construire cette requête selection en vba ?
J'ai essayé comme ceci, via un bouton:
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(StrSql)
End Sub
mais rien ne s'ouvre !!
J'ai surement dû raté un truc...
Merci d'avance,
Kolonna.Bonjour Kolonna,
Un formulaire avec une case à cocher nommée Cocher0. Sur mise à jour de
la case à cocher, la procédure suivante me montre ou non la colonne
Societe_Client.
Private Sub Cocher0_AfterUpdate()
Dim strSQL As String
Dim qry As DAO.QueryDef
strSQL = "select societe_client,contact_client,ville_client from
tclient"
If Cocher0.Value Then
strSQL = Replace(strSQL, "societe_client,", "")
End If
Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
DoCmd.OpenQuery ("tmp")
Set qry = Nothing
CurrentDb.QueryDefs.Delete "tmp"
End Sub
Attention s'il s'agit du dernier champ de la clause Select de la requête
car absence de la virgule.
Cela répond-il à ta demande ?
A+
Eric
"=?Utf-8?B?S29sb25uYQ==?=" écrivait
news::Bonjour à tous,
dans une simple requête de ce style
SELECT champs1, champs2,...
j'aimerai, en fonction d'un contrôle, pouvoir déterminer la
sélection ou non d'un champs (et donc son affichage colonne dans le
résultat de la requête).
J'arrive à rendre la colonne vide, mais pas à la masquer
complètement. Quelqu'un a-t-il une solution ?
Merci d'avance.
Kolonna.
Merci !
P'tite question complémentaire, puisque je vois que je vais être
obligé de me mettre aux requêtes via vba...
Peux-tu m'indiquer comment construire cette requête selection en vba
? J'ai essayé comme ceci, via un bouton:
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(StrSql)
End Sub
mais rien ne s'ouvre !!
J'ai surement dû raté un truc...
Merci d'avance,
Kolonna.
Merci !
P'tite question complémentaire, puisque je vois que je vais être
obligé de me mettre aux requêtes via vba...
Peux-tu m'indiquer comment construire cette requête selection en vba
? J'ai essayé comme ceci, via un bouton:
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(StrSql)
End Sub
mais rien ne s'ouvre !!
J'ai surement dû raté un truc...
Merci d'avance,
Kolonna.
Merci !
P'tite question complémentaire, puisque je vois que je vais être
obligé de me mettre aux requêtes via vba...
Peux-tu m'indiquer comment construire cette requête selection en vba
? J'ai essayé comme ceci, via un bouton:
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(StrSql)
End Sub
mais rien ne s'ouvre !!
J'ai surement dû raté un truc...
Merci d'avance,
Kolonna.
Re,
En complément de la réponse de Gafish,
Dans le code que tu donnes(il est bon), tu déclares un Recordset et puis
tu l'ouvres par la méthode OpenRecordset mais tu ne mets pas de
traitement derrière, donc il est normal que rien ne s'affiche.
(A retenir : OpenRecordset n'affiche rien mais permet d'avoir accès aux
champs du jeu d'enregistrements)
Si tu veux créer ta requête en VBA, tu dois déclarer un Objet Querydef
puis définir ton SQL, créer la requête et enfin l'ouvrir.
Pour reprendre ton exemple :
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim qry as DAO.QueryDef <------ Ici
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set qry = Db.CreateQueryDef("NomRequête", StrSQL) <-- et là
DoCmd.OpenQuery "NomRequête" <--- là aussi
Set qry = Nothing
End Sub
Il te faut savoir que cette requête va être enregistrée dans la
collection des requêtes. Elle figurera dans l'Onglet Requêtes de la
fenêtre de la base de données. Donc si tu relances la procédure en
recliquant sur le bouton tu auras une erreur car tu essaies de créer une
requête portant un nom déjà affecté.
Pour l'éviter, avant le End Sub tu mets :
Db.QueryDefs.Delete "NomRequête"
Dans la base courante, dans la collection des Requêtes, tu demandes à
supprimer la requête dont le nom est NomRequête.
La requête est alors supprimée et sera reconstruite lors du clic sur le
bouton. La fenetre retournant le jeu d'enregistrements n'en est pas
affectée tant que tu ne la fermes pas.
C'est plus clair ?
A+
Eric
"=?Utf-8?B?S29sb25uYQ==?=" écrivait
news::Merci !
P'tite question complémentaire, puisque je vois que je vais être
obligé de me mettre aux requêtes via vba...
Peux-tu m'indiquer comment construire cette requête selection en vba
? J'ai essayé comme ceci, via un bouton:
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(StrSql)
End Sub
mais rien ne s'ouvre !!
J'ai surement dû raté un truc...
Merci d'avance,
Kolonna.
Re,
En complément de la réponse de Gafish,
Dans le code que tu donnes(il est bon), tu déclares un Recordset et puis
tu l'ouvres par la méthode OpenRecordset mais tu ne mets pas de
traitement derrière, donc il est normal que rien ne s'affiche.
(A retenir : OpenRecordset n'affiche rien mais permet d'avoir accès aux
champs du jeu d'enregistrements)
Si tu veux créer ta requête en VBA, tu dois déclarer un Objet Querydef
puis définir ton SQL, créer la requête et enfin l'ouvrir.
Pour reprendre ton exemple :
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim qry as DAO.QueryDef <------ Ici
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set qry = Db.CreateQueryDef("NomRequête", StrSQL) <-- et là
DoCmd.OpenQuery "NomRequête" <--- là aussi
Set qry = Nothing
End Sub
Il te faut savoir que cette requête va être enregistrée dans la
collection des requêtes. Elle figurera dans l'Onglet Requêtes de la
fenêtre de la base de données. Donc si tu relances la procédure en
recliquant sur le bouton tu auras une erreur car tu essaies de créer une
requête portant un nom déjà affecté.
Pour l'éviter, avant le End Sub tu mets :
Db.QueryDefs.Delete "NomRequête"
Dans la base courante, dans la collection des Requêtes, tu demandes à
supprimer la requête dont le nom est NomRequête.
La requête est alors supprimée et sera reconstruite lors du clic sur le
bouton. La fenetre retournant le jeu d'enregistrements n'en est pas
affectée tant que tu ne la fermes pas.
C'est plus clair ?
A+
Eric
"=?Utf-8?B?S29sb25uYQ==?=" <Kolonna@discussions.microsoft.com> écrivait
news:CE316C3F-7B24-43EE-B632-7EE12C636D78@microsoft.com:
Merci !
P'tite question complémentaire, puisque je vois que je vais être
obligé de me mettre aux requêtes via vba...
Peux-tu m'indiquer comment construire cette requête selection en vba
? J'ai essayé comme ceci, via un bouton:
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(StrSql)
End Sub
mais rien ne s'ouvre !!
J'ai surement dû raté un truc...
Merci d'avance,
Kolonna.
Re,
En complément de la réponse de Gafish,
Dans le code que tu donnes(il est bon), tu déclares un Recordset et puis
tu l'ouvres par la méthode OpenRecordset mais tu ne mets pas de
traitement derrière, donc il est normal que rien ne s'affiche.
(A retenir : OpenRecordset n'affiche rien mais permet d'avoir accès aux
champs du jeu d'enregistrements)
Si tu veux créer ta requête en VBA, tu dois déclarer un Objet Querydef
puis définir ton SQL, créer la requête et enfin l'ouvrir.
Pour reprendre ton exemple :
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim qry as DAO.QueryDef <------ Ici
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set qry = Db.CreateQueryDef("NomRequête", StrSQL) <-- et là
DoCmd.OpenQuery "NomRequête" <--- là aussi
Set qry = Nothing
End Sub
Il te faut savoir que cette requête va être enregistrée dans la
collection des requêtes. Elle figurera dans l'Onglet Requêtes de la
fenêtre de la base de données. Donc si tu relances la procédure en
recliquant sur le bouton tu auras une erreur car tu essaies de créer une
requête portant un nom déjà affecté.
Pour l'éviter, avant le End Sub tu mets :
Db.QueryDefs.Delete "NomRequête"
Dans la base courante, dans la collection des Requêtes, tu demandes à
supprimer la requête dont le nom est NomRequête.
La requête est alors supprimée et sera reconstruite lors du clic sur le
bouton. La fenetre retournant le jeu d'enregistrements n'en est pas
affectée tant que tu ne la fermes pas.
C'est plus clair ?
A+
Eric
"=?Utf-8?B?S29sb25uYQ==?=" écrivait
news::Merci !
P'tite question complémentaire, puisque je vois que je vais être
obligé de me mettre aux requêtes via vba...
Peux-tu m'indiquer comment construire cette requête selection en vba
? J'ai essayé comme ceci, via un bouton:
Private Sub bouton_Click()
Dim StrSql As String
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
StrSql = "Select * from table1;"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(StrSql)
End Sub
mais rien ne s'ouvre !!
J'ai surement dû raté un truc...
Merci d'avance,
Kolonna.