Je veux g=E9rer les nos de clients, de factures, de commandes, etc ..
avec des compteurs dont les valeurs sont construites =E0 partir
d'=E9l=E9ments divers (ex : no dept + no annee + no s=E9quentiel) et c'est
pourquoi je n'utilise pas de no_auto.
Dans mon form Fact, champ NoFact, j'ai mis =E7a :
Private Sub NoFact_Enter() ' Sur entr=E9e dans le champ NoFact
If Me.NewRecord Then
' DoCmd.SetWarnings False
DoCmd.RunSQL ("SELECT Kteur.NoKteur, Kteur.NoCli, Kteur.NoFact
FROM Kteur WHERE Kteur.NoKteur=3D1;")
DoCmd.RunSQL ("UPDATE Kteur SET Kteur.NoFact =3D [Fact].[NoFact]+1
WHERE (((Kteur.NoKteur)=3D1));")
Me.NoFact =3D Kteur.NoFact
' DoCmd.SetWarnings True
End If
End Sub
Les requ=EAtes fonctionnent en mode SQL direct mais =E0 l'entr=E9e dans le
contr=F4le je me prends une erreur d'=E9x=E9cution 2342 disant que
l'argument pass=E9 =E0 RunSQL n'est pas une expression SQL.
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
Raymond [mvp]
runsql correspond à une instruction SQL valide pour une requête action ou une requête définition des données mais pas pour une requête selection. pour la selection, utiliser DLookup avec une clause where
x = DLookup("NoCli", "Kteur", "[NoKteur]=1") y = DLookup("NoFact", "Kteur", "[NoKteur]=1") au lieu de DoCmd.RunSQL ("SELECT Kteur.NoKteur, Kteur.NoCli, Kteur.NoFact FROM Kteur WHERE Kteur.NoKteur=1;")
on peut très bien se passer de compteur en allant chercher le dernier numéro par DMax +1 directement sur la table -- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ Pour débuter sur le forum: http://www.mpfa.info/ Nouvelle base Access des communes françaises avec longitude, latitude et 13246 sites internet officiels http://ardecheearth.free.fr/basededonnees.htm
"groumph" a écrit dans le message de news:
Bonjour,
Une table facture, une table compteur
Je veux gérer les nos de clients, de factures, de commandes, etc .. avec des compteurs dont les valeurs sont construites à partir d'éléments divers (ex : no dept + no annee + no séquentiel) et c'est pourquoi je n'utilise pas de no_auto.
Dans mon form Fact, champ NoFact, j'ai mis ça : Private Sub NoFact_Enter() ' Sur entrée dans le champ NoFact If Me.NewRecord Then ' DoCmd.SetWarnings False DoCmd.RunSQL ("SELECT Kteur.NoKteur, Kteur.NoCli, Kteur.NoFact FROM Kteur WHERE Kteur.NoKteur=1;") DoCmd.RunSQL ("UPDATE Kteur SET Kteur.NoFact = [Fact].[NoFact]+1 WHERE (((Kteur.NoKteur)=1));") Me.NoFact = Kteur.NoFact ' DoCmd.SetWarnings True End If End Sub
Les requêtes fonctionnent en mode SQL direct mais à l'entrée dans le contrôle je me prends une erreur d'éxécution 2342 disant que l'argument passé à RunSQL n'est pas une expression SQL.
Si qqun à une explication ... Merci
runsql correspond à une instruction SQL valide pour une requête action ou
une requête définition des données mais pas pour une requête selection.
pour la selection, utiliser DLookup avec une clause where
x = DLookup("NoCli", "Kteur", "[NoKteur]=1")
y = DLookup("NoFact", "Kteur", "[NoKteur]=1")
au lieu de
DoCmd.RunSQL ("SELECT Kteur.NoKteur, Kteur.NoCli, Kteur.NoFact
FROM Kteur WHERE Kteur.NoKteur=1;")
on peut très bien se passer de compteur en allant chercher le dernier numéro
par DMax +1 directement sur la table
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm
"groumph" <gaslag@hotmail.com> a écrit dans le message de news:
1156779107.381843.293010@b28g2000cwb.googlegroups.com...
Bonjour,
Une table facture, une table compteur
Je veux gérer les nos de clients, de factures, de commandes, etc ..
avec des compteurs dont les valeurs sont construites à partir
d'éléments divers (ex : no dept + no annee + no séquentiel) et c'est
pourquoi je n'utilise pas de no_auto.
Dans mon form Fact, champ NoFact, j'ai mis ça :
Private Sub NoFact_Enter() ' Sur entrée dans le champ NoFact
If Me.NewRecord Then
' DoCmd.SetWarnings False
DoCmd.RunSQL ("SELECT Kteur.NoKteur, Kteur.NoCli, Kteur.NoFact
FROM Kteur WHERE Kteur.NoKteur=1;")
DoCmd.RunSQL ("UPDATE Kteur SET Kteur.NoFact = [Fact].[NoFact]+1
WHERE (((Kteur.NoKteur)=1));")
Me.NoFact = Kteur.NoFact
' DoCmd.SetWarnings True
End If
End Sub
Les requêtes fonctionnent en mode SQL direct mais à l'entrée dans le
contrôle je me prends une erreur d'éxécution 2342 disant que
l'argument passé à RunSQL n'est pas une expression SQL.
runsql correspond à une instruction SQL valide pour une requête action ou une requête définition des données mais pas pour une requête selection. pour la selection, utiliser DLookup avec une clause where
x = DLookup("NoCli", "Kteur", "[NoKteur]=1") y = DLookup("NoFact", "Kteur", "[NoKteur]=1") au lieu de DoCmd.RunSQL ("SELECT Kteur.NoKteur, Kteur.NoCli, Kteur.NoFact FROM Kteur WHERE Kteur.NoKteur=1;")
on peut très bien se passer de compteur en allant chercher le dernier numéro par DMax +1 directement sur la table -- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ Pour débuter sur le forum: http://www.mpfa.info/ Nouvelle base Access des communes françaises avec longitude, latitude et 13246 sites internet officiels http://ardecheearth.free.fr/basededonnees.htm
"groumph" a écrit dans le message de news:
Bonjour,
Une table facture, une table compteur
Je veux gérer les nos de clients, de factures, de commandes, etc .. avec des compteurs dont les valeurs sont construites à partir d'éléments divers (ex : no dept + no annee + no séquentiel) et c'est pourquoi je n'utilise pas de no_auto.
Dans mon form Fact, champ NoFact, j'ai mis ça : Private Sub NoFact_Enter() ' Sur entrée dans le champ NoFact If Me.NewRecord Then ' DoCmd.SetWarnings False DoCmd.RunSQL ("SELECT Kteur.NoKteur, Kteur.NoCli, Kteur.NoFact FROM Kteur WHERE Kteur.NoKteur=1;") DoCmd.RunSQL ("UPDATE Kteur SET Kteur.NoFact = [Fact].[NoFact]+1 WHERE (((Kteur.NoKteur)=1));") Me.NoFact = Kteur.NoFact ' DoCmd.SetWarnings True End If End Sub
Les requêtes fonctionnent en mode SQL direct mais à l'entrée dans le contrôle je me prends une erreur d'éxécution 2342 disant que l'argument passé à RunSQL n'est pas une expression SQL.
Si qqun à une explication ... Merci
groumph
OK Raymond, super.
Plus globalement, quelle méthode conseilles-tu pour aller stocker une valeur dans une table non liée ? A priori, comme son nom l'indique, DLookup ne permet que de lire, alors ?
Question subsidiaire : quelle est la syntaxe pour appeler en VBA une requete _selection_ enregistrée ? J'ai bien trouvé DoCmd.OpenQuery mais dans l'aide ils disent que ça ne concerne que les requêtes action (à moins que j'aie mal compris).
Merci de la part d'un ardéchois occasionnel (Orgnac)
runsql correspond à une instruction SQL valide pour une requête actio n ou une requête définition des données mais pas pour une requête sele ction. pour la selection, utiliser DLookup avec une clause where
x = DLookup("NoCli", "Kteur", "[NoKteur]=1") y = DLookup("NoFact", "Kteur", "[NoKteur]=1") au lieu de DoCmd.RunSQL ("SELECT Kteur.NoKteur, Kteur.NoCli, Kteur.NoFact FROM Kteur WHERE Kteur.NoKteur=1;")
on peut très bien se passer de compteur en allant chercher le dernier n uméro par DMax +1 directement sur la table
OK Raymond, super.
Plus globalement, quelle méthode conseilles-tu pour aller stocker une
valeur dans une table non liée ? A priori, comme son nom l'indique,
DLookup ne permet que de lire, alors ?
Question subsidiaire : quelle est la syntaxe pour appeler en VBA une
requete _selection_ enregistrée ? J'ai bien trouvé DoCmd.OpenQuery
mais dans l'aide ils disent que ça ne concerne que les requêtes
action (à moins que j'aie mal compris).
Merci de la part d'un ardéchois occasionnel (Orgnac)
runsql correspond à une instruction SQL valide pour une requête actio n ou
une requête définition des données mais pas pour une requête sele ction.
pour la selection, utiliser DLookup avec une clause where
x = DLookup("NoCli", "Kteur", "[NoKteur]=1")
y = DLookup("NoFact", "Kteur", "[NoKteur]=1")
au lieu de
DoCmd.RunSQL ("SELECT Kteur.NoKteur, Kteur.NoCli, Kteur.NoFact
FROM Kteur WHERE Kteur.NoKteur=1;")
on peut très bien se passer de compteur en allant chercher le dernier n uméro
par DMax +1 directement sur la table
Plus globalement, quelle méthode conseilles-tu pour aller stocker une valeur dans une table non liée ? A priori, comme son nom l'indique, DLookup ne permet que de lire, alors ?
Question subsidiaire : quelle est la syntaxe pour appeler en VBA une requete _selection_ enregistrée ? J'ai bien trouvé DoCmd.OpenQuery mais dans l'aide ils disent que ça ne concerne que les requêtes action (à moins que j'aie mal compris).
Merci de la part d'un ardéchois occasionnel (Orgnac)
runsql correspond à une instruction SQL valide pour une requête actio n ou une requête définition des données mais pas pour une requête sele ction. pour la selection, utiliser DLookup avec une clause where
x = DLookup("NoCli", "Kteur", "[NoKteur]=1") y = DLookup("NoFact", "Kteur", "[NoKteur]=1") au lieu de DoCmd.RunSQL ("SELECT Kteur.NoKteur, Kteur.NoCli, Kteur.NoFact FROM Kteur WHERE Kteur.NoKteur=1;")
on peut très bien se passer de compteur en allant chercher le dernier n uméro par DMax +1 directement sur la table
Raymond [mvp]
Plus globalement, quelle méthode conseilles-tu pour aller stocker une valeur dans une table non liée ? A priori, comme son nom l'indique, DLookup ne permet que de lire, alors ?
procéder par requête mise à jour.
Question subsidiaire : quelle est la syntaxe pour appeler en VBA une requete _selection_ enregistrée ? J'ai bien trouvé DoCmd.OpenQuery mais dans l'aide ils disent que ça ne concerne que les requêtes action (à moins que j'aie mal compris). Procéder par recordset est le plus facile.
exemples sur la page: http://officesystem.access.free.fr/ex_requetes_vba.htm
Merci de la part d'un ardéchois occasionnel (Orgnac) Voilà quelqu'un de bien.
-- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ Pour débuter sur le forum: http://www.mpfa.info/ Nouvelle base Access des communes françaises avec longitude, latitude et 13246 sites internet officiels http://ardecheearth.free.fr/basededonnees.htm
"groumph" a écrit dans le message de news:
OK Raymond, super.
Plus globalement, quelle méthode conseilles-tu pour aller stocker une
valeur dans une table non liée ? A priori, comme son nom l'indique,
DLookup ne permet que de lire, alors ?
procéder par requête mise à jour.
Question subsidiaire : quelle est la syntaxe pour appeler en VBA une
requete _selection_ enregistrée ? J'ai bien trouvé DoCmd.OpenQuery
mais dans l'aide ils disent que ça ne concerne que les requêtes
action (à moins que j'aie mal compris).
Procéder par recordset est le plus facile.
exemples sur la page: http://officesystem.access.free.fr/ex_requetes_vba.htm
Merci de la part d'un ardéchois occasionnel (Orgnac)
Voilà quelqu'un de bien.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm
"groumph" <gaslag@hotmail.com> a écrit dans le message de news:
1156788182.884211.308240@h48g2000cwc.googlegroups.com...
OK Raymond, super.
Plus globalement, quelle méthode conseilles-tu pour aller stocker une valeur dans une table non liée ? A priori, comme son nom l'indique, DLookup ne permet que de lire, alors ?
procéder par requête mise à jour.
Question subsidiaire : quelle est la syntaxe pour appeler en VBA une requete _selection_ enregistrée ? J'ai bien trouvé DoCmd.OpenQuery mais dans l'aide ils disent que ça ne concerne que les requêtes action (à moins que j'aie mal compris). Procéder par recordset est le plus facile.
exemples sur la page: http://officesystem.access.free.fr/ex_requetes_vba.htm
Merci de la part d'un ardéchois occasionnel (Orgnac) Voilà quelqu'un de bien.
-- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ Pour débuter sur le forum: http://www.mpfa.info/ Nouvelle base Access des communes françaises avec longitude, latitude et 13246 sites internet officiels http://ardecheearth.free.fr/basededonnees.htm