Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
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 08/02/2011, 07h48   #1
Membre du Club
 
Homme Claude Larocque
Développeur informatique
Inscription : mai 2009
Messages : 61
Détails du profil
Informations personnelles :
Nom : Homme Claude Larocque
Localisation : Canada

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 61
Points : 46
Points : 46
Par défaut Création automatique d'une requête basée sur le dernier enregistrement d'une table

Bonjour, je joins un fichier Word pour démontrer plus efficacement ce que j'essai d'accomplir, en résumé, si un nouvel enregistrement est créé dans la table Produits, ayant comme ID le 433, j'aimerais qu'une requête soit créée automatiquement qui porterait le nom Produits433 et qui ne contiendrait que les informations de ce dernier enregistrement.
Confus, svp, regarder mon document Word qui vous fournis des détails imagés.

Claude
Montréal, Québec
toumack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 08h35   #2
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 410
Points : 4 439
Points : 4 439
bonjour,

je ne comprend pas le besoin de créer une requête par produit

Pourquoi ne pas créer une seule requête enregistrée et paramétrée avec le numéro du produit:

Code sql :
1
2
3
PARAMETERS [Identifiant produit] long;
SELECT Produits.ID, Produits.Barcode, Produits.PrixVente, Produits.VentesGL, Produits.CaisseGL, Produits.StockageGL, Produits.AchatsGL, Produits.TPSGL, Produits.TVQGL, Produits.ChargéGL, Produits.VisaGL, Produits.MastercardGL, Produits.DiscoverGL, Produits.CarteDébitGL, Produits.CarteCréditAutreGL, Produits.ChèquesGL, Produits.ClientLCMGL FROM Produits 
WHERE Produits.ID= [Identifiant produit]

non ?
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 09h18   #3
Membre du Club
 
Homme Claude Larocque
Développeur informatique
Inscription : mai 2009
Messages : 61
Détails du profil
Informations personnelles :
Nom : Homme Claude Larocque
Localisation : Canada

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 61
Points : 46
Points : 46
Par défaut Plusieurs boutons de commande ont une requête par produit

Merci f-leb de ta réponse rapide.
La réponse est la suivante, sur plusieurs formulaires, j’ai des boutons qui ont un code VBA qui utilise ces requêtes pour extraire des informations relatives à un produit spécifique, par exemple, le bouton plante à fleurs 500 g contient le code VBA suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Private Sub Commande530_Click()
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Set dbs = CurrentDb
 
Set rst = dbs.OpenRecordset("TransactionsCaisseTemporaire", dbOpenDynaset)
Set rst2 = dbs.OpenRecordset("Produits194", dbOpenDynaset)
 
If txtDisplay.Caption = 0 Then
        MsgBoxOKOnly ChoisirQuantité
 
        Exit Sub
    End If
 
 With rst
        Call ClipBoard_SetData(txtDisplay.Caption)
        DoCmd.GoToControl "QuantitéVendue2"
        DoCmd.RunCommand acCmdPaste
        txtDisplay.Caption = 0
        DoCmd.GoToControl "NomProduit"
        NomProduit = rst2.Barcode
        DoCmd.GoToControl "PrixVendant"
        PrixVendant = rst2.PrixVente
        RéfProduit = rst2.ID
        PrixAvantEsc = PrixVendant
        DoCmd.GoToControl "Quantité1c"
        Refresh
        DoCmd.GoToRecord , "", acNewRec
 
    End With
 
End Sub
CE CODE retourne les informations contenues dans la requête « Produits194 »
Comme tu vois, c’est que tous ces boutons contiennent une source de données différentes dans le code.

J’espère que c’est assez explicite, merci encore
toumack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 10h01   #4
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 410
Points : 4 439
Points : 4 439
Code :
Set rst2 = dbs.OpenRecordset("Produits194", dbOpenDynaset)
en poursuivant sur l'idée de la requête paramétrée précédente (nommée "ReqProduit" par exemple):

Code :
1
2
3
4
5
6
7
 
Dim qdf As DAO.QueryDef
 
Set qdf = dbs.QueryDefs("ReqProduit")
      qdf.Parameters("[Identifiant produit]") = 194
 
  Set rst2 = qdf.OpenRecordset
tu obtiens le même résultat mais avec une seule requête enregistrée au préalable.
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 11h01   #5
Membre du Club
 
Homme Claude Larocque
Développeur informatique
Inscription : mai 2009
Messages : 61
Détails du profil
Informations personnelles :
Nom : Homme Claude Larocque
Localisation : Canada

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 61
Points : 46
Points : 46
Par défaut Merci Andrey

Mon problème a été résolu rapidement même s'il n'était pas simple à première vue, j'écris ici le code qui a fait que tout a fonctionné, sans oublié de presser le bouton de balises comme indiqué par le modérateur... merci de me le rappeler
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Dim dbs As Database
Dim strSQL As String
Dim strQueryName As String
Dim qryDef As QueryDef
Dim CurrentID%
Set dbs = CurrentDb
CurrentID = Me.ID.Value
strQueryName = "Produits" & CurrentID
strSQL = "SELECT Produits.ID, Produits.Barcode, Produits.PrixVente, Produits.VentesGL, Produits.CaisseGL, Produits.StockageGL, Produits.AchatsGL, Produits.TPSGL, Produits.TVQGL, Produits.ChargéGL, Produits.VisaGL, Produits.MastercardGL, Produits.DiscoverGL, Produits.CarteDébitGL, Produits.CarteCréditAutreGL, Produits.ChèquesGL, Produits.ClientLCMGL FROM Produits WHERE Produits.ID=" & CurrentID
DoCmd.ShowAllRecords
Set qryDef = dbs.CreateQueryDef(strQueryName, strSQL)
Set qryDef = Nothing
Set dbs = Nothing
toumack 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 07h46.


 
 
 
 
Partenaires

Hébergement Web