-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',
j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un formulaire
Facturation permet d'entrer cette adresse dans les
champs
[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doivent
avoir priorité par rapport à l'adresse principale du
client.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE FACTURATION",
dbOpenDynaset) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE] Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces deux
problèmes ?
Luis
.
-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',
j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un formulaire
Facturation permet d'entrer cette adresse dans les
champs
[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doivent
avoir priorité par rapport à l'adresse principale du
client.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE FACTURATION",
dbOpenDynaset) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE] Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces deux
problèmes ?
Luis
.
-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',
j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un formulaire
Facturation permet d'entrer cette adresse dans les
champs
[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doivent
avoir priorité par rapport à l'adresse principale du
client.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE FACTURATION",
dbOpenDynaset) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE] Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces deux
problèmes ?
Luis
.
-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque client tu
as une adresse principale et une adresse facturation qui
peuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation 1-1
et utiliser une requete d'ajout pour inserer une adresse
facturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta facturation
ou qui actualiserais les modif. En faisant appel a tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la requete
d actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton formulaire
en mode nouveau.
C est pas vraiment une reponse directe a ton probleme
mais j'ai fait a peu pres la meme chose dans une de mes
BD et ca marche tres bien.
a+-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un formulaire
Facturation permet d'entrer cette adresse dans les
champs[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doiventavoir priorité par rapport à l'adresse principale du
client.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
queje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE FACTURATION",
dbOpenDynaset) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE] Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
queje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces deux
problèmes ?
Luis
.
.
-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque client tu
as une adresse principale et une adresse facturation qui
peuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation 1-1
et utiliser une requete d'ajout pour inserer une adresse
facturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta facturation
ou qui actualiserais les modif. En faisant appel a tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la requete
d actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton formulaire
en mode nouveau.
C est pas vraiment une reponse directe a ton probleme
mais j'ai fait a peu pres la meme chose dans une de mes
BD et ca marche tres bien.
a+
-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',
j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un formulaire
Facturation permet d'entrer cette adresse dans les
champs
[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doivent
avoir priorité par rapport à l'adresse principale du
client.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE FACTURATION",
dbOpenDynaset) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE] Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces deux
problèmes ?
Luis
.
.
-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque client tu
as une adresse principale et une adresse facturation qui
peuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation 1-1
et utiliser une requete d'ajout pour inserer une adresse
facturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta facturation
ou qui actualiserais les modif. En faisant appel a tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la requete
d actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton formulaire
en mode nouveau.
C est pas vraiment une reponse directe a ton probleme
mais j'ai fait a peu pres la meme chose dans une de mes
BD et ca marche tres bien.
a+-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un formulaire
Facturation permet d'entrer cette adresse dans les
champs[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doiventavoir priorité par rapport à l'adresse principale du
client.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
queje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE FACTURATION",
dbOpenDynaset) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE] Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
queje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces deux
problèmes ?
Luis
.
.
Bonjour,
Effectivement c'est une solution, mais j'ai une contreinte
qui m'oblige à faire autrement.
C'est à dire qu'il faut que l'adresse de facturation soit
de suite copiée depuis l'adresse principale et le faire
avec le bouton Valider, ors si aprés avoir enregistré une
autre adresse facturation à travers le formulaire adresse
facturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le même bouton
valider et là l'adresse saisie depuis le formulaire
adresse facturation serai écrasé par celui contenu dans le
formulaire principal.
Luis-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque client tu
as une adresse principale et une adresse facturation qui
peuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation 1-1
et utiliser une requete d'ajout pour inserer une adresse
facturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta facturation
ou qui actualiserais les modif. En faisant appel a tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la requete
d actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton formulaire
en mode nouveau.
C est pas vraiment une reponse directe a ton probleme
mais j'ai fait a peu pres la meme chose dans une de mes
BD et ca marche tres bien.
a+-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un formulaire
Facturation permet d'entrer cette adresse dans les
champs[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doiventavoir priorité par rapport à l'adresse principale du
client.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
queje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE FACTURATION",
dbOpenDynaset) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE] Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
queje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces deux
problèmes ?
Luis
.
.
Bonjour,
Effectivement c'est une solution, mais j'ai une contreinte
qui m'oblige à faire autrement.
C'est à dire qu'il faut que l'adresse de facturation soit
de suite copiée depuis l'adresse principale et le faire
avec le bouton Valider, ors si aprés avoir enregistré une
autre adresse facturation à travers le formulaire adresse
facturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le même bouton
valider et là l'adresse saisie depuis le formulaire
adresse facturation serai écrasé par celui contenu dans le
formulaire principal.
Luis
-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque client tu
as une adresse principale et une adresse facturation qui
peuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation 1-1
et utiliser une requete d'ajout pour inserer une adresse
facturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta facturation
ou qui actualiserais les modif. En faisant appel a tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la requete
d actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton formulaire
en mode nouveau.
C est pas vraiment une reponse directe a ton probleme
mais j'ai fait a peu pres la meme chose dans une de mes
BD et ca marche tres bien.
a+
-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',
j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un formulaire
Facturation permet d'entrer cette adresse dans les
champs
[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doivent
avoir priorité par rapport à l'adresse principale du
client.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE FACTURATION",
dbOpenDynaset) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE] Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces deux
problèmes ?
Luis
.
.
Bonjour,
Effectivement c'est une solution, mais j'ai une contreinte
qui m'oblige à faire autrement.
C'est à dire qu'il faut que l'adresse de facturation soit
de suite copiée depuis l'adresse principale et le faire
avec le bouton Valider, ors si aprés avoir enregistré une
autre adresse facturation à travers le formulaire adresse
facturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le même bouton
valider et là l'adresse saisie depuis le formulaire
adresse facturation serai écrasé par celui contenu dans le
formulaire principal.
Luis-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque client tu
as une adresse principale et une adresse facturation qui
peuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation 1-1
et utiliser une requete d'ajout pour inserer une adresse
facturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta facturation
ou qui actualiserais les modif. En faisant appel a tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la requete
d actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton formulaire
en mode nouveau.
C est pas vraiment une reponse directe a ton probleme
mais j'ai fait a peu pres la meme chose dans une de mes
BD et ca marche tres bien.
a+-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un formulaire
Facturation permet d'entrer cette adresse dans les
champs[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doiventavoir priorité par rapport à l'adresse principale du
client.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
queje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE FACTURATION",
dbOpenDynaset) ' Crée la feuille de réponses dynamique.
MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'à ce qu'il n'y ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE] Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation une
adresse a déjà été saisie dans [B-ADRESFACTURATION] et
queje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces deux
problèmes ?
Luis
.
.
-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaire
client. Cette case aura pour etiquette :
(Adresse de facturation si differente de
l'adresse principale)
ainsi que la (ou les) zone de texte (Ex: ADRESSEFACT)
pour la saisie
de l'adresse facturation.
Quand cette case est validee, les zones de saisie pour
l'adresse de
facturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour l'adresse de
facturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]
WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And AdresseFact.Value<>"" Then
MaTable!B-ADRESFACTURATIONRESSEFACT.Value
End if
MaTable.UpDate
MaTable.CloseBonjour,
Effectivement c'est une solution, mais j'ai une
contreinte
qui m'oblige à faire autrement.
C'est à dire qu'il faut que l'adresse de facturation
soit
de suite copiée depuis l'adresse principale et le
faire
avec le bouton Valider, ors si aprés avoir enregistré
une
autre adresse facturation à travers le formulaire
adresse
facturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le même
bouton
valider et là l'adresse saisie depuis le formulaire
adresse facturation serai écrasé par celui contenu
dans le
formulaire principal.
Luis-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque client
tu
as une adresse principale et une adresse facturation
qui
peuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation 1-
1
et utiliser une requete d'ajout pour inserer une
adresse
facturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturation
ou qui actualiserais les modif. En faisant appel a tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la
requete
d actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton
formulaire
en mode nouveau.
C est pas vraiment une reponse directe a ton probleme
mais j'ai fait a peu pres la meme chose dans une de
mes
BD et ca marche tres bien.
a+-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un
formulaire
Facturation permet d'entrer cette adresse dans les
champs[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doiventavoir priorité par rapport à l'adresse principale
du
client.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle
ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu
de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation
une
adresse a déjà été saisie dans [B-
ADRESFACTURATION] et
queje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",
dbOpenDynaset) ' Crée la feuille de réponses
dynamique.
MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'Ã ce qu'il n'y
ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE]
Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle
ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu
de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation
une
adresse a déjà été saisie dans [B-
ADRESFACTURATION] et
queje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces
deux
problèmes ?
Luis
.
.
.
-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaire
client. Cette case aura pour etiquette :
(Adresse de facturation si differente de
l'adresse principale)
ainsi que la (ou les) zone de texte (Ex: ADRESSEFACT)
pour la saisie
de l'adresse facturation.
Quand cette case est validee, les zones de saisie pour
l'adresse de
facturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour l'adresse de
facturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]
WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And AdresseFact.Value<>"" Then
MaTable!B-ADRESFACTURATION=ADRESSEFACT.Value
End if
MaTable.UpDate
MaTable.Close
Bonjour,
Effectivement c'est une solution, mais j'ai une
contreinte
qui m'oblige à faire autrement.
C'est à dire qu'il faut que l'adresse de facturation
soit
de suite copiée depuis l'adresse principale et le
faire
avec le bouton Valider, ors si aprés avoir enregistré
une
autre adresse facturation à travers le formulaire
adresse
facturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le même
bouton
valider et là l'adresse saisie depuis le formulaire
adresse facturation serai écrasé par celui contenu
dans le
formulaire principal.
Luis
-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque client
tu
as une adresse principale et une adresse facturation
qui
peuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation 1-
1
et utiliser une requete d'ajout pour inserer une
adresse
facturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturation
ou qui actualiserais les modif. En faisant appel a tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la
requete
d actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton
formulaire
en mode nouveau.
C est pas vraiment une reponse directe a ton probleme
mais j'ai fait a peu pres la meme chose dans une de
mes
BD et ca marche tres bien.
a+
-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',
j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un
formulaire
Facturation permet d'entrer cette adresse dans les
champs
[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doivent
avoir priorité par rapport à l'adresse principale
du
client.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle
ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu
de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation
une
adresse a déjà été saisie dans [B-
ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",
dbOpenDynaset) ' Crée la feuille de réponses
dynamique.
MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'Ã ce qu'il n'y
ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE]
Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle
ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu
de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation
une
adresse a déjà été saisie dans [B-
ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces
deux
problèmes ?
Luis
.
.
.
-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaire
client. Cette case aura pour etiquette :
(Adresse de facturation si differente de
l'adresse principale)
ainsi que la (ou les) zone de texte (Ex: ADRESSEFACT)
pour la saisie
de l'adresse facturation.
Quand cette case est validee, les zones de saisie pour
l'adresse de
facturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour l'adresse de
facturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]
WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And AdresseFact.Value<>"" Then
MaTable!B-ADRESFACTURATIONRESSEFACT.Value
End if
MaTable.UpDate
MaTable.CloseBonjour,
Effectivement c'est une solution, mais j'ai une
contreinte
qui m'oblige à faire autrement.
C'est à dire qu'il faut que l'adresse de facturation
soit
de suite copiée depuis l'adresse principale et le
faire
avec le bouton Valider, ors si aprés avoir enregistré
une
autre adresse facturation à travers le formulaire
adresse
facturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le même
bouton
valider et là l'adresse saisie depuis le formulaire
adresse facturation serai écrasé par celui contenu
dans le
formulaire principal.
Luis-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque client
tu
as une adresse principale et une adresse facturation
qui
peuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation 1-
1
et utiliser une requete d'ajout pour inserer une
adresse
facturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturation
ou qui actualiserais les modif. En faisant appel a tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la
requete
d actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton
formulaire
en mode nouveau.
C est pas vraiment une reponse directe a ton probleme
mais j'ai fait a peu pres la meme chose dans une de
mes
BD et ca marche tres bien.
a+-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un
formulaire
Facturation permet d'entrer cette adresse dans les
champs[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doiventavoir priorité par rapport à l'adresse principale
du
client.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle
ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu
de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation
une
adresse a déjà été saisie dans [B-
ADRESFACTURATION] et
queje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",
dbOpenDynaset) ' Crée la feuille de réponses
dynamique.
MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'Ã ce qu'il n'y
ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE]
Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle
ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu
de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation
une
adresse a déjà été saisie dans [B-
ADRESFACTURATION] et
queje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces
deux
problèmes ?
Luis
.
.
.
Bonjour Ilan,
J'ai trouvé ton idée très bonne.
Alors j'ai ajouté une case à cocher avec valeur par
défaut "0" et ajouté un champ à ma table
appelé 'Facturation', comme ça dès que l'on clique sur
cette case la valeur est "1".
Et j'ai mis ça mais Rien ne se passe:
If Facturation = 0 Then
Exit Sub
Else
If Facturation = 1 Then
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la table "Clients"
Luis-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaireclient. Cette case aura pour etiquette :
(Adresse de facturation si differente de
l'adresse principale)ainsi que la (ou les) zone de texte (Ex: ADRESSEFACT)
pour la saisiede l'adresse facturation.
Quand cette case est validee, les zones de saisie pour
l'adresse defacturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour l'adresse de
facturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And AdresseFact.Value<>"" Then
MaTable!B-ADRESFACTURATIONRESSEFACT.Value
End if
MaTable.UpDate
MaTable.CloseBonjour,
Effectivement c'est une solution, mais j'ai une
contreintequi m'oblige à faire autrement.
C'est à dire qu'il faut que l'adresse de facturation
soitde suite copiée depuis l'adresse principale et le
faireavec le bouton Valider, ors si aprés avoir enregistré
uneautre adresse facturation à travers le formulaire
adressefacturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le même
boutonvalider et là l'adresse saisie depuis le formulaire
adresse facturation serai écrasé par celui contenu
dans leformulaire principal.
Luis-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque client
tuas une adresse principale et une adresse facturation
quipeuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation 1-
1et utiliser une requete d'ajout pour inserer une
adressefacturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturationou qui actualiserais les modif. En faisant appel a tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la
requeted actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton
formulaireen mode nouveau.
C est pas vraiment une reponse directe a ton probleme
mais j'ai fait a peu pres la meme chose dans une de
mesBD et ca marche tres bien.
a+-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un
formulaireFacturation permet d'entrer cette adresse dans les
champs[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doiventavoir priorité par rapport à l'adresse principale
duclient.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle
ligneNClient dans la table 'ADRESSE FACTURATION' au lieu
demodifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation
uneadresse a déjà été saisie dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",dbOpenDynaset) ' Crée la feuille de réponses
dynamique.MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'Ã ce qu'il n'y
aitplus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE]
Thentrouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle
ligneNClient dans la table 'ADRESSE FACTURATION' au lieu
demodifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation
uneadresse a déjà été saisie dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces
deuxproblèmes ?
Luis
.
.
.
Bonjour Ilan,
J'ai trouvé ton idée très bonne.
Alors j'ai ajouté une case à cocher avec valeur par
défaut "0" et ajouté un champ à ma table
appelé 'Facturation', comme ça dès que l'on clique sur
cette case la valeur est "1".
Et j'ai mis ça mais Rien ne se passe:
If Facturation = 0 Then
Exit Sub
Else
If Facturation = 1 Then
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la table "Clients"
Luis
-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaire
client. Cette case aura pour etiquette :
(Adresse de facturation si differente de
l'adresse principale)
ainsi que la (ou les) zone de texte (Ex: ADRESSEFACT)
pour la saisie
de l'adresse facturation.
Quand cette case est validee, les zones de saisie pour
l'adresse de
facturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour l'adresse de
facturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]
WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And AdresseFact.Value<>"" Then
MaTable!B-ADRESFACTURATIONRESSEFACT.Value
End if
MaTable.UpDate
MaTable.Close
Bonjour,
Effectivement c'est une solution, mais j'ai une
contreinte
qui m'oblige à faire autrement.
C'est à dire qu'il faut que l'adresse de facturation
soit
de suite copiée depuis l'adresse principale et le
faire
avec le bouton Valider, ors si aprés avoir enregistré
une
autre adresse facturation à travers le formulaire
adresse
facturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le même
bouton
valider et là l'adresse saisie depuis le formulaire
adresse facturation serai écrasé par celui contenu
dans le
formulaire principal.
Luis
-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque client
tu
as une adresse principale et une adresse facturation
qui
peuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation 1-
1
et utiliser une requete d'ajout pour inserer une
adresse
facturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturation
ou qui actualiserais les modif. En faisant appel a tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la
requete
d actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton
formulaire
en mode nouveau.
C est pas vraiment une reponse directe a ton probleme
mais j'ai fait a peu pres la meme chose dans une de
mes
BD et ca marche tres bien.
a+
-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',
j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un
formulaire
Facturation permet d'entrer cette adresse dans les
champs
[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doivent
avoir priorité par rapport à l'adresse principale
du
client.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle
ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu
de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation
une
adresse a déjà été saisie dans [B-
ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",
dbOpenDynaset) ' Crée la feuille de réponses
dynamique.
MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'Ã ce qu'il n'y
ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE]
Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle
ligne
NClient dans la table 'ADRESSE FACTURATION' au lieu
de
modifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation
une
adresse a déjà été saisie dans [B-
ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces
deux
problèmes ?
Luis
.
.
.
Bonjour Ilan,
J'ai trouvé ton idée très bonne.
Alors j'ai ajouté une case à cocher avec valeur par
défaut "0" et ajouté un champ à ma table
appelé 'Facturation', comme ça dès que l'on clique sur
cette case la valeur est "1".
Et j'ai mis ça mais Rien ne se passe:
If Facturation = 0 Then
Exit Sub
Else
If Facturation = 1 Then
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la table "Clients"
Luis-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaireclient. Cette case aura pour etiquette :
(Adresse de facturation si differente de
l'adresse principale)ainsi que la (ou les) zone de texte (Ex: ADRESSEFACT)
pour la saisiede l'adresse facturation.
Quand cette case est validee, les zones de saisie pour
l'adresse defacturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour l'adresse de
facturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And AdresseFact.Value<>"" Then
MaTable!B-ADRESFACTURATIONRESSEFACT.Value
End if
MaTable.UpDate
MaTable.CloseBonjour,
Effectivement c'est une solution, mais j'ai une
contreintequi m'oblige à faire autrement.
C'est à dire qu'il faut que l'adresse de facturation
soitde suite copiée depuis l'adresse principale et le
faireavec le bouton Valider, ors si aprés avoir enregistré
uneautre adresse facturation à travers le formulaire
adressefacturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le même
boutonvalider et là l'adresse saisie depuis le formulaire
adresse facturation serai écrasé par celui contenu
dans leformulaire principal.
Luis-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque client
tuas une adresse principale et une adresse facturation
quipeuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation 1-
1et utiliser une requete d'ajout pour inserer une
adressefacturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturationou qui actualiserais les modif. En faisant appel a tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la
requeted actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton
formulaireen mode nouveau.
C est pas vraiment une reponse directe a ton probleme
mais j'ai fait a peu pres la meme chose dans une de
mesBD et ca marche tres bien.
a+-----Message d'origine-----
Bonjour,
A la création d'un nouveau client dans la
table 'clients',j'aimerai que l'adresse de la table clients se copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est différente un
formulaireFacturation permet d'entrer cette adresse dans les
champs[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doiventavoir priorité par rapport à l'adresse principale
duclient.
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle
ligneNClient dans la table 'ADRESSE FACTURATION' au lieu
demodifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation
uneadresse a déjà été saisie dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Voilà ce que j'ai fais :
Dim Critère As String, MaBD As Database, MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",dbOpenDynaset) ' Crée la feuille de réponses
dynamique.MaTable.MoveFirst ' Recherche la première occurrence.
Do Until MaTable.EOF ' Boucle jusqu'Ã ce qu'il n'y
aitplus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE]
Thentrouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problèmes :
Le premier : si une modif dans l'adresse de la table
clients est saisie la formule me crée une nouvelle
ligneNClient dans la table 'ADRESSE FACTURATION' au lieu
demodifier les valeurs existantes.
Le deuxième problème : Si dans la table facturation
uneadresse a déjà été saisie dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilité de type.
Est-ce que quelqu'un peut m'aider à remédier à ces
deuxproblèmes ?
Luis
.
.
.
-----Message d'origine-----
Bonjour Luis,
Une case à cocher n'accepte que deux valeurs TRUE et
FALSE.
En fait TRUE et FALSE sont des constantes numeriques.
TRUE (VRAI)= -1 et FALSE (FAUX) = 0
Je ne comprends rien a ton code :
MaTable3 ??? Kezako
MaTable ??? Contient quoi au juste la table Clients ou
la table AdresseFacturation
Tu ajoutes une nouvelle adresse de facturation
systematiquement,
De plus, il y a dans ton code un Exit sub (Sortir de la
procedure) avant
d'avoir enregistrer les modifications apportees a la
table.
ex:
If Facturationúlse Then Exit Sub
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"
Bonjour Ilan,
J'ai trouvé ton idée très bonne.
Alors j'ai ajouté une case à cocher avec valeur par
défaut "0" et ajouté un champ à ma table
appelé 'Facturation', comme ça dès que l'on clique
sur
cette case la valeur est "1".
Et j'ai mis ça mais Rien ne se passe:
If Facturation = 0 Then
Exit Sub
Else
If Facturation = 1 Then
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"
Luis-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaireclient. Cette case aura pour etiquette :
(Adresse de facturation si differente
de
l'adresse principale)ainsi que la (ou les) zone de texte (Ex: ADRESSEFACT)
pour la saisiede l'adresse facturation.
Quand cette case est validee, les zones de saisie pour
l'adresse defacturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour l'adresse
de
facturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And AdresseFact.Value<>""
Then
MaTable!B-ADRESFACTURATIONRESSEFACT.Value
End if
MaTable.UpDate
MaTable.CloseBonjour,
Effectivement c'est une solution, mais j'ai une
contreintequi m'oblige Ãf faire autrement.
C'est Ãf dire qu'il faut que l'adresse de
facturation
soitde suite copiÃf©e depuis l'adresse principale et le
faireavec le bouton Valider, ors si aprÃf©s avoir
enregistrÃf©
uneautre adresse facturation Ãf travers le formulaire
adressefacturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le
mÃfªme
boutonvalider et lÃf l'adresse saisie depuis le
formulaire
adresse facturation serai Ãf©crasÃf© par celui
contenu
dans leformulaire principal.
Luis-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque
client
tuas une adresse principale et une adresse
facturation
quipeuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation
1-
1et utiliser une requete d'ajout pour inserer une
adressefacturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturationou qui actualiserais les modif. En faisant appel a
tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la
requeted actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton
formulaireen mode nouveau.
C est pas vraiment une reponse directe a ton
probleme
mais j'ai fait a peu pres la meme chose dans une de
mesBD et ca marche tres bien.
a+-----Message d'origine-----
Bonjour,
A la crÃf©ation d'un nouveau client dans la
table 'clients',j'aimerai que l'adresse de la table clients se
copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est diffÃf©rente un
formulaireFacturation permet d'entrer cette adresse dans les
champs[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doiventavoir prioritÃf© par rapport Ãf l'adresse
principale
duclient.
Je rencontre deux problÃf¨mes :
Le premier : si une modif dans l'adresse de la
table
clients est saisie la formule me crÃf©e une
nouvelle
ligneNClient dans la table 'ADRESSE FACTURATION' au
lieu
demodifier les valeurs existantes.
Le deuxiÃf¨me problÃf¨me : Si dans la table
facturation
uneadresse a dÃf©jÃf Ãf©tÃf© saisie dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃf© de type.
VoilÃf ce que j'ai fais :
Dim CritÃf¨re As String, MaBD As Database,
MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",dbOpenDynaset) ' CrÃf©e la feuille de rÃf©ponses
dynamique.MaTable.MoveFirst ' Recherche la premiÃf¨re
occurrence.
Do Until MaTable.EOF ' Boucle jusqu'Ãf ce qu'il
n'y
aitplus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE]
Thentrouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problÃf¨mes :
Le premier : si une modif dans l'adresse de la
table
clients est saisie la formule me crÃf©e une
nouvelle
ligneNClient dans la table 'ADRESSE FACTURATION' au
lieu
demodifier les valeurs existantes.
Le deuxiÃf¨me problÃf¨me : Si dans la table
facturation
uneadresse a dÃf©jÃf Ãf©tÃf© saisie dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃf© de type.
Est-ce que quelqu'un peut m'aider Ãf remÃf©dier
Ãf ces
deuxproblÃf¨mes ?
Luis
.
.
.
.
-----Message d'origine-----
Bonjour Luis,
Une case à cocher n'accepte que deux valeurs TRUE et
FALSE.
En fait TRUE et FALSE sont des constantes numeriques.
TRUE (VRAI)= -1 et FALSE (FAUX) = 0
Je ne comprends rien a ton code :
MaTable3 ??? Kezako
MaTable ??? Contient quoi au juste la table Clients ou
la table AdresseFacturation
Tu ajoutes une nouvelle adresse de facturation
systematiquement,
De plus, il y a dans ton code un Exit sub (Sortir de la
procedure) avant
d'avoir enregistrer les modifications apportees a la
table.
ex:
If Facturation=False Then Exit Sub
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"
Bonjour Ilan,
J'ai trouvé ton idée très bonne.
Alors j'ai ajouté une case à cocher avec valeur par
défaut "0" et ajouté un champ à ma table
appelé 'Facturation', comme ça dès que l'on clique
sur
cette case la valeur est "1".
Et j'ai mis ça mais Rien ne se passe:
If Facturation = 0 Then
Exit Sub
Else
If Facturation = 1 Then
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"
Luis
-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaire
client. Cette case aura pour etiquette :
(Adresse de facturation si differente
de
l'adresse principale)
ainsi que la (ou les) zone de texte (Ex: ADRESSEFACT)
pour la saisie
de l'adresse facturation.
Quand cette case est validee, les zones de saisie pour
l'adresse de
facturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour l'adresse
de
facturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]
WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And AdresseFact.Value<>""
Then
MaTable!B-ADRESFACTURATION=ADRESSEFACT.Value
End if
MaTable.UpDate
MaTable.Close
Bonjour,
Effectivement c'est une solution, mais j'ai une
contreinte
qui m'oblige Ãf faire autrement.
C'est Ãf dire qu'il faut que l'adresse de
facturation
soit
de suite copiÃf©e depuis l'adresse principale et le
faire
avec le bouton Valider, ors si aprÃf©s avoir
enregistrÃf©
une
autre adresse facturation Ãf travers le formulaire
adresse
facturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le
mÃfªme
bouton
valider et lÃf l'adresse saisie depuis le
formulaire
adresse facturation serai Ãf©crasÃf© par celui
contenu
dans le
formulaire principal.
Luis
-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque
client
tu
as une adresse principale et une adresse
facturation
qui
peuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation
1-
1
et utiliser une requete d'ajout pour inserer une
adresse
facturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturation
ou qui actualiserais les modif. En faisant appel a
tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la
requete
d actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton
formulaire
en mode nouveau.
C est pas vraiment une reponse directe a ton
probleme
mais j'ai fait a peu pres la meme chose dans une de
mes
BD et ca marche tres bien.
a+
-----Message d'origine-----
Bonjour,
A la crÃf©ation d'un nouveau client dans la
table 'clients',
j'aimerai que l'adresse de la table clients se
copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est diffÃf©rente un
formulaire
Facturation permet d'entrer cette adresse dans les
champs
[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doivent
avoir prioritÃf© par rapport Ãf l'adresse
principale
du
client.
Je rencontre deux problÃf¨mes :
Le premier : si une modif dans l'adresse de la
table
clients est saisie la formule me crÃf©e une
nouvelle
ligne
NClient dans la table 'ADRESSE FACTURATION' au
lieu
de
modifier les valeurs existantes.
Le deuxiÃf¨me problÃf¨me : Si dans la table
facturation
une
adresse a dÃf©jÃf Ãf©tÃf© saisie dans [B-
ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃf© de type.
VoilÃf ce que j'ai fais :
Dim CritÃf¨re As String, MaBD As Database,
MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",
dbOpenDynaset) ' CrÃf©e la feuille de rÃf©ponses
dynamique.
MaTable.MoveFirst ' Recherche la premiÃf¨re
occurrence.
Do Until MaTable.EOF ' Boucle jusqu'Ãf ce qu'il
n'y
ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE]
Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problÃf¨mes :
Le premier : si une modif dans l'adresse de la
table
clients est saisie la formule me crÃf©e une
nouvelle
ligne
NClient dans la table 'ADRESSE FACTURATION' au
lieu
de
modifier les valeurs existantes.
Le deuxiÃf¨me problÃf¨me : Si dans la table
facturation
une
adresse a dÃf©jÃf Ãf©tÃf© saisie dans [B-
ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃf© de type.
Est-ce que quelqu'un peut m'aider Ãf remÃf©dier
Ãf ces
deux
problÃf¨mes ?
Luis
.
.
.
.
-----Message d'origine-----
Bonjour Luis,
Une case à cocher n'accepte que deux valeurs TRUE et
FALSE.
En fait TRUE et FALSE sont des constantes numeriques.
TRUE (VRAI)= -1 et FALSE (FAUX) = 0
Je ne comprends rien a ton code :
MaTable3 ??? Kezako
MaTable ??? Contient quoi au juste la table Clients ou
la table AdresseFacturation
Tu ajoutes une nouvelle adresse de facturation
systematiquement,
De plus, il y a dans ton code un Exit sub (Sortir de la
procedure) avant
d'avoir enregistrer les modifications apportees a la
table.
ex:
If Facturationúlse Then Exit Sub
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"
Bonjour Ilan,
J'ai trouvé ton idée très bonne.
Alors j'ai ajouté une case à cocher avec valeur par
défaut "0" et ajouté un champ à ma table
appelé 'Facturation', comme ça dès que l'on clique
sur
cette case la valeur est "1".
Et j'ai mis ça mais Rien ne se passe:
If Facturation = 0 Then
Exit Sub
Else
If Facturation = 1 Then
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"
Luis-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaireclient. Cette case aura pour etiquette :
(Adresse de facturation si differente
de
l'adresse principale)ainsi que la (ou les) zone de texte (Ex: ADRESSEFACT)
pour la saisiede l'adresse facturation.
Quand cette case est validee, les zones de saisie pour
l'adresse defacturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour l'adresse
de
facturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And AdresseFact.Value<>""
Then
MaTable!B-ADRESFACTURATIONRESSEFACT.Value
End if
MaTable.UpDate
MaTable.CloseBonjour,
Effectivement c'est une solution, mais j'ai une
contreintequi m'oblige Ãf faire autrement.
C'est Ãf dire qu'il faut que l'adresse de
facturation
soitde suite copiÃf©e depuis l'adresse principale et le
faireavec le bouton Valider, ors si aprÃf©s avoir
enregistrÃf©
uneautre adresse facturation Ãf travers le formulaire
adressefacturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le
mÃfªme
boutonvalider et lÃf l'adresse saisie depuis le
formulaire
adresse facturation serai Ãf©crasÃf© par celui
contenu
dans leformulaire principal.
Luis-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque
client
tuas une adresse principale et une adresse
facturation
quipeuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation
1-
1et utiliser une requete d'ajout pour inserer une
adressefacturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturationou qui actualiserais les modif. En faisant appel a
tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la
requeted actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton
formulaireen mode nouveau.
C est pas vraiment une reponse directe a ton
probleme
mais j'ai fait a peu pres la meme chose dans une de
mesBD et ca marche tres bien.
a+-----Message d'origine-----
Bonjour,
A la crÃf©ation d'un nouveau client dans la
table 'clients',j'aimerai que l'adresse de la table clients se
copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est diffÃf©rente un
formulaireFacturation permet d'entrer cette adresse dans les
champs[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doiventavoir prioritÃf© par rapport Ãf l'adresse
principale
duclient.
Je rencontre deux problÃf¨mes :
Le premier : si une modif dans l'adresse de la
table
clients est saisie la formule me crÃf©e une
nouvelle
ligneNClient dans la table 'ADRESSE FACTURATION' au
lieu
demodifier les valeurs existantes.
Le deuxiÃf¨me problÃf¨me : Si dans la table
facturation
uneadresse a dÃf©jÃf Ãf©tÃf© saisie dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃf© de type.
VoilÃf ce que j'ai fais :
Dim CritÃf¨re As String, MaBD As Database,
MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",dbOpenDynaset) ' CrÃf©e la feuille de rÃf©ponses
dynamique.MaTable.MoveFirst ' Recherche la premiÃf¨re
occurrence.
Do Until MaTable.EOF ' Boucle jusqu'Ãf ce qu'il
n'y
aitplus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE]
Thentrouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problÃf¨mes :
Le premier : si une modif dans l'adresse de la
table
clients est saisie la formule me crÃf©e une
nouvelle
ligneNClient dans la table 'ADRESSE FACTURATION' au
lieu
demodifier les valeurs existantes.
Le deuxiÃf¨me problÃf¨me : Si dans la table
facturation
uneadresse a dÃf©jÃf Ãf©tÃf© saisie dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃf© de type.
Est-ce que quelqu'un peut m'aider Ãf remÃf©dier
Ãf ces
deuxproblÃf¨mes ?
Luis
.
.
.
.
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)Set MaTable ce qui correspond aux enregistrements de la table Clients.
Commence par ecrire en francais ce que tu comptes faire puis traduit en
Bonjour Ilan,
MaTable3 est une faute de frappe, sans faute de frappe
c'est MaTable
MaTable contient la table "AdresseFacturation"
Facturation est le nom de la case à cocher
Effectivement If Facturationúlse Then Exit Sub
est faux mais même comme ça:
If Facturation = False Then
MaTable = ("ADRESSE FACTURATION")
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
Else
If Facturation = True Then
Exit Sub
End If
End If
End If
Je ne sais pas si j'ai réussi à expliquer de toutes façons
le code est faux mais où????
Luis-----Message d'origine-----
Bonjour Luis,
Une case à cocher n'accepte que deux valeurs TRUE et
FALSE.En fait TRUE et FALSE sont des constantes numeriques.
TRUE (VRAI)= -1 et FALSE (FAUX) = 0
Je ne comprends rien a ton code :
MaTable3 ??? Kezako
MaTable ??? Contient quoi au juste la table Clients ou
la table AdresseFacturation
Tu ajoutes une nouvelle adresse de facturation
systematiquement,De plus, il y a dans ton code un Exit sub (Sortir de la
procedure) avantd'avoir enregistrer les modifications apportees a la
table.
ex:
If Facturationúlse Then Exit Sub
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"Bonjour Ilan,
J'ai trouvé ton idée très bonne.
Alors j'ai ajouté une case à cocher avec valeur par
défaut "0" et ajouté un champ à ma table
appelé 'Facturation', comme ça dès que l'on clique
surcette case la valeur est "1".
Et j'ai mis ça mais Rien ne se passe:
If Facturation = 0 Then
Exit Sub
Else
If Facturation = 1 Then
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"Luis-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaireclient. Cette case aura pour etiquette :
(Adresse de facturation si differente
del'adresse principale)ainsi que la (ou les) zone de texte (Ex: ADRESSEFACT)
pour la saisiede l'adresse facturation.
Quand cette case est validee, les zones de saisie pour
l'adresse defacturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour l'adresse
defacturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And AdresseFact.Value<>""
ThenMaTable!B-ADRESFACTURATIONRESSEFACT.Value
End if
MaTable.UpDate
MaTable.CloseBonjour,
Effectivement c'est une solution, mais j'ai une
contreintequi m'oblige Ãf faire autrement.
C'est Ãf dire qu'il faut que l'adresse de
facturationsoitde suite copiÃf©e depuis l'adresse principale et le
faireavec le bouton Valider, ors si aprÃf©s avoir
enregistrÃf©uneautre adresse facturation Ãf travers le formulaire
adressefacturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le
mÃfªmeboutonvalider et lÃf l'adresse saisie depuis le
formulaireadresse facturation serai Ãf©crasÃf© par celui
contenudans leformulaire principal.
Luis-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque
clienttuas une adresse principale et une adresse
facturationquipeuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation
1-1et utiliser une requete d'ajout pour inserer une
adressefacturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturationou qui actualiserais les modif. En faisant appel a
tesrequetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la
requeted actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton
formulaireen mode nouveau.
C est pas vraiment une reponse directe a ton
problememais j'ai fait a peu pres la meme chose dans une de
mesBD et ca marche tres bien.
a+-----Message d'origine-----
Bonjour,
A la crÃf©ation d'un nouveau client dans la
table 'clients',j'aimerai que l'adresse de la table clients se
copiedirectement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est diffÃf©rente un
formulaireFacturation permet d'entrer cette adresse dans les
champs[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doiventavoir prioritÃf© par rapport Ãf l'adresse
principaleduclient.
Je rencontre deux problÃf¨mes :
Le premier : si une modif dans l'adresse de la
tableclients est saisie la formule me crÃf©e une
nouvelleligneNClient dans la table 'ADRESSE FACTURATION' au
lieudemodifier les valeurs existantes.
Le deuxiÃf¨me problÃf¨me : Si dans la table
facturationuneadresse a dÃf©jÃf Ãf©tÃf© saisie dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃf© de type.
VoilÃf ce que j'ai fais :
Dim CritÃf¨re As String, MaBD As Database,
MaTable AsRecordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",dbOpenDynaset) ' CrÃf©e la feuille de rÃf©ponses
dynamique.MaTable.MoveFirst ' Recherche la premiÃf¨re
occurrence.Do Until MaTable.EOF ' Boucle jusqu'Ãf ce qu'il
n'yaitplus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE]
Thentrouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problÃf¨mes :
Le premier : si une modif dans l'adresse de la
tableclients est saisie la formule me crÃf©e une
nouvelleligneNClient dans la table 'ADRESSE FACTURATION' au
lieudemodifier les valeurs existantes.
Le deuxiÃf¨me problÃf¨me : Si dans la table
facturationuneadresse a dÃf©jÃf Ãf©tÃf© saisie dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃf© de type.
Est-ce que quelqu'un peut m'aider Ãf remÃf©dier
Ãf cesdeuxproblÃf¨mes ?
Luis
.
.
.
.
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)Set MaTable ce qui correspond aux enregistrements de la table Clients.
Commence par ecrire en francais ce que tu comptes faire puis traduit en
Bonjour Ilan,
MaTable3 est une faute de frappe, sans faute de frappe
c'est MaTable
MaTable contient la table "AdresseFacturation"
Facturation est le nom de la case à cocher
Effectivement If Facturationúlse Then Exit Sub
est faux mais même comme ça:
If Facturation = False Then
MaTable = ("ADRESSE FACTURATION")
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
Else
If Facturation = True Then
Exit Sub
End If
End If
End If
Je ne sais pas si j'ai réussi à expliquer de toutes façons
le code est faux mais où????
Luis
-----Message d'origine-----
Bonjour Luis,
Une case à cocher n'accepte que deux valeurs TRUE et
FALSE.
En fait TRUE et FALSE sont des constantes numeriques.
TRUE (VRAI)= -1 et FALSE (FAUX) = 0
Je ne comprends rien a ton code :
MaTable3 ??? Kezako
MaTable ??? Contient quoi au juste la table Clients ou
la table AdresseFacturation
Tu ajoutes une nouvelle adresse de facturation
systematiquement,
De plus, il y a dans ton code un Exit sub (Sortir de la
procedure) avant
d'avoir enregistrer les modifications apportees a la
table.
ex:
If Facturationúlse Then Exit Sub
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"
Bonjour Ilan,
J'ai trouvé ton idée très bonne.
Alors j'ai ajouté une case à cocher avec valeur par
défaut "0" et ajouté un champ à ma table
appelé 'Facturation', comme ça dès que l'on clique
sur
cette case la valeur est "1".
Et j'ai mis ça mais Rien ne se passe:
If Facturation = 0 Then
Exit Sub
Else
If Facturation = 1 Then
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"
Luis
-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaire
client. Cette case aura pour etiquette :
(Adresse de facturation si differente
de
l'adresse principale)
ainsi que la (ou les) zone de texte (Ex: ADRESSEFACT)
pour la saisie
de l'adresse facturation.
Quand cette case est validee, les zones de saisie pour
l'adresse de
facturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour l'adresse
de
facturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]
WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And AdresseFact.Value<>""
Then
MaTable!B-ADRESFACTURATIONRESSEFACT.Value
End if
MaTable.UpDate
MaTable.Close
Bonjour,
Effectivement c'est une solution, mais j'ai une
contreinte
qui m'oblige Ãf faire autrement.
C'est Ãf dire qu'il faut que l'adresse de
facturation
soit
de suite copiÃf©e depuis l'adresse principale et le
faire
avec le bouton Valider, ors si aprÃf©s avoir
enregistrÃf©
une
autre adresse facturation Ãf travers le formulaire
adresse
facturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le
mÃfªme
bouton
valider et lÃf l'adresse saisie depuis le
formulaire
adresse facturation serai Ãf©crasÃf© par celui
contenu
dans le
formulaire principal.
Luis
-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque
client
tu
as une adresse principale et une adresse
facturation
qui
peuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation
1-
1
et utiliser une requete d'ajout pour inserer une
adresse
facturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturation
ou qui actualiserais les modif. En faisant appel a
tes
requetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la
requete
d actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton
formulaire
en mode nouveau.
C est pas vraiment une reponse directe a ton
probleme
mais j'ai fait a peu pres la meme chose dans une de
mes
BD et ca marche tres bien.
a+
-----Message d'origine-----
Bonjour,
A la crÃf©ation d'un nouveau client dans la
table 'clients',
j'aimerai que l'adresse de la table clients se
copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est diffÃf©rente un
formulaire
Facturation permet d'entrer cette adresse dans les
champs
[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doivent
avoir prioritÃf© par rapport Ãf l'adresse
principale
du
client.
Je rencontre deux problÃf¨mes :
Le premier : si une modif dans l'adresse de la
table
clients est saisie la formule me crÃf©e une
nouvelle
ligne
NClient dans la table 'ADRESSE FACTURATION' au
lieu
de
modifier les valeurs existantes.
Le deuxiÃf¨me problÃf¨me : Si dans la table
facturation
une
adresse a dÃf©jÃf Ãf©tÃf© saisie dans [B-
ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃf© de type.
VoilÃf ce que j'ai fais :
Dim CritÃf¨re As String, MaBD As Database,
MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",
dbOpenDynaset) ' CrÃf©e la feuille de rÃf©ponses
dynamique.
MaTable.MoveFirst ' Recherche la premiÃf¨re
occurrence.
Do Until MaTable.EOF ' Boucle jusqu'Ãf ce qu'il
n'y
ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE]
Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problÃf¨mes :
Le premier : si une modif dans l'adresse de la
table
clients est saisie la formule me crÃf©e une
nouvelle
ligne
NClient dans la table 'ADRESSE FACTURATION' au
lieu
de
modifier les valeurs existantes.
Le deuxiÃf¨me problÃf¨me : Si dans la table
facturation
une
adresse a dÃf©jÃf Ãf©tÃf© saisie dans [B-
ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃf© de type.
Est-ce que quelqu'un peut m'aider Ãf remÃf©dier
Ãf ces
deux
problÃf¨mes ?
Luis
.
.
.
.
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)Set MaTable ce qui correspond aux enregistrements de la table Clients.
Commence par ecrire en francais ce que tu comptes faire puis traduit en
Bonjour Ilan,
MaTable3 est une faute de frappe, sans faute de frappe
c'est MaTable
MaTable contient la table "AdresseFacturation"
Facturation est le nom de la case à cocher
Effectivement If Facturationúlse Then Exit Sub
est faux mais même comme ça:
If Facturation = False Then
MaTable = ("ADRESSE FACTURATION")
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
Else
If Facturation = True Then
Exit Sub
End If
End If
End If
Je ne sais pas si j'ai réussi à expliquer de toutes façons
le code est faux mais où????
Luis-----Message d'origine-----
Bonjour Luis,
Une case à cocher n'accepte que deux valeurs TRUE et
FALSE.En fait TRUE et FALSE sont des constantes numeriques.
TRUE (VRAI)= -1 et FALSE (FAUX) = 0
Je ne comprends rien a ton code :
MaTable3 ??? Kezako
MaTable ??? Contient quoi au juste la table Clients ou
la table AdresseFacturation
Tu ajoutes une nouvelle adresse de facturation
systematiquement,De plus, il y a dans ton code un Exit sub (Sortir de la
procedure) avantd'avoir enregistrer les modifications apportees a la
table.
ex:
If Facturationúlse Then Exit Sub
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"Bonjour Ilan,
J'ai trouvé ton idée très bonne.
Alors j'ai ajouté une case à cocher avec valeur par
défaut "0" et ajouté un champ à ma table
appelé 'Facturation', comme ça dès que l'on clique
surcette case la valeur est "1".
Et j'ai mis ça mais Rien ne se passe:
If Facturation = 0 Then
Exit Sub
Else
If Facturation = 1 Then
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"Luis-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaireclient. Cette case aura pour etiquette :
(Adresse de facturation si differente
del'adresse principale)ainsi que la (ou les) zone de texte (Ex: ADRESSEFACT)
pour la saisiede l'adresse facturation.
Quand cette case est validee, les zones de saisie pour
l'adresse defacturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour l'adresse
defacturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And AdresseFact.Value<>""
ThenMaTable!B-ADRESFACTURATIONRESSEFACT.Value
End if
MaTable.UpDate
MaTable.CloseBonjour,
Effectivement c'est une solution, mais j'ai une
contreintequi m'oblige Ãf faire autrement.
C'est Ãf dire qu'il faut que l'adresse de
facturationsoitde suite copiÃf©e depuis l'adresse principale et le
faireavec le bouton Valider, ors si aprÃf©s avoir
enregistrÃf©uneautre adresse facturation Ãf travers le formulaire
adressefacturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car la
Validation de la midification se fait avec le
mÃfªmeboutonvalider et lÃf l'adresse saisie depuis le
formulaireadresse facturation serai Ãf©crasÃf© par celui
contenudans leformulaire principal.
Luis-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque
clienttuas une adresse principale et une adresse
facturationquipeuvent etre les memes ou non.
Personnellement j aurais mis les tables en relation
1-1et utiliser une requete d'ajout pour inserer une
adressefacturation pour un nouveau client et une requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturationou qui actualiserais les modif. En faisant appel a
tesrequetes d action utilisant la fonction "if": Si l
adresse de facturation existe le code lancera la
requeted actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer une
differente, donc ouvrirait tout simplement ton
formulaireen mode nouveau.
C est pas vraiment une reponse directe a ton
problememais j'ai fait a peu pres la meme chose dans une de
mesBD et ca marche tres bien.
a+-----Message d'origine-----
Bonjour,
A la crÃf©ation d'un nouveau client dans la
table 'clients',j'aimerai que l'adresse de la table clients se
copiedirectement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est diffÃf©rente un
formulaireFacturation permet d'entrer cette adresse dans les
champs[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE], qui
doiventavoir prioritÃf© par rapport Ãf l'adresse
principaleduclient.
Je rencontre deux problÃf¨mes :
Le premier : si une modif dans l'adresse de la
tableclients est saisie la formule me crÃf©e une
nouvelleligneNClient dans la table 'ADRESSE FACTURATION' au
lieudemodifier les valeurs existantes.
Le deuxiÃf¨me problÃf¨me : Si dans la table
facturationuneadresse a dÃf©jÃf Ãf©tÃf© saisie dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃf© de type.
VoilÃf ce que j'ai fais :
Dim CritÃf¨re As String, MaBD As Database,
MaTable AsRecordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",dbOpenDynaset) ' CrÃf©e la feuille de rÃf©ponses
dynamique.MaTable.MoveFirst ' Recherche la premiÃf¨re
occurrence.Do Until MaTable.EOF ' Boucle jusqu'Ãf ce qu'il
n'yaitplus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-ADRESSEPRINCIPALE]
Thentrouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problÃf¨mes :
Le premier : si une modif dans l'adresse de la
tableclients est saisie la formule me crÃf©e une
nouvelleligneNClient dans la table 'ADRESSE FACTURATION' au
lieudemodifier les valeurs existantes.
Le deuxiÃf¨me problÃf¨me : Si dans la table
facturationuneadresse a dÃf©jÃf Ãf©tÃf© saisie dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃf© de type.
Est-ce que quelqu'un peut m'aider Ãf remÃf©dier
Ãf cesdeuxproblÃf¨mes ?
Luis
.
.
.
.
-----Message d'origine-----
Heu... Oui
Mais si la variable doit contenir les enregistrements de
la table Adresse
Facturation
pourquoi ecris-tu :Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)Set MaTable=
ce qui correspond aux enregistrements de la table Clients.
Commence par ecrire en francais ce que tu comptes faire
puis traduit en
language Visual Basic.
Ce que tu as ecris la, ne veut pas dire gand chose
tu as ecris que si la case a cocher Facturation est Faux
alors ajouter un
nouveau
client a la table client avec les champs AdresseDef et
NPDef de la table
clients
valent respectivement B-ADRESSE et B-NP puis sortir de la
procedure
avant d'enregistrer les modifications.Bonjour Ilan,
MaTable3 est une faute de frappe, sans faute de frappe
c'est MaTable
MaTable contient la table "AdresseFacturation"
Facturation est le nom de la case à cocher
Effectivement If Facturationúlse Then Exit Sub
est faux mais même comme ça:
If Facturation = False Then
MaTable = ("ADRESSE FACTURATION")
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
Else
If Facturation = True Then
Exit Sub
End If
End If
End If
Je ne sais pas si j'ai réussi à expliquer de toutes
façons
le code est faux mais où????
Luis-----Message d'origine-----
Bonjour Luis,
Une case Ãf cocher n'accepte que deux valeurs TRUE et
FALSE.En fait TRUE et FALSE sont des constantes numeriques.
TRUE (VRAI)= -1 et FALSE (FAUX) = 0
Je ne comprends rien a ton code :
MaTable3 ??? Kezako
MaTable ??? Contient quoi au juste la table Clients ou
la table AdresseFacturation
Tu ajoutes une nouvelle adresse de facturation
systematiquement,De plus, il y a dans ton code un Exit sub (Sortir de
la
procedure) avantd'avoir enregistrer les modifications apportees a la
table.
ex:
If Facturationúlse Then Exit Sub
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"Bonjour Ilan,
J'ai trouvÃf© ton idÃf©e trÃf¨s bonne.
Alors j'ai ajoutÃf© une case Ãf cocher avec valeur
par
dÃf©faut "0" et ajoutÃf© un champ Ãf ma table
appelÃf© 'Facturation', comme Ãf§a dÃf¨s que l'on
clique
surcette case la valeur est "1".
Et j'ai mis Ãf§a mais Rien ne se passe:
If Facturation = 0 Then
Exit Sub
Else
If Facturation = 1 Then
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"Luis-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaireclient. Cette case aura pour etiquette :
(Adresse de facturation si
differente
del'adresse principale)ainsi que la (ou les) zone de texte (Ex:
ADRESSEFACT)
pour la saisiede l'adresse facturation.
Quand cette case est validee, les zones de saisie
pour
l'adresse defacturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE
FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour
l'adresse
defacturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And
AdresseFact.Value<>""
ThenMaTable!B-ADRESFACTURATIONRESSEFACT.Value
End if
MaTable.UpDate
MaTable.CloseBonjour,
Effectivement c'est une solution, mais j'ai une
contreintequi m'oblige Ãff faire autrement.
C'est Ãff dire qu'il faut que l'adresse de
facturationsoitde suite copiÃffÃ,©e depuis l'adresse principale
et le
faireavec le bouton Valider, ors si aprÃffÃ,©s avoir
enregistrÃffÃ,©uneautre adresse facturation Ãff travers le
formulaire
adressefacturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car
la
Validation de la midification se fait avec le
mÃffÃ,ªmeboutonvalider et lÃff l'adresse saisie depuis le
formulaireadresse facturation serai ÃffÃ,©crasÃffÃ,© par
celui
contenudans leformulaire principal.
Luis-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque
clienttuas une adresse principale et une adresse
facturationquipeuvent etre les memes ou non.
Personnellement j aurais mis les tables en
relation
1-1et utiliser une requete d'ajout pour inserer une
adressefacturation pour un nouveau client et une
requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturationou qui actualiserais les modif. En faisant appel
a
tesrequetes d action utilisant la fonction "if": Si
l
adresse de facturation existe le code lancera la
requeted actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer
une
differente, donc ouvrirait tout simplement ton
formulaireen mode nouveau.
C est pas vraiment une reponse directe a ton
problememais j'ai fait a peu pres la meme chose dans une
de
mesBD et ca marche tres bien.
a+-----Message d'origine-----
Bonjour,
A la crÃffÃ,©ation d'un nouveau client dans la
table 'clients',j'aimerai que l'adresse de la table clients se
copiedirectement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est
diffÃffÃ,©rente un
formulaireFacturation permet d'entrer cette adresse dans
les
champs[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE],
qui
doiventavoir prioritÃffÃ,© par rapport Ãff l'adresse
principaleduclient.
Je rencontre deux problÃffÃ,¨mes :
Le premier : si une modif dans l'adresse de la
tableclients est saisie la formule me crÃffÃ,©e une
nouvelleligneNClient dans la table 'ADRESSE FACTURATION' au
lieudemodifier les valeurs existantes.
Le deuxiÃffÃ,¨me problÃffÃ,¨me : Si dans la
table
facturationuneadresse a dÃffÃ,©jÃff ÃffÃ,©tÃffÃ,© saisie
dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃffÃ,© de type.
VoilÃff ce que j'ai fais :
Dim CritÃffÃ,¨re As String, MaBD As Database,
MaTable AsRecordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",dbOpenDynaset) ' CrÃffÃ,©e la feuille de
rÃffÃ,©ponses
dynamique.MaTable.MoveFirst ' Recherche la premiÃffÃ,¨re
occurrence.Do Until MaTable.EOF ' Boucle jusqu'Ãff ce
qu'il
n'yaitplus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-
ADRESSEPRINCIPALE]
Thentrouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la
boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problÃffÃ,¨mes :
Le premier : si une modif dans l'adresse de la
tableclients est saisie la formule me crÃffÃ,©e une
nouvelleligneNClient dans la table 'ADRESSE FACTURATION' au
lieudemodifier les valeurs existantes.
Le deuxiÃffÃ,¨me problÃffÃ,¨me : Si dans la
table
facturationuneadresse a dÃffÃ,©jÃff ÃffÃ,©tÃffÃ,© saisie
dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃffÃ,© de type.
Est-ce que quelqu'un peut m'aider Ãff
remÃffÃ,©dier
Ãff cesdeuxproblÃffÃ,¨mes ?
Luis
.
.
.
.
.
-----Message d'origine-----
Heu... Oui
Mais si la variable doit contenir les enregistrements de
la table Adresse
Facturation
pourquoi ecris-tu :
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)Set MaTable=
ce qui correspond aux enregistrements de la table Clients.
Commence par ecrire en francais ce que tu comptes faire
puis traduit en
language Visual Basic.
Ce que tu as ecris la, ne veut pas dire gand chose
tu as ecris que si la case a cocher Facturation est Faux
alors ajouter un
nouveau
client a la table client avec les champs AdresseDef et
NPDef de la table
clients
valent respectivement B-ADRESSE et B-NP puis sortir de la
procedure
avant d'enregistrer les modifications.
Bonjour Ilan,
MaTable3 est une faute de frappe, sans faute de frappe
c'est MaTable
MaTable contient la table "AdresseFacturation"
Facturation est le nom de la case à cocher
Effectivement If Facturation=False Then Exit Sub
est faux mais même comme ça:
If Facturation = False Then
MaTable = ("ADRESSE FACTURATION")
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
Else
If Facturation = True Then
Exit Sub
End If
End If
End If
Je ne sais pas si j'ai réussi à expliquer de toutes
façons
le code est faux mais où????
Luis
-----Message d'origine-----
Bonjour Luis,
Une case Ãf cocher n'accepte que deux valeurs TRUE et
FALSE.
En fait TRUE et FALSE sont des constantes numeriques.
TRUE (VRAI)= -1 et FALSE (FAUX) = 0
Je ne comprends rien a ton code :
MaTable3 ??? Kezako
MaTable ??? Contient quoi au juste la table Clients ou
la table AdresseFacturation
Tu ajoutes une nouvelle adresse de facturation
systematiquement,
De plus, il y a dans ton code un Exit sub (Sortir de
la
procedure) avant
d'avoir enregistrer les modifications apportees a la
table.
ex:
If Facturation=False Then Exit Sub
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"
Bonjour Ilan,
J'ai trouvÃf© ton idÃf©e trÃf¨s bonne.
Alors j'ai ajoutÃf© une case Ãf cocher avec valeur
par
dÃf©faut "0" et ajoutÃf© un champ Ãf ma table
appelÃf© 'Facturation', comme Ãf§a dÃf¨s que l'on
clique
sur
cette case la valeur est "1".
Et j'ai mis Ãf§a mais Rien ne se passe:
If Facturation = 0 Then
Exit Sub
Else
If Facturation = 1 Then
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"
Luis
-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaire
client. Cette case aura pour etiquette :
(Adresse de facturation si
differente
de
l'adresse principale)
ainsi que la (ou les) zone de texte (Ex:
ADRESSEFACT)
pour la saisie
de l'adresse facturation.
Quand cette case est validee, les zones de saisie
pour
l'adresse de
facturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE
FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour
l'adresse
de
facturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]
WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And
AdresseFact.Value<>""
Then
MaTable!B-ADRESFACTURATION=ADRESSEFACT.Value
End if
MaTable.UpDate
MaTable.Close
Bonjour,
Effectivement c'est une solution, mais j'ai une
contreinte
qui m'oblige Ãff faire autrement.
C'est Ãff dire qu'il faut que l'adresse de
facturation
soit
de suite copiÃffÃ,©e depuis l'adresse principale
et le
faire
avec le bouton Valider, ors si aprÃffÃ,©s avoir
enregistrÃffÃ,©
une
autre adresse facturation Ãff travers le
formulaire
adresse
facturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car
la
Validation de la midification se fait avec le
mÃffÃ,ªme
bouton
valider et lÃff l'adresse saisie depuis le
formulaire
adresse facturation serai ÃffÃ,©crasÃffÃ,© par
celui
contenu
dans le
formulaire principal.
Luis
-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque
client
tu
as une adresse principale et une adresse
facturation
qui
peuvent etre les memes ou non.
Personnellement j aurais mis les tables en
relation
1-
1
et utiliser une requete d'ajout pour inserer une
adresse
facturation pour un nouveau client et une
requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturation
ou qui actualiserais les modif. En faisant appel
a
tes
requetes d action utilisant la fonction "if": Si
l
adresse de facturation existe le code lancera la
requete
d actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer
une
differente, donc ouvrirait tout simplement ton
formulaire
en mode nouveau.
C est pas vraiment une reponse directe a ton
probleme
mais j'ai fait a peu pres la meme chose dans une
de
mes
BD et ca marche tres bien.
a+
-----Message d'origine-----
Bonjour,
A la crÃffÃ,©ation d'un nouveau client dans la
table 'clients',
j'aimerai que l'adresse de la table clients se
copie
directement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est
diffÃffÃ,©rente un
formulaire
Facturation permet d'entrer cette adresse dans
les
champs
[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE],
qui
doivent
avoir prioritÃffÃ,© par rapport Ãff l'adresse
principale
du
client.
Je rencontre deux problÃffÃ,¨mes :
Le premier : si une modif dans l'adresse de la
table
clients est saisie la formule me crÃffÃ,©e une
nouvelle
ligne
NClient dans la table 'ADRESSE FACTURATION' au
lieu
de
modifier les valeurs existantes.
Le deuxiÃffÃ,¨me problÃffÃ,¨me : Si dans la
table
facturation
une
adresse a dÃffÃ,©jÃff ÃffÃ,©tÃffÃ,© saisie
dans [B-
ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃffÃ,© de type.
VoilÃff ce que j'ai fais :
Dim CritÃffÃ,¨re As String, MaBD As Database,
MaTable As
Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",
dbOpenDynaset) ' CrÃffÃ,©e la feuille de
rÃffÃ,©ponses
dynamique.
MaTable.MoveFirst ' Recherche la premiÃffÃ,¨re
occurrence.
Do Until MaTable.EOF ' Boucle jusqu'Ãff ce
qu'il
n'y
ait
plus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-
ADRESSEPRINCIPALE]
Then
trouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la
boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problÃffÃ,¨mes :
Le premier : si une modif dans l'adresse de la
table
clients est saisie la formule me crÃffÃ,©e une
nouvelle
ligne
NClient dans la table 'ADRESSE FACTURATION' au
lieu
de
modifier les valeurs existantes.
Le deuxiÃffÃ,¨me problÃffÃ,¨me : Si dans la
table
facturation
une
adresse a dÃffÃ,©jÃff ÃffÃ,©tÃffÃ,© saisie
dans [B-
ADRESFACTURATION] et
que
je fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃffÃ,© de type.
Est-ce que quelqu'un peut m'aider Ãff
remÃffÃ,©dier
Ãff ces
deux
problÃffÃ,¨mes ?
Luis
.
.
.
.
.
-----Message d'origine-----
Heu... Oui
Mais si la variable doit contenir les enregistrements de
la table Adresse
Facturation
pourquoi ecris-tu :Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)Set MaTable=
ce qui correspond aux enregistrements de la table Clients.
Commence par ecrire en francais ce que tu comptes faire
puis traduit en
language Visual Basic.
Ce que tu as ecris la, ne veut pas dire gand chose
tu as ecris que si la case a cocher Facturation est Faux
alors ajouter un
nouveau
client a la table client avec les champs AdresseDef et
NPDef de la table
clients
valent respectivement B-ADRESSE et B-NP puis sortir de la
procedure
avant d'enregistrer les modifications.Bonjour Ilan,
MaTable3 est une faute de frappe, sans faute de frappe
c'est MaTable
MaTable contient la table "AdresseFacturation"
Facturation est le nom de la case à cocher
Effectivement If Facturationúlse Then Exit Sub
est faux mais même comme ça:
If Facturation = False Then
MaTable = ("ADRESSE FACTURATION")
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
Else
If Facturation = True Then
Exit Sub
End If
End If
End If
Je ne sais pas si j'ai réussi à expliquer de toutes
façons
le code est faux mais où????
Luis-----Message d'origine-----
Bonjour Luis,
Une case Ãf cocher n'accepte que deux valeurs TRUE et
FALSE.En fait TRUE et FALSE sont des constantes numeriques.
TRUE (VRAI)= -1 et FALSE (FAUX) = 0
Je ne comprends rien a ton code :
MaTable3 ??? Kezako
MaTable ??? Contient quoi au juste la table Clients ou
la table AdresseFacturation
Tu ajoutes une nouvelle adresse de facturation
systematiquement,De plus, il y a dans ton code un Exit sub (Sortir de
la
procedure) avantd'avoir enregistrer les modifications apportees a la
table.
ex:
If Facturationúlse Then Exit Sub
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"Bonjour Ilan,
J'ai trouvÃf© ton idÃf©e trÃf¨s bonne.
Alors j'ai ajoutÃf© une case Ãf cocher avec valeur
par
dÃf©faut "0" et ajoutÃf© un champ Ãf ma table
appelÃf© 'Facturation', comme Ãf§a dÃf¨s que l'on
clique
surcette case la valeur est "1".
Et j'ai mis Ãf§a mais Rien ne se passe:
If Facturation = 0 Then
Exit Sub
Else
If Facturation = 1 Then
MaTable = "ADRESSE FACTURATION"
Set MaTable = CurrentDb.OpenRecordset("SELECT * FROM
CLIENTS WHERE NClient = " & NCLIENT)
If MaTable.BOF And MaTable3.EOF Then
MaTable.AddNew
MaTable!NCLIENT = NCLIENT
MaTable![Adressedef] = Me.[B-ADRESSE]
MaTable![NPdef] = Me.[B-NP]
Exit Sub
MaTable.Update
MaTable.Close
End If
End If
End If
[Adressedef] et [NPdef] sont les champs de la
table "ADRESSE FACTURATION"
[B-ADRESSE] et [B-NP] sont les champs de la
table "Clients"Luis-----Message d'origine-----
Bonsoir,
tu peux peut-etre te contenter d'ajouter une case a
cocher dans ton formulaireclient. Cette case aura pour etiquette :
(Adresse de facturation si
differente
del'adresse principale)ainsi que la (ou les) zone de texte (Ex:
ADRESSEFACT)
pour la saisiede l'adresse facturation.
Quand cette case est validee, les zones de saisie
pour
l'adresse defacturation
deviennent accessibles.
Pour la mise a jour de la table ADRESSE
FACTURATION :
Si la case a cocher est validee
Alors B-ADRESFACTURATION = ADRESSEFACT
Sinon B-ADRESFACTURATION = B-ADRESSEPRINCIPALE
Pour la mise a jour, ajouter du code du genre :
Exemple : 1 zone de texte ADRESSEFACT pour
l'adresse
defacturation
Set MaTable=CurrentDb.OpenRecordset("SELECT * FROM
[ADRESSE FACTURATION]WHERE NumClient=" & controlnumclient.Value)
If MaTable.BOF and MaTable.EOF then
MaTable.AddNew
MaTable!NumClient=controlnumclient.Vlue
End if
End if
MaTable!B-ADRESFACTURATION=B-ADRESSEPRINCIPALE
If CaseaCocher.Value=True And
AdresseFact.Value<>""
ThenMaTable!B-ADRESFACTURATIONRESSEFACT.Value
End if
MaTable.UpDate
MaTable.CloseBonjour,
Effectivement c'est une solution, mais j'ai une
contreintequi m'oblige Ãff faire autrement.
C'est Ãff dire qu'il faut que l'adresse de
facturationsoitde suite copiÃffÃ,©e depuis l'adresse principale
et le
faireavec le bouton Valider, ors si aprÃffÃ,©s avoir
enregistrÃffÃ,©uneautre adresse facturation Ãff travers le
formulaire
adressefacturation, il deviendra impossible de faire des
modifications dans le formulaire principal, car
la
Validation de la midification se fait avec le
mÃffÃ,ªmeboutonvalider et lÃff l'adresse saisie depuis le
formulaireadresse facturation serai ÃffÃ,©crasÃffÃ,© par
celui
contenudans leformulaire principal.
Luis-----Message d'origine-----
Salut,
Si j ai bien compris ton probleme pour chaque
clienttuas une adresse principale et une adresse
facturationquipeuvent etre les memes ou non.
Personnellement j aurais mis les tables en
relation
1-1et utiliser une requete d'ajout pour inserer une
adressefacturation pour un nouveau client et une
requete
actualisation en cas de modification.
Puis creer deux boutons dans ton formulaire:
Un qui utilise ton adresse principale pour ta
facturationou qui actualiserais les modif. En faisant appel
a
tesrequetes d action utilisant la fonction "if": Si
l
adresse de facturation existe le code lancera la
requeted actualisation sinon il lancera celle d'ajout.
L'autre bouton qui te permettrait d en inserer
une
differente, donc ouvrirait tout simplement ton
formulaireen mode nouveau.
C est pas vraiment une reponse directe a ton
problememais j'ai fait a peu pres la meme chose dans une
de
mesBD et ca marche tres bien.
a+-----Message d'origine-----
Bonjour,
A la crÃffÃ,©ation d'un nouveau client dans la
table 'clients',j'aimerai que l'adresse de la table clients se
copiedirectement dans la table 'ADRESSE FACTURATION'.
Si l'adresse de facturation est
diffÃffÃ,©rente un
formulaireFacturation permet d'entrer cette adresse dans
les
champs[B-ADRESFACTURATION] et [B-ADRESSEPRINCIPALE],
qui
doiventavoir prioritÃffÃ,© par rapport Ãff l'adresse
principaleduclient.
Je rencontre deux problÃffÃ,¨mes :
Le premier : si une modif dans l'adresse de la
tableclients est saisie la formule me crÃffÃ,©e une
nouvelleligneNClient dans la table 'ADRESSE FACTURATION' au
lieudemodifier les valeurs existantes.
Le deuxiÃffÃ,¨me problÃffÃ,¨me : Si dans la
table
facturationuneadresse a dÃffÃ,©jÃff ÃffÃ,©tÃffÃ,© saisie
dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃffÃ,© de type.
VoilÃff ce que j'ai fais :
Dim CritÃffÃ,¨re As String, MaBD As Database,
MaTable AsRecordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("ADRESSE
FACTURATION",dbOpenDynaset) ' CrÃffÃ,©e la feuille de
rÃffÃ,©ponses
dynamique.MaTable.MoveFirst ' Recherche la premiÃffÃ,¨re
occurrence.Do Until MaTable.EOF ' Boucle jusqu'Ãff ce
qu'il
n'yaitplus d'enregistrement correspondant.
TESTER = MaTable!NClient
If TESTER = NClient Then
COMPE = MaTable!Adressedef
If COMPE = Me![B-ADRESSE] Or MaTable![B-
ADRESFACTURATION] Or MaTable![B-
ADRESSEPRINCIPALE]
Thentrouve = 1
Exit Do
Else
trouve = 0
End If
MaTable.MoveNext
Else
MaTable.MoveNext
End If
Loop ' Fin de la
boucle.
If trouve = 0 Then
MaTable.AddNew
MaTable!NClient = NClient
MaTable!Adressedef = [B-ADRESSE]
MaTable!NPdef = [B-NP]
MaTable.Update
MaTable.Close
Else
'matable.Close
End If
Je rencontre deux problÃffÃ,¨mes :
Le premier : si une modif dans l'adresse de la
tableclients est saisie la formule me crÃffÃ,©e une
nouvelleligneNClient dans la table 'ADRESSE FACTURATION' au
lieudemodifier les valeurs existantes.
Le deuxiÃffÃ,¨me problÃffÃ,¨me : Si dans la
table
facturationuneadresse a dÃffÃ,©jÃff ÃffÃ,©tÃffÃ,© saisie
dans [B-
ADRESFACTURATION] etqueje fais une modification dans la table clients.
J'ai une erreur d'incompatibilitÃffÃ,© de type.
Est-ce que quelqu'un peut m'aider Ãff
remÃffÃ,©dier
Ãff cesdeuxproblÃffÃ,¨mes ?
Luis
.
.
.
.
.