J'ai un formulaire sur une table de Fctures Un numéro de client sert de lien
avec la table des Clients, reliée à ma table de Facture avec Intégrité
réérentielle. Lorsque le cient n'est pas sur ma table de Clients, je veux
pouvoir créer l'enregistrement manquant sur la table des Clients directement
dans mon formulaire avant de poursuivre avec ce même client pour créer la
nouvelle facture.
Comment faire autrement qu'en quittant le formulaire de création de ma
facture?
Merci de partager vos connaissances et votre expérience.
--
On naît tous ignorant
@+
Cerveza
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
Eric
Bonjour,
L'idée : Tu remplaces ta zone de texte du champ NumeroClient (source TableFacture) par une zone de liste modifiable(ou liste déroulante) basée sur la table des clients ayant 2 colonnes (NumClient et NomClient, la 1ere colonne largeur 0 cm) dont la propriété Limiter à Liste est sur Oui. Sur l'évènement NotInList, tu appelles ton formulaire de saisie des nouveaux clients, tu saisis le client sauve et ferme le formulaire, mets à jour la liste et tu poursuis la saisie de la facture. Des procédures sont proposés sur les différents sites conseillés ici http://www.mpfa.info/ ex : http://officesystem.access.free.fr/vba/notinlist.htm
Bonsoir à vous tous,
J'ai un formulaire sur une table de Fctures Un numéro de client sert de lien avec la table des Clients, reliée à ma table de Facture avec Intégrité réérentielle. Lorsque le cient n'est pas sur ma table de Clients, je veux pouvoir créer l'enregistrement manquant sur la table des Clients directement dans mon formulaire avant de poursuivre avec ce même client pour créer la nouvelle facture.
Comment faire autrement qu'en quittant le formulaire de création de ma facture?
Merci de partager vos connaissances et votre expérience.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
L'idée :
Tu remplaces ta zone de texte du champ NumeroClient (source
TableFacture) par une zone de liste modifiable(ou liste déroulante)
basée sur la table des clients ayant 2 colonnes (NumClient et NomClient,
la 1ere colonne largeur 0 cm) dont la propriété Limiter à Liste est sur Oui.
Sur l'évènement NotInList, tu appelles ton formulaire de saisie des
nouveaux clients, tu saisis le client sauve et ferme le formulaire, mets
à jour la liste et tu poursuis la saisie de la facture.
Des procédures sont proposés sur les différents sites conseillés ici
http://www.mpfa.info/
ex : http://officesystem.access.free.fr/vba/notinlist.htm
Bonsoir à vous tous,
J'ai un formulaire sur une table de Fctures Un numéro de client sert de lien
avec la table des Clients, reliée à ma table de Facture avec Intégrité
réérentielle. Lorsque le cient n'est pas sur ma table de Clients, je veux
pouvoir créer l'enregistrement manquant sur la table des Clients directement
dans mon formulaire avant de poursuivre avec ce même client pour créer la
nouvelle facture.
Comment faire autrement qu'en quittant le formulaire de création de ma
facture?
Merci de partager vos connaissances et votre expérience.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
L'idée : Tu remplaces ta zone de texte du champ NumeroClient (source TableFacture) par une zone de liste modifiable(ou liste déroulante) basée sur la table des clients ayant 2 colonnes (NumClient et NomClient, la 1ere colonne largeur 0 cm) dont la propriété Limiter à Liste est sur Oui. Sur l'évènement NotInList, tu appelles ton formulaire de saisie des nouveaux clients, tu saisis le client sauve et ferme le formulaire, mets à jour la liste et tu poursuis la saisie de la facture. Des procédures sont proposés sur les différents sites conseillés ici http://www.mpfa.info/ ex : http://officesystem.access.free.fr/vba/notinlist.htm
Bonsoir à vous tous,
J'ai un formulaire sur une table de Fctures Un numéro de client sert de lien avec la table des Clients, reliée à ma table de Facture avec Intégrité réérentielle. Lorsque le cient n'est pas sur ma table de Clients, je veux pouvoir créer l'enregistrement manquant sur la table des Clients directement dans mon formulaire avant de poursuivre avec ce même client pour créer la nouvelle facture.
Comment faire autrement qu'en quittant le formulaire de création de ma facture?
Merci de partager vos connaissances et votre expérience.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Cerveza
Merci Éric pour ta réponse. Tout a bien fonctionné. Par contre, j'aimerais éviter d'entrer le numéro de client quand je me transporte d'un formulaire à l'autre. Comment m'y prendre pour que le numéro s'ajoute sans le réinscrire dans chacun des formulaires? Merci -- On naît tous ignorant @+ Cerveza
Bonjour,
L'idée : Tu remplaces ta zone de texte du champ NumeroClient (source TableFacture) par une zone de liste modifiable(ou liste déroulante) basée sur la table des clients ayant 2 colonnes (NumClient et NomClient, la 1ere colonne largeur 0 cm) dont la propriété Limiter à Liste est sur Oui. Sur l'évènement NotInList, tu appelles ton formulaire de saisie des nouveaux clients, tu saisis le client sauve et ferme le formulaire, mets à jour la liste et tu poursuis la saisie de la facture. Des procédures sont proposés sur les différents sites conseillés ici http://www.mpfa.info/ ex : http://officesystem.access.free.fr/vba/notinlist.htm
Bonsoir à vous tous,
J'ai un formulaire sur une table de Fctures Un numéro de client sert de lien avec la table des Clients, reliée à ma table de Facture avec Intégrité réérentielle. Lorsque le cient n'est pas sur ma table de Clients, je veux pouvoir créer l'enregistrement manquant sur la table des Clients directement dans mon formulaire avant de poursuivre avec ce même client pour créer la nouvelle facture.
Comment faire autrement qu'en quittant le formulaire de création de ma facture?
Merci de partager vos connaissances et votre expérience.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Merci Éric pour ta réponse. Tout a bien fonctionné.
Par contre, j'aimerais éviter d'entrer le numéro de client quand je me
transporte d'un formulaire à l'autre. Comment m'y prendre pour que le numéro
s'ajoute sans le réinscrire dans chacun des formulaires?
Merci
--
On naît tous ignorant
@+
Cerveza
Bonjour,
L'idée :
Tu remplaces ta zone de texte du champ NumeroClient (source
TableFacture) par une zone de liste modifiable(ou liste déroulante)
basée sur la table des clients ayant 2 colonnes (NumClient et NomClient,
la 1ere colonne largeur 0 cm) dont la propriété Limiter à Liste est sur Oui.
Sur l'évènement NotInList, tu appelles ton formulaire de saisie des
nouveaux clients, tu saisis le client sauve et ferme le formulaire, mets
à jour la liste et tu poursuis la saisie de la facture.
Des procédures sont proposés sur les différents sites conseillés ici
http://www.mpfa.info/
ex : http://officesystem.access.free.fr/vba/notinlist.htm
Bonsoir à vous tous,
J'ai un formulaire sur une table de Fctures Un numéro de client sert de lien
avec la table des Clients, reliée à ma table de Facture avec Intégrité
réérentielle. Lorsque le cient n'est pas sur ma table de Clients, je veux
pouvoir créer l'enregistrement manquant sur la table des Clients directement
dans mon formulaire avant de poursuivre avec ce même client pour créer la
nouvelle facture.
Comment faire autrement qu'en quittant le formulaire de création de ma
facture?
Merci de partager vos connaissances et votre expérience.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Merci Éric pour ta réponse. Tout a bien fonctionné. Par contre, j'aimerais éviter d'entrer le numéro de client quand je me transporte d'un formulaire à l'autre. Comment m'y prendre pour que le numéro s'ajoute sans le réinscrire dans chacun des formulaires? Merci -- On naît tous ignorant @+ Cerveza
Bonjour,
L'idée : Tu remplaces ta zone de texte du champ NumeroClient (source TableFacture) par une zone de liste modifiable(ou liste déroulante) basée sur la table des clients ayant 2 colonnes (NumClient et NomClient, la 1ere colonne largeur 0 cm) dont la propriété Limiter à Liste est sur Oui. Sur l'évènement NotInList, tu appelles ton formulaire de saisie des nouveaux clients, tu saisis le client sauve et ferme le formulaire, mets à jour la liste et tu poursuis la saisie de la facture. Des procédures sont proposés sur les différents sites conseillés ici http://www.mpfa.info/ ex : http://officesystem.access.free.fr/vba/notinlist.htm
Bonsoir à vous tous,
J'ai un formulaire sur une table de Fctures Un numéro de client sert de lien avec la table des Clients, reliée à ma table de Facture avec Intégrité réérentielle. Lorsque le cient n'est pas sur ma table de Clients, je veux pouvoir créer l'enregistrement manquant sur la table des Clients directement dans mon formulaire avant de poursuivre avec ce même client pour créer la nouvelle facture.
Comment faire autrement qu'en quittant le formulaire de création de ma facture?
Merci de partager vos connaissances et votre expérience.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
Bonjour,
(Adapter les noms de table et champs)
Sur l'évènement NotInList de ta combo, tu mets un truc du genre: Private Sub NumClient_NotInList(NewData As String, Response As Integer) If MsgBox("Créer le client " & UCase(NewData) & " ?", _ vbYesNo + vbQuestion _ + vbDefaultButton2) = vbYes Then Response = acDataErrAdded DoCmd.OpenForm "Buveur1", acNormal, , , _ acFormAdd, acDialog, NewData Else Me.NumClient.Undo Response = acDataErrContinue End If End Sub
Sur l'évènement Load de FormulaireSaisieClient et en supposant que le NumClient n'est pas un NuméroAuto mais un Entier Long dans la table TableClient, sinon, le n° est généré automatiquement par Access. Ci-dessous tu fais évaluer le NumClient et affectes le nom saisi dans la liste au champ NomClient (donc pas resaisi). Il faudrait que tu mettes avant le end if une instruction donnant le focus sur le 1er champ à compléter (Me.AutreChamp.SetFocus)
Private Sub Form_Load() If Not IsNull(Me.OpenArgs) Then Me!NumClient = DMax("NumClient", "TableClient") + 1 Me!NomClient = Me.OpenArgs End If End Sub
Merci Éric pour ta réponse. Tout a bien fonctionné. Par contre, j'aimerais éviter d'entrer le numéro de client quand je me transporte d'un formulaire à l'autre. Comment m'y prendre pour que le numéro s'ajoute sans le réinscrire dans chacun des formulaires? Merci
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
(Adapter les noms de table et champs)
Sur l'évènement NotInList de ta combo, tu mets un truc du genre:
Private Sub NumClient_NotInList(NewData As String, Response As Integer)
If MsgBox("Créer le client " & UCase(NewData) & " ?", _
vbYesNo + vbQuestion _
+ vbDefaultButton2) = vbYes Then
Response = acDataErrAdded
DoCmd.OpenForm "Buveur1", acNormal, , , _
acFormAdd, acDialog, NewData
Else
Me.NumClient.Undo
Response = acDataErrContinue
End If
End Sub
Sur l'évènement Load de FormulaireSaisieClient et en supposant que le
NumClient n'est pas un NuméroAuto mais un Entier Long dans la table
TableClient, sinon, le n° est généré automatiquement par Access.
Ci-dessous tu fais évaluer le NumClient et affectes le nom saisi dans la
liste au champ NomClient (donc pas resaisi). Il faudrait que tu mettes
avant le end if une instruction donnant le focus sur le 1er champ à
compléter (Me.AutreChamp.SetFocus)
Private Sub Form_Load()
If Not IsNull(Me.OpenArgs) Then
Me!NumClient = DMax("NumClient", "TableClient") + 1
Me!NomClient = Me.OpenArgs
End If
End Sub
Merci Éric pour ta réponse. Tout a bien fonctionné.
Par contre, j'aimerais éviter d'entrer le numéro de client quand je me
transporte d'un formulaire à l'autre. Comment m'y prendre pour que le numéro
s'ajoute sans le réinscrire dans chacun des formulaires?
Merci
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Sur l'évènement NotInList de ta combo, tu mets un truc du genre: Private Sub NumClient_NotInList(NewData As String, Response As Integer) If MsgBox("Créer le client " & UCase(NewData) & " ?", _ vbYesNo + vbQuestion _ + vbDefaultButton2) = vbYes Then Response = acDataErrAdded DoCmd.OpenForm "Buveur1", acNormal, , , _ acFormAdd, acDialog, NewData Else Me.NumClient.Undo Response = acDataErrContinue End If End Sub
Sur l'évènement Load de FormulaireSaisieClient et en supposant que le NumClient n'est pas un NuméroAuto mais un Entier Long dans la table TableClient, sinon, le n° est généré automatiquement par Access. Ci-dessous tu fais évaluer le NumClient et affectes le nom saisi dans la liste au champ NomClient (donc pas resaisi). Il faudrait que tu mettes avant le end if une instruction donnant le focus sur le 1er champ à compléter (Me.AutreChamp.SetFocus)
Private Sub Form_Load() If Not IsNull(Me.OpenArgs) Then Me!NumClient = DMax("NumClient", "TableClient") + 1 Me!NomClient = Me.OpenArgs End If End Sub
Merci Éric pour ta réponse. Tout a bien fonctionné. Par contre, j'aimerais éviter d'entrer le numéro de client quand je me transporte d'un formulaire à l'autre. Comment m'y prendre pour que le numéro s'ajoute sans le réinscrire dans chacun des formulaires? Merci
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
.../... Erreur de copier-coller Remplacer Buveur1 par le nom du formulaire de saisie des Clients dans la ligne : DoCmd.OpenForm "Buveur1", acNormal, ...
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
.../...
Erreur de copier-coller
Remplacer Buveur1 par le nom du formulaire de saisie des Clients dans la
ligne : DoCmd.OpenForm "Buveur1", acNormal, ...
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
.../... Erreur de copier-coller Remplacer Buveur1 par le nom du formulaire de saisie des Clients dans la ligne : DoCmd.OpenForm "Buveur1", acNormal, ...
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Cerveza
Grand merci encore une fois à toi Eric. Ton code a très bien fonctionné. J'ai cependant ajouté l'instruction suivant dans l'événement NotInList quand le test (If) est positif. Me.NumClient.Value = NewData Cela empêche de faire apparaître un message d'erreur qui dit de choisir le numéro dans la table. L'instruction semble réactiver la mise à jour du champ qui permet d'éviter un message d'erreur non signifiant.
Pour mon information, dans le code de ton dernier message, deux questions... 1) Quelle est l'utilité de l'instruction Me!NumClient = DMax("NumClient", "TableClient") + 1 ? 2) Quelle est la différence entre «Me.» et «Me!»?
Merci encore une fois. -- On naît tous ignorant @+ Cerveza
..../... Erreur de copier-coller Remplacer Buveur1 par le nom du formulaire de saisie des Clients dans la ligne : DoCmd.OpenForm "Buveur1", acNormal, ...
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Grand merci encore une fois à toi Eric.
Ton code a très bien fonctionné. J'ai cependant ajouté l'instruction suivant
dans l'événement NotInList quand le test (If) est positif.
Me.NumClient.Value = NewData
Cela empêche de faire apparaître un message d'erreur qui dit de choisir le
numéro dans la table. L'instruction semble réactiver la mise à jour du champ
qui permet d'éviter un message d'erreur non signifiant.
Pour mon information, dans le code de ton dernier message, deux questions...
1) Quelle est l'utilité de l'instruction
Me!NumClient = DMax("NumClient", "TableClient") + 1 ?
2) Quelle est la différence entre «Me.» et «Me!»?
Merci encore une fois.
--
On naît tous ignorant
@+
Cerveza
..../...
Erreur de copier-coller
Remplacer Buveur1 par le nom du formulaire de saisie des Clients dans la
ligne : DoCmd.OpenForm "Buveur1", acNormal, ...
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Grand merci encore une fois à toi Eric. Ton code a très bien fonctionné. J'ai cependant ajouté l'instruction suivant dans l'événement NotInList quand le test (If) est positif. Me.NumClient.Value = NewData Cela empêche de faire apparaître un message d'erreur qui dit de choisir le numéro dans la table. L'instruction semble réactiver la mise à jour du champ qui permet d'éviter un message d'erreur non signifiant.
Pour mon information, dans le code de ton dernier message, deux questions... 1) Quelle est l'utilité de l'instruction Me!NumClient = DMax("NumClient", "TableClient") + 1 ? 2) Quelle est la différence entre «Me.» et «Me!»?
Merci encore une fois. -- On naît tous ignorant @+ Cerveza
..../... Erreur de copier-coller Remplacer Buveur1 par le nom du formulaire de saisie des Clients dans la ligne : DoCmd.OpenForm "Buveur1", acNormal, ...
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
Bonsoir,
Dans le cas où NumClient n'est pas un numéroAuto, DMax("NumClient", "TableClient") + 1 renvoie le nouveau numéro c'est à dire qu'on récupère le plus grand déjà affecté dans la table et on lui ajoute 1. C'est pourquoi dans ma réponse je précisais que NumClient n'était pas un NuméroAuto.
Le . sert en général à appeler une propriété ou une méthode d'un objet Par exemple : NumClient.Enabled= False Le ! pour accéder à un contrôle de formulaire, ou encore un champ d'un objet recordset. Par ex : Me!Nomclient="toto" ou Debug.? Me!NomClient Pour bénéficier de la complétude, on a tendance à utiliser souvent le . pour le ! , mais ca peut parfois jouer de mauvais tour. Ainsi si tu tapes Me. une liste déroulante te propose toutes les propriétés et méthodes d'un formulaire mais aussi affiche, dans la liste, les contrôles contenus dans le formulaire. Donc Me.NumClient.Enabled = False revient à Me!NumClient.Enabled = False La 2ème écriture est la bonne et respecte la syntaxe d'Access. La 1ère est, je suppose, interprétée par Access.
Grand merci encore une fois à toi Eric. Ton code a très bien fonctionné. J'ai cependant ajouté l'instruction suivant dans l'événement NotInList quand le test (If) est positif. Me.NumClient.Value = NewData Cela empêche de faire apparaître un message d'erreur qui dit de choisir le numéro dans la table. L'instruction semble réactiver la mise à jour du champ qui permet d'éviter un message d'erreur non signifiant.
Pour mon information, dans le code de ton dernier message, deux questions... 1) Quelle est l'utilité de l'instruction Me!NumClient = DMax("NumClient", "TableClient") + 1 ? 2) Quelle est la différence entre «Me.» et «Me!»?
Merci encore une fois.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonsoir,
Dans le cas où NumClient n'est pas un numéroAuto,
DMax("NumClient", "TableClient") + 1 renvoie le nouveau numéro c'est à
dire qu'on récupère le plus grand déjà affecté dans la table et on lui
ajoute 1. C'est pourquoi dans ma réponse je précisais que NumClient
n'était pas un NuméroAuto.
Le . sert en général à appeler une propriété ou une méthode d'un objet
Par exemple : NumClient.Enabled= False
Le ! pour accéder à un contrôle de formulaire, ou encore un champ d'un
objet recordset.
Par ex : Me!Nomclient="toto" ou Debug.? Me!NomClient
Pour bénéficier de la complétude, on a tendance à utiliser souvent le .
pour le ! , mais ca peut parfois jouer de mauvais tour.
Ainsi si tu tapes Me. une liste déroulante te propose toutes les
propriétés et méthodes d'un formulaire mais aussi affiche, dans la
liste, les contrôles contenus dans le formulaire.
Donc Me.NumClient.Enabled = False revient à Me!NumClient.Enabled = False
La 2ème écriture est la bonne et respecte la syntaxe d'Access. La 1ère
est, je suppose, interprétée par Access.
Grand merci encore une fois à toi Eric.
Ton code a très bien fonctionné. J'ai cependant ajouté l'instruction suivant
dans l'événement NotInList quand le test (If) est positif.
Me.NumClient.Value = NewData
Cela empêche de faire apparaître un message d'erreur qui dit de choisir le
numéro dans la table. L'instruction semble réactiver la mise à jour du champ
qui permet d'éviter un message d'erreur non signifiant.
Pour mon information, dans le code de ton dernier message, deux questions...
1) Quelle est l'utilité de l'instruction
Me!NumClient = DMax("NumClient", "TableClient") + 1 ?
2) Quelle est la différence entre «Me.» et «Me!»?
Merci encore une fois.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Dans le cas où NumClient n'est pas un numéroAuto, DMax("NumClient", "TableClient") + 1 renvoie le nouveau numéro c'est à dire qu'on récupère le plus grand déjà affecté dans la table et on lui ajoute 1. C'est pourquoi dans ma réponse je précisais que NumClient n'était pas un NuméroAuto.
Le . sert en général à appeler une propriété ou une méthode d'un objet Par exemple : NumClient.Enabled= False Le ! pour accéder à un contrôle de formulaire, ou encore un champ d'un objet recordset. Par ex : Me!Nomclient="toto" ou Debug.? Me!NomClient Pour bénéficier de la complétude, on a tendance à utiliser souvent le . pour le ! , mais ca peut parfois jouer de mauvais tour. Ainsi si tu tapes Me. une liste déroulante te propose toutes les propriétés et méthodes d'un formulaire mais aussi affiche, dans la liste, les contrôles contenus dans le formulaire. Donc Me.NumClient.Enabled = False revient à Me!NumClient.Enabled = False La 2ème écriture est la bonne et respecte la syntaxe d'Access. La 1ère est, je suppose, interprétée par Access.
Grand merci encore une fois à toi Eric. Ton code a très bien fonctionné. J'ai cependant ajouté l'instruction suivant dans l'événement NotInList quand le test (If) est positif. Me.NumClient.Value = NewData Cela empêche de faire apparaître un message d'erreur qui dit de choisir le numéro dans la table. L'instruction semble réactiver la mise à jour du champ qui permet d'éviter un message d'erreur non signifiant.
Pour mon information, dans le code de ton dernier message, deux questions... 1) Quelle est l'utilité de l'instruction Me!NumClient = DMax("NumClient", "TableClient") + 1 ? 2) Quelle est la différence entre «Me.» et «Me!»?
Merci encore une fois.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Cerveza
Explications claires. Merci et à la prochaine.
-- On naît tous ignorant @+ Cerveza
Bonsoir,
Dans le cas où NumClient n'est pas un numéroAuto, DMax("NumClient", "TableClient") + 1 renvoie le nouveau numéro c'est à dire qu'on récupère le plus grand déjà affecté dans la table et on lui ajoute 1. C'est pourquoi dans ma réponse je précisais que NumClient n'était pas un NuméroAuto.
Le . sert en général à appeler une propriété ou une méthode d'un objet Par exemple : NumClient.Enabled= False Le ! pour accéder à un contrôle de formulaire, ou encore un champ d'un objet recordset. Par ex : Me!Nomclient="toto" ou Debug.? Me!NomClient Pour bénéficier de la complétude, on a tendance à utiliser souvent le . pour le ! , mais ca peut parfois jouer de mauvais tour. Ainsi si tu tapes Me. une liste déroulante te propose toutes les propriétés et méthodes d'un formulaire mais aussi affiche, dans la liste, les contrôles contenus dans le formulaire. Donc Me.NumClient.Enabled = False revient à Me!NumClient.Enabled = False La 2ème écriture est la bonne et respecte la syntaxe d'Access. La 1ère est, je suppose, interprétée par Access.
Grand merci encore une fois à toi Eric. Ton code a très bien fonctionné. J'ai cependant ajouté l'instruction suivant dans l'événement NotInList quand le test (If) est positif. Me.NumClient.Value = NewData Cela empêche de faire apparaître un message d'erreur qui dit de choisir le numéro dans la table. L'instruction semble réactiver la mise à jour du champ qui permet d'éviter un message d'erreur non signifiant.
Pour mon information, dans le code de ton dernier message, deux questions... 1) Quelle est l'utilité de l'instruction Me!NumClient = DMax("NumClient", "TableClient") + 1 ? 2) Quelle est la différence entre «Me.» et «Me!»?
Merci encore une fois.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Explications claires.
Merci et à la prochaine.
--
On naît tous ignorant
@+
Cerveza
Bonsoir,
Dans le cas où NumClient n'est pas un numéroAuto,
DMax("NumClient", "TableClient") + 1 renvoie le nouveau numéro c'est à
dire qu'on récupère le plus grand déjà affecté dans la table et on lui
ajoute 1. C'est pourquoi dans ma réponse je précisais que NumClient
n'était pas un NuméroAuto.
Le . sert en général à appeler une propriété ou une méthode d'un objet
Par exemple : NumClient.Enabled= False
Le ! pour accéder à un contrôle de formulaire, ou encore un champ d'un
objet recordset.
Par ex : Me!Nomclient="toto" ou Debug.? Me!NomClient
Pour bénéficier de la complétude, on a tendance à utiliser souvent le .
pour le ! , mais ca peut parfois jouer de mauvais tour.
Ainsi si tu tapes Me. une liste déroulante te propose toutes les
propriétés et méthodes d'un formulaire mais aussi affiche, dans la
liste, les contrôles contenus dans le formulaire.
Donc Me.NumClient.Enabled = False revient à Me!NumClient.Enabled = False
La 2ème écriture est la bonne et respecte la syntaxe d'Access. La 1ère
est, je suppose, interprétée par Access.
Grand merci encore une fois à toi Eric.
Ton code a très bien fonctionné. J'ai cependant ajouté l'instruction suivant
dans l'événement NotInList quand le test (If) est positif.
Me.NumClient.Value = NewData
Cela empêche de faire apparaître un message d'erreur qui dit de choisir le
numéro dans la table. L'instruction semble réactiver la mise à jour du champ
qui permet d'éviter un message d'erreur non signifiant.
Pour mon information, dans le code de ton dernier message, deux questions...
1) Quelle est l'utilité de l'instruction
Me!NumClient = DMax("NumClient", "TableClient") + 1 ?
2) Quelle est la différence entre «Me.» et «Me!»?
Merci encore une fois.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Dans le cas où NumClient n'est pas un numéroAuto, DMax("NumClient", "TableClient") + 1 renvoie le nouveau numéro c'est à dire qu'on récupère le plus grand déjà affecté dans la table et on lui ajoute 1. C'est pourquoi dans ma réponse je précisais que NumClient n'était pas un NuméroAuto.
Le . sert en général à appeler une propriété ou une méthode d'un objet Par exemple : NumClient.Enabled= False Le ! pour accéder à un contrôle de formulaire, ou encore un champ d'un objet recordset. Par ex : Me!Nomclient="toto" ou Debug.? Me!NomClient Pour bénéficier de la complétude, on a tendance à utiliser souvent le . pour le ! , mais ca peut parfois jouer de mauvais tour. Ainsi si tu tapes Me. une liste déroulante te propose toutes les propriétés et méthodes d'un formulaire mais aussi affiche, dans la liste, les contrôles contenus dans le formulaire. Donc Me.NumClient.Enabled = False revient à Me!NumClient.Enabled = False La 2ème écriture est la bonne et respecte la syntaxe d'Access. La 1ère est, je suppose, interprétée par Access.
Grand merci encore une fois à toi Eric. Ton code a très bien fonctionné. J'ai cependant ajouté l'instruction suivant dans l'événement NotInList quand le test (If) est positif. Me.NumClient.Value = NewData Cela empêche de faire apparaître un message d'erreur qui dit de choisir le numéro dans la table. L'instruction semble réactiver la mise à jour du champ qui permet d'éviter un message d'erreur non signifiant.
Pour mon information, dans le code de ton dernier message, deux questions... 1) Quelle est l'utilité de l'instruction Me!NumClient = DMax("NumClient", "TableClient") + 1 ? 2) Quelle est la différence entre «Me.» et «Me!»?
Merci encore une fois.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr