Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pour Christophe JEAN c.jean8@free.fr

7 réponses
Avatar
j0b
c est au niveau de la procédure excel, access, elle fonctionne nickel la procédure, ya juste un problème mineur je pense c'est que la procédure fait l'update de la cellule A2 et B2 et je voudrais plutot faire l update d'une colonne directement. De plus ya un bug au niveau de la procédure si on fait 2 fois le meme update ce qui est normal parce que ca cré des doublons au niveau de clé primaire ce qui n'est pas possible. Donc si vous trouvez les infos pour corriger ca et en meme temps en ce qui concerne le numéro de client puis je faire quelque chose pour qu il se mette en automatique dès qu un nouveau nom et mis a jour dans la table ? merci bien pour le travail réalisé c est prestigieu

7 réponses

Avatar
Philippe.R
Bonsoir j0b,
Te serait il possible de lire ce qu'il y a au bout de ce lien :

http://www.excelabo.net/mpfe/connexion.php

et de l'appliquer ?
Merci d'avance ;o))
--
Amicales Salutations

"j0b" a écrit dans le message de news:41519056$0$13721$
c est au niveau de la procédure excel, access, elle fonctionne nickel la procédure, ya juste un
problème mineur je pense c'est que la procédure fait l'update de la cellule A2 et B2 et je voudrais

plutot faire l update d'une colonne directement. De plus ya un bug au niveau de la procédure si on fait
2 fois le meme update ce qui est normal parce que ca cré des doublons au niveau de clé primaire ce qui
n'est pas possible. Donc si vous trouvez les infos pour corriger ca et en meme temps en ce qui concerne
le numéro de client puis je faire quelque chose pour qu il se mette en automatique dès qu un nouveau nom
et mis a jour dans la table ? merci bien pour le travail réalisé c est prestigieu

Avatar
Christophe JEAN
Merci pour tes compliments

Alors pour corriger la procédure, voici comment faire :
1°) Alors pour adapter à ton application, il te faudra créer autant de
variables qu'il y a de données à récupérer -il est vrai q'uon peut faire
autrement mais par expérience je te conseille de faire ainsi.
Ces variables seront chargées de lire tes cellules (instruction Variable [Cellule].Value) une à une.
Donc qu'elles soient en ligne ou en colonne, ce la ne fait que peu de
différence.

2°) Pour eviter le risque de saisie de doublons, je te conseille d'effacer
la plage après envoi des données dans Access : Juste avant End Sub, il faut
rajouter l'instruction Range("A2:K2").ClearContents
Alors ça c'est pour le classeur sur lequel j'ai fait des tests. Par contre
s'il ne faut pas effacer mais vérifier s'il existe dans la table, alors je
te propose d'y rajouter le code suivant juste après les 2 instructions de
création d'objet Automation et avant rsClient.AddNew :
'Vérification de l'enregistrement est bien inexistant dans la table
rsClient.Seek "=", strID
If Not rsClient.NoMatch Then
Beep
MsgBox "Ce client a déjà été saisi dans la table", _
vbExclamation, "Attention doublon dans la saisie"
Exit Sub
End If
'Sinon on ajoute les données

Merci beaucoup pour tes encouragements et compliments car pour moi un forum
doit être un lieu de partage et d'échange de connaissances pour faire
avancer les choses et non un lieu où l'on doit chercher à se montrer ou à
attirer des usagers vers un pseudo site en mal de clic.

A+

Christophe JEAN

"L'intelligence c'est comme la confiture : moins on en a plus on l'étale"
Ch. de GAULLE



"j0b" a écrit dans le message de news:
41519056$0$13721$
c est au niveau de la procédure excel, access, elle fonctionne nickel la
procédure, ya juste un problème mineur je pense c'est que la procédure fait
l'update de la cellule A2 et B2 et je voudrais plutot faire l update d'une
colonne directement. De plus ya un bug au niveau de la procédure si on fait
2 fois le meme update ce qui est normal parce que ca cré des doublons au
niveau de clé primaire ce qui n'est pas possible. Donc si vous trouvez les
infos pour corriger ca et en meme temps en ce qui concerne le numéro de
client puis je faire quelque chose pour qu il se mette en automatique dès
qu un nouveau nom et mis a jour dans la table ? merci bien pour le travail
réalisé c est prestigieu


Avatar
Christophe JEAN
Il faut juste rajouter l'instruction
rsClient.Index = "PrimaryKey"
| avant
| rsClient.Seek ...
|
| milles excuses
|
| > 2°) Pour eviter le risque de saisie de doublons, je te conseille
d'effacer
| > la plage après envoi des données dans Access : Juste avant End Sub,
il faut
| > rajouter l'instruction Range("A2:K2").ClearContents
| > Alors ça c'est pour le classeur sur lequel j'ai fait des tests. Par
contre
| > s'il ne faut pas effacer mais vérifier s'il existe dans la table,
alors je
| > te propose d'y rajouter le code suivant juste après les 2
instructions de
| > création d'objet Automation et avant rsClient.AddNew :
| > 'Vérification de l'enregistrement est bien inexistant dans la
table
|--> ici
rsClient.Seek "=", strID
If Not rsClient.NoMatch Then
Beep
MsgBox "Ce client a déjà été saisi dans la table", _
vbExclamation, "Attention doublon dans la saisie"
Exit Sub
End If
'Sinon on ajoute les données



Avatar
j'ai bien suivit vos conseils mais ya un problème au niveau
la procédure qui est doit faire la comparaison entre excel
et accès ya un beug au niveau de l'instruction >rsClient.
Index = "PrimaryKey" qui affiche un message d'erreur qui me
dis objet non autorisé. De plus je voulais préciser que le
context de message box est sympa mais pas nécessaire pour
moi, je veux tout simplement que la procédure modifier un
client si un renseignement de donnée est changé ou tout
simplement qu'il ajoute les clients qui ont été saisie dans
la plage de donée. Si vous avez besoin de renseignement
n'ésitez pas à me demander. Merci

-----Message d'origine-----
Il faut juste rajouter l'instruction
rsClient.Index = "PrimaryKey"
| avant
| rsClient.Seek ...
|
| milles excuses
|
| > 2°) Pour eviter le risque de saisie de doublons, je
te conseille

d'effacer
| > la plage après envoi des données dans Access :
Juste avant End Sub,

il faut
| > rajouter l'instruction Range("A2:K2").ClearContents
| > Alors ça c'est pour le classeur sur lequel j'ai
fait des tests. Par

contre
| > s'il ne faut pas effacer mais vérifier s'il existe
dans la table,

alors je
| > te propose d'y rajouter le code suivant juste après
les 2

instructions de
| > création d'objet Automation et avant rsClient.
AddNew :

| > 'Vérification de l'enregistrement est bien
inexistant dans la

table
|--> ici
rsClient.Seek "=", strID
If Not rsClient.NoMatch Then
Beep
MsgBox "Ce client a déjà été saisi dans la
table", _


vbExclamation, "Attention doublon dans la
saisie"


Exit Sub
End If
'Sinon on ajoute les données



.




Avatar
Christophe JEAN
Bonjour,
Est-ce que ta table contient une clé primaire ? L'instruction rsClient.Index
= "PrimaryKey" lance la recherche sur un champ d'après son index du
Recordset (table) rsClient. La méthode Seek est emm... si on fait des
recherches sur des valeurs en double. Son intérêt est d'être utile sur les
champs indexés sans doublons comme les clés primaires (primary key).

Vérifie et tiens nous au courrant !

A+

a écrit dans le message de news:
1d9601c4a0fc$eff83380$
j'ai bien suivit vos conseils mais ya un problème au niveau
la procédure qui est doit faire la comparaison entre excel
et accès ya un beug au niveau de l'instruction >rsClient.
Index = "PrimaryKey" qui affiche un message d'erreur qui me
dis objet non autorisé. De plus je voulais préciser que le
context de message box est sympa mais pas nécessaire pour
moi, je veux tout simplement que la procédure modifier un
client si un renseignement de donnée est changé ou tout
simplement qu'il ajoute les clients qui ont été saisie dans
la plage de donée. Si vous avez besoin de renseignement
n'ésitez pas à me demander. Merci

-----Message d'origine-----
Il faut juste rajouter l'instruction
rsClient.Index = "PrimaryKey"
| avant
| rsClient.Seek ...
|
| milles excuses
|
| > 2°) Pour eviter le risque de saisie de doublons, je
te conseille

d'effacer
| > la plage après envoi des données dans Access :
Juste avant End Sub,

il faut
| > rajouter l'instruction Range("A2:K2").ClearContents
| > Alors ça c'est pour le classeur sur lequel j'ai
fait des tests. Par

contre
| > s'il ne faut pas effacer mais vérifier s'il existe
dans la table,

alors je
| > te propose d'y rajouter le code suivant juste après
les 2

instructions de
| > création d'objet Automation et avant rsClient.
AddNew :

| > 'Vérification de l'enregistrement est bien
inexistant dans la

table
|--> ici
rsClient.Seek "=", strID
If Not rsClient.NoMatch Then
Beep
MsgBox "Ce client a déjà été saisi dans la
table", _


vbExclamation, "Attention doublon dans la
saisie"


Exit Sub
End If
'Sinon on ajoute les données



.




Avatar
bonsoir, ben à ce niveau la ya pas de problème j ai bien
cré une clef primaire et ce qu il faut donc je vois pas
pourquoi ya un problème. Et je voulais savoir aussi je me
met la clé primaire en numéro auto est ce que le numéro s
ajoute automatique si je ne met rien sur excel pour ce
champ la ?





-----Message d'origine-----
Bonjour,
Est-ce que ta table contient une clé primaire ?
L'instruction rsClient.Index

= "PrimaryKey" lance la recherche sur un champ d'après son
index du

Recordset (table) rsClient. La méthode Seek est emm... si
on fait des

recherches sur des valeurs en double. Son intérêt est
d'être utile sur les

champs indexés sans doublons comme les clés primaires
(primary key).


Vérifie et tiens nous au courrant !

A+

a écrit dans le
message de news:

1d9601c4a0fc$eff83380$
j'ai bien suivit vos conseils mais ya un problème au
niveau

la procédure qui est doit faire la comparaison entre excel
et accès ya un beug au niveau de l'instruction >rsClient.
Index = "PrimaryKey" qui affiche un message d'erreur qui
me

dis objet non autorisé. De plus je voulais préciser que le
context de message box est sympa mais pas nécessaire pour
moi, je veux tout simplement que la procédure modifier un
client si un renseignement de donnée est changé ou tout
simplement qu'il ajoute les clients qui ont été saisie
dans

la plage de donée. Si vous avez besoin de renseignement
n'ésitez pas à me demander. Merci

-----Message d'origine-----
Il faut juste rajouter l'instruction
rsClient.Index = "PrimaryKey"
| avant
| rsClient.Seek ...
|
| milles excuses
|
| > 2°) Pour eviter le risque de saisie de doublons,
je


te conseille
d'effacer
| > la plage après envoi des données dans Access :
Juste avant End Sub,

il faut
| > rajouter l'instruction Range("A2:K2").
ClearContents


| > Alors ça c'est pour le classeur sur lequel j'ai
fait des tests. Par

contre
| > s'il ne faut pas effacer mais vérifier s'il existe
dans la table,

alors je
| > te propose d'y rajouter le code suivant juste
après


les 2
instructions de
| > création d'objet Automation et avant rsClient.
AddNew :

| > 'Vérification de l'enregistrement est bien
inexistant dans la

table
|--> ici
rsClient.Seek "=", strID
If Not rsClient.NoMatch Then
Beep
MsgBox "Ce client a déjà été saisi dans la
table", _


vbExclamation, "Attention doublon dans
la



saisie"
Exit Sub
End If
'Sinon on ajoute les données



.




.





Avatar
Christophe JEAN
Bonsoir,

Ah ben oui c'est ton NoAuto qui fait un conflit : il est généré
automatiquement.
Alors :
¤ Soit tu transformes ce champs, cela peut être risqué notamment si tu as
des relations ;
¤ Soit dans ton VBA ne mets pas d'instruction qui écrit dans la clé
primaire.

A+

a écrit dans le message de news:
192401c4a185$c14603d0$
bonsoir, ben à ce niveau la ya pas de problème j ai bien
cré une clef primaire et ce qu il faut donc je vois pas
pourquoi ya un problème. Et je voulais savoir aussi je me
met la clé primaire en numéro auto est ce que le numéro s
ajoute automatique si je ne met rien sur excel pour ce
champ la ?





-----Message d'origine-----
Bonjour,
Est-ce que ta table contient une clé primaire ?
L'instruction rsClient.Index

= "PrimaryKey" lance la recherche sur un champ d'après son
index du

Recordset (table) rsClient. La méthode Seek est emm... si
on fait des

recherches sur des valeurs en double. Son intérêt est
d'être utile sur les

champs indexés sans doublons comme les clés primaires
(primary key).


Vérifie et tiens nous au courrant !

A+

a écrit dans le
message de news:

1d9601c4a0fc$eff83380$
j'ai bien suivit vos conseils mais ya un problème au
niveau

la procédure qui est doit faire la comparaison entre excel
et accès ya un beug au niveau de l'instruction >rsClient.
Index = "PrimaryKey" qui affiche un message d'erreur qui
me

dis objet non autorisé. De plus je voulais préciser que le
context de message box est sympa mais pas nécessaire pour
moi, je veux tout simplement que la procédure modifier un
client si un renseignement de donnée est changé ou tout
simplement qu'il ajoute les clients qui ont été saisie
dans

la plage de donée. Si vous avez besoin de renseignement
n'ésitez pas à me demander. Merci

-----Message d'origine-----
Il faut juste rajouter l'instruction
rsClient.Index = "PrimaryKey"
| avant
| rsClient.Seek ...
|
| milles excuses
|
| > 2°) Pour eviter le risque de saisie de doublons,
je


te conseille
d'effacer
| > la plage après envoi des données dans Access :
Juste avant End Sub,

il faut
| > rajouter l'instruction Range("A2:K2").
ClearContents


| > Alors ça c'est pour le classeur sur lequel j'ai
fait des tests. Par

contre
| > s'il ne faut pas effacer mais vérifier s'il existe
dans la table,

alors je
| > te propose d'y rajouter le code suivant juste
après


les 2
instructions de
| > création d'objet Automation et avant rsClient.
AddNew :

| > 'Vérification de l'enregistrement est bien
inexistant dans la

table
|--> ici
rsClient.Seek "=", strID
If Not rsClient.NoMatch Then
Beep
MsgBox "Ce client a déjà été saisi dans la
table", _


vbExclamation, "Attention doublon dans
la



saisie"
Exit Sub
End If
'Sinon on ajoute les données



.




.