J ai envoye une requete hier soir, mais apparemment elle s est perdue, elle n apparait pas sur internet....
Mon probleme etait sur l utilisation de la methode seek : je mets a jour une table1 avec les enregistrements d'une table 2 (tableimport) => si l enregistrement n existait pas dans 1, je l ajoute, si il existait je mets certains champs a jour. Ca marche parfaitement, sauf (sinon je n enverrai pas un appel au secours) si ma table1 est vide ou qu il n y trouve pas le premier enregistrement qu il cherchait.
J'y comprends rien, qqn pourrait-il me dire ce que je fais comme erreur de raisonnement dans mon VB ?
Set tableimport = DB.OpenRecordset("tableimport")
table1.Index = "CC_AccountCat"
With tableimport
If Not .EOF Then
..MoveFirst
Do While Not .EOF
table1.Seek "=", ![CC_Code], ![Account_cat]
If Not tableimport.NoMatch Then
'mets à jour les enregistrements (existe déjà dans la base)
table1.Edit <= il plante ici
...
else
table1.addnew
....
En attendant j ai resolu mon probleme par 2 requetes ajout et MAJ, mais j aimerai qd meme bien savoir ce qui ne va pas dans mon VB...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Anor
Bonjour, Puisque tu as des requêtes qui fonctionnent, regarde leur code sql et à la place de la méthode seek, tu peux faire d'une autre manière et qui ressemblerait à ça :
dim strSQL as string if dcount("*","latable","lecritère") > 0 then strSQL = "UPDATE latable SET lechamp = 'blabla' WHERE champcleprimaire = 'lecritère';" else strSQL = "INSERT INTO LaTable ( Lechamp) SELECT 'lavaleur';" end if currentdb.execute strSQL
-- à+ Arnaud -------------------------------------------------- Conseils d'utilisation : http://users.skynet.be/mpfa/ Access Memorandum : http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ --------------------------------------------------
Sandrine wrote: | Hello, | | J ai envoye une requete hier soir, mais apparemment elle s est | perdue, elle n apparait pas sur internet.... | | Mon probleme etait sur l utilisation de la methode seek : je mets a | jour une table1 avec les enregistrements d'une table 2 (tableimport) | => si l enregistrement n existait pas dans 1, je l ajoute, si il | existait je mets certains champs a jour. Ca marche parfaitement, sauf | (sinon je n enverrai pas un appel au secours) si ma table1 est vide | ou qu il n y trouve pas le premier enregistrement qu il cherchait. | J'y comprends rien, qqn pourrait-il me dire ce que je fais comme | erreur de raisonnement dans mon VB ? | | Set tableimport = DB.OpenRecordset("tableimport") | table1.Index = "CC_AccountCat" | | With tableimport | If Not .EOF Then | .MoveFirst | Do While Not .EOF | table1.Seek "=", ![CC_Code], ![Account_cat] | If Not tableimport.NoMatch Then | 'mets à jour les enregistrements (existe déjà dans la base) | table1.Edit <= il plante ici | ... | else | table1.addnew | .... | | En attendant j ai resolu mon probleme par 2 requetes ajout et MAJ, | mais j aimerai qd meme bien savoir ce qui ne va pas dans mon VB... | | Merci beaucoup, et bonne journee a tous | | Sandrine
Bonjour,
Puisque tu as des requêtes qui fonctionnent,
regarde leur code sql et à la place de la méthode seek,
tu peux faire d'une autre manière et qui ressemblerait à ça :
dim strSQL as string
if dcount("*","latable","lecritère") > 0 then
strSQL = "UPDATE latable SET lechamp = 'blabla' WHERE champcleprimaire = 'lecritère';"
else
strSQL = "INSERT INTO LaTable ( Lechamp) SELECT 'lavaleur';"
end if
currentdb.execute strSQL
--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Sandrine wrote:
| Hello,
|
| J ai envoye une requete hier soir, mais apparemment elle s est
| perdue, elle n apparait pas sur internet....
|
| Mon probleme etait sur l utilisation de la methode seek : je mets a
| jour une table1 avec les enregistrements d'une table 2 (tableimport)
| => si l enregistrement n existait pas dans 1, je l ajoute, si il
| existait je mets certains champs a jour. Ca marche parfaitement, sauf
| (sinon je n enverrai pas un appel au secours) si ma table1 est vide
| ou qu il n y trouve pas le premier enregistrement qu il cherchait.
| J'y comprends rien, qqn pourrait-il me dire ce que je fais comme
| erreur de raisonnement dans mon VB ?
|
| Set tableimport = DB.OpenRecordset("tableimport")
| table1.Index = "CC_AccountCat"
|
| With tableimport
| If Not .EOF Then
| .MoveFirst
| Do While Not .EOF
| table1.Seek "=", ![CC_Code], ![Account_cat]
| If Not tableimport.NoMatch Then
| 'mets à jour les enregistrements (existe déjà dans la base)
| table1.Edit <= il plante ici
| ...
| else
| table1.addnew
| ....
|
| En attendant j ai resolu mon probleme par 2 requetes ajout et MAJ,
| mais j aimerai qd meme bien savoir ce qui ne va pas dans mon VB...
|
| Merci beaucoup, et bonne journee a tous
|
| Sandrine
Bonjour, Puisque tu as des requêtes qui fonctionnent, regarde leur code sql et à la place de la méthode seek, tu peux faire d'une autre manière et qui ressemblerait à ça :
dim strSQL as string if dcount("*","latable","lecritère") > 0 then strSQL = "UPDATE latable SET lechamp = 'blabla' WHERE champcleprimaire = 'lecritère';" else strSQL = "INSERT INTO LaTable ( Lechamp) SELECT 'lavaleur';" end if currentdb.execute strSQL
-- à+ Arnaud -------------------------------------------------- Conseils d'utilisation : http://users.skynet.be/mpfa/ Access Memorandum : http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ --------------------------------------------------
Sandrine wrote: | Hello, | | J ai envoye une requete hier soir, mais apparemment elle s est | perdue, elle n apparait pas sur internet.... | | Mon probleme etait sur l utilisation de la methode seek : je mets a | jour une table1 avec les enregistrements d'une table 2 (tableimport) | => si l enregistrement n existait pas dans 1, je l ajoute, si il | existait je mets certains champs a jour. Ca marche parfaitement, sauf | (sinon je n enverrai pas un appel au secours) si ma table1 est vide | ou qu il n y trouve pas le premier enregistrement qu il cherchait. | J'y comprends rien, qqn pourrait-il me dire ce que je fais comme | erreur de raisonnement dans mon VB ? | | Set tableimport = DB.OpenRecordset("tableimport") | table1.Index = "CC_AccountCat" | | With tableimport | If Not .EOF Then | .MoveFirst | Do While Not .EOF | table1.Seek "=", ![CC_Code], ![Account_cat] | If Not tableimport.NoMatch Then | 'mets à jour les enregistrements (existe déjà dans la base) | table1.Edit <= il plante ici | ... | else | table1.addnew | .... | | En attendant j ai resolu mon probleme par 2 requetes ajout et MAJ, | mais j aimerai qd meme bien savoir ce qui ne va pas dans mon VB... | | Merci beaucoup, et bonne journee a tous | | Sandrine
Sandrine
Ok, merci pour ta reponse si rapide
Mais juste pour ma culture, et la prochaine fois : pourquoi ca ne marche pas la fonction Seek
A
Sandrine
Ok, merci pour ta reponse si rapide
Mais juste pour ma culture, et la prochaine fois : pourquoi ca ne marche pas la fonction Seek
Mon probleme etait sur l utilisation de la methode seek : je mets a jour une table1 avec les enregistrements d'une table 2 (tableimport) => si l enregistrement n existait pas dans 1, je l ajoute, si il existait je mets certains champs a jour. Ca marche parfaitement, sauf (sinon je n enverrai pas un appel au secours) si ma table1 est vide ou qu il n y trouve pas le premier enregistrement qu il cherchait. J'y comprends rien, qqn pourrait-il me dire ce que je fais comme erreur de raisonnement dans mon VB ?
Set tableimport = DB.OpenRecordset("tableimport") table1.Index = "CC_AccountCat"
En attendant j ai resolu mon probleme par 2 requetes ajout et MAJ, mais j aimerai qd meme bien savoir ce qui ne va pas dans mon VB...
Es-tu sur que ton test de la propriété NoMatch porte sur la bonne table ? Ne faudrait-il pas remplacer "If Not tableimport.NoMatch Then" par If Not Table1.NoMatch Then ... car tu fais un Seek sur la table1
Pour ce qui est de la table1 vide, tu devrais tester sa propriété BOF et EOF
Mon probleme etait sur l utilisation de la methode seek : je mets a
jour une table1 avec les enregistrements d'une table 2 (tableimport)
=> si l enregistrement n existait pas dans 1, je l ajoute, si il
existait je mets certains champs a jour. Ca marche parfaitement, sauf
(sinon je n enverrai pas un appel au secours) si ma table1 est vide ou
qu il n y trouve pas le premier enregistrement qu il cherchait. J'y
comprends rien, qqn pourrait-il me dire ce que je fais comme erreur de
raisonnement dans mon VB ?
Set tableimport = DB.OpenRecordset("tableimport")
table1.Index = "CC_AccountCat"
En attendant j ai resolu mon probleme par 2 requetes ajout et MAJ,
mais j aimerai qd meme bien savoir ce qui ne va pas dans mon VB...
Es-tu sur que ton test de la propriété NoMatch porte sur la bonne table ?
Ne faudrait-il pas remplacer "If Not tableimport.NoMatch Then" par
If Not Table1.NoMatch Then ... car tu fais un Seek sur la table1
Pour ce qui est de la table1 vide, tu devrais tester sa propriété BOF et
EOF
Mon probleme etait sur l utilisation de la methode seek : je mets a jour une table1 avec les enregistrements d'une table 2 (tableimport) => si l enregistrement n existait pas dans 1, je l ajoute, si il existait je mets certains champs a jour. Ca marche parfaitement, sauf (sinon je n enverrai pas un appel au secours) si ma table1 est vide ou qu il n y trouve pas le premier enregistrement qu il cherchait. J'y comprends rien, qqn pourrait-il me dire ce que je fais comme erreur de raisonnement dans mon VB ?
Set tableimport = DB.OpenRecordset("tableimport") table1.Index = "CC_AccountCat"
En attendant j ai resolu mon probleme par 2 requetes ajout et MAJ, mais j aimerai qd meme bien savoir ce qui ne va pas dans mon VB...
Es-tu sur que ton test de la propriété NoMatch porte sur la bonne table ? Ne faudrait-il pas remplacer "If Not tableimport.NoMatch Then" par If Not Table1.NoMatch Then ... car tu fais un Seek sur la table1
Pour ce qui est de la table1 vide, tu devrais tester sa propriété BOF et EOF
A+ Eric
codial
Je prends en cours de route mais je crois de mémoire que la méthode Seek ne fonctionne pas sur les tables attachées, il faut utiliser FindFirst par exemple Me.RecordsetClone.FindFirst "[CodeMat] = '" & Me![Modifiable27] & "'"
cordialement
Codial
"Sandrine" a écrit dans le message de news:
Hello,
J ai envoye une requete hier soir, mais apparemment elle s est perdue, elle n apparait pas sur internet....
Mon probleme etait sur l utilisation de la methode seek : je mets a jour une table1 avec les enregistrements d'une table 2 (tableimport) => si l
enregistrement n existait pas dans 1, je l ajoute, si il existait je mets certains champs a jour. Ca marche parfaitement, sauf (sinon je n enverrai pas un appel au secours) si ma table1 est vide ou qu il n y trouve pas le premier enregistrement qu il cherchait.
J'y comprends rien, qqn pourrait-il me dire ce que je fais comme erreur de raisonnement dans mon VB ?
Set tableimport = DB.OpenRecordset("tableimport") table1.Index = "CC_AccountCat"
With tableimport If Not .EOF Then .MoveFirst Do While Not .EOF table1.Seek "=", ![CC_Code], ![Account_cat] If Not tableimport.NoMatch Then 'mets à jour les enregistrements (existe déjà dans la base) table1.Edit <= il plante ici ... else table1.addnew ....
En attendant j ai resolu mon probleme par 2 requetes ajout et MAJ, mais j aimerai qd meme bien savoir ce qui ne va pas dans mon VB...
Merci beaucoup, et bonne journee a tous
Sandrine
Je prends en cours de route mais je crois de mémoire que la méthode Seek ne
fonctionne pas sur les tables attachées, il faut utiliser FindFirst
par exemple
Me.RecordsetClone.FindFirst "[CodeMat] = '" & Me![Modifiable27] & "'"
cordialement
Codial
"Sandrine" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:50705741-F47A-439D-960B-65C4985DC8D6@microsoft.com...
Hello,
J ai envoye une requete hier soir, mais apparemment elle s est perdue,
elle n apparait pas sur internet....
Mon probleme etait sur l utilisation de la methode seek : je mets a jour
une table1 avec les enregistrements d'une table 2 (tableimport) => si l
enregistrement n existait pas dans 1, je l ajoute, si il existait je mets
certains champs a jour. Ca marche parfaitement, sauf (sinon je n enverrai
pas un appel au secours) si ma table1 est vide ou qu il n y trouve pas le
premier enregistrement qu il cherchait.
J'y comprends rien, qqn pourrait-il me dire ce que je fais comme erreur de
raisonnement dans mon VB ?
Set tableimport = DB.OpenRecordset("tableimport")
table1.Index = "CC_AccountCat"
With tableimport
If Not .EOF Then
.MoveFirst
Do While Not .EOF
table1.Seek "=", ![CC_Code], ![Account_cat]
If Not tableimport.NoMatch Then
'mets à jour les enregistrements (existe déjà dans la base)
table1.Edit <= il plante ici
...
else
table1.addnew
....
En attendant j ai resolu mon probleme par 2 requetes ajout et MAJ, mais j
aimerai qd meme bien savoir ce qui ne va pas dans mon VB...
Je prends en cours de route mais je crois de mémoire que la méthode Seek ne fonctionne pas sur les tables attachées, il faut utiliser FindFirst par exemple Me.RecordsetClone.FindFirst "[CodeMat] = '" & Me![Modifiable27] & "'"
cordialement
Codial
"Sandrine" a écrit dans le message de news:
Hello,
J ai envoye une requete hier soir, mais apparemment elle s est perdue, elle n apparait pas sur internet....
Mon probleme etait sur l utilisation de la methode seek : je mets a jour une table1 avec les enregistrements d'une table 2 (tableimport) => si l
enregistrement n existait pas dans 1, je l ajoute, si il existait je mets certains champs a jour. Ca marche parfaitement, sauf (sinon je n enverrai pas un appel au secours) si ma table1 est vide ou qu il n y trouve pas le premier enregistrement qu il cherchait.
J'y comprends rien, qqn pourrait-il me dire ce que je fais comme erreur de raisonnement dans mon VB ?
Set tableimport = DB.OpenRecordset("tableimport") table1.Index = "CC_AccountCat"
With tableimport If Not .EOF Then .MoveFirst Do While Not .EOF table1.Seek "=", ![CC_Code], ![Account_cat] If Not tableimport.NoMatch Then 'mets à jour les enregistrements (existe déjà dans la base) table1.Edit <= il plante ici ... else table1.addnew ....
En attendant j ai resolu mon probleme par 2 requetes ajout et MAJ, mais j aimerai qd meme bien savoir ce qui ne va pas dans mon VB...
Merci beaucoup, et bonne journee a tous
Sandrine
Sandrine
OK, MERCI..
Je suis vraiment nulle, j avais pas vu que je n attaquais pas la bonne table. Et au bout d un moment on ne voit plus rien... Vive le forum, et ses ames charitables ..
Du coup, plus de probleme non plus qd la table est vide
Mon probleme etait sur l utilisation de la methode seek : je mets jour une table1 avec les enregistrements d'une table 2 (tableimport
=> si l enregistrement n existait pas dans 1, je l ajoute, si i existait je mets certains champs a jour. Ca marche parfaitement, sau (sinon je n enverrai pas un appel au secours) si ma table1 est vide o qu il n y trouve pas le premier enregistrement qu il cherchait. J' comprends rien, qqn pourrait-il me dire ce que je fais comme erreur d raisonnement dans mon VB ?
Set tableimport = DB.OpenRecordset("tableimport" table1.Index = "CC_AccountCat
En attendant j ai resolu mon probleme par 2 requetes ajout et MAJ mais j aimerai qd meme bien savoir ce qui ne va pas dans mon VB...
Es-tu sur que ton test de la propriété NoMatch porte sur la bonne table Ne faudrait-il pas remplacer "If Not tableimport.NoMatch Then" par If Not Table1.NoMatch Then ... car tu fais un Seek sur la table
Pour ce qui est de la table1 vide, tu devrais tester sa propriété BOF et EO
A Eri
OK, MERCI..
Je suis vraiment nulle, j avais pas vu que je n attaquais pas la bonne table. Et au bout d un moment on ne voit plus rien... Vive le forum, et ses ames charitables ..
Du coup, plus de probleme non plus qd la table est vide
Mon probleme etait sur l utilisation de la methode seek : je mets
jour une table1 avec les enregistrements d'une table 2 (tableimport
=> si l enregistrement n existait pas dans 1, je l ajoute, si i
existait je mets certains champs a jour. Ca marche parfaitement, sau
(sinon je n enverrai pas un appel au secours) si ma table1 est vide o
qu il n y trouve pas le premier enregistrement qu il cherchait. J'
comprends rien, qqn pourrait-il me dire ce que je fais comme erreur d
raisonnement dans mon VB ?
Set tableimport = DB.OpenRecordset("tableimport"
table1.Index = "CC_AccountCat
En attendant j ai resolu mon probleme par 2 requetes ajout et MAJ
mais j aimerai qd meme bien savoir ce qui ne va pas dans mon VB...
Es-tu sur que ton test de la propriété NoMatch porte sur la bonne table
Ne faudrait-il pas remplacer "If Not tableimport.NoMatch Then" par
If Not Table1.NoMatch Then ... car tu fais un Seek sur la table
Pour ce qui est de la table1 vide, tu devrais tester sa propriété BOF et
EO
Je suis vraiment nulle, j avais pas vu que je n attaquais pas la bonne table. Et au bout d un moment on ne voit plus rien... Vive le forum, et ses ames charitables ..
Du coup, plus de probleme non plus qd la table est vide
Mon probleme etait sur l utilisation de la methode seek : je mets jour une table1 avec les enregistrements d'une table 2 (tableimport
=> si l enregistrement n existait pas dans 1, je l ajoute, si i existait je mets certains champs a jour. Ca marche parfaitement, sau (sinon je n enverrai pas un appel au secours) si ma table1 est vide o qu il n y trouve pas le premier enregistrement qu il cherchait. J' comprends rien, qqn pourrait-il me dire ce que je fais comme erreur d raisonnement dans mon VB ?
Set tableimport = DB.OpenRecordset("tableimport" table1.Index = "CC_AccountCat
En attendant j ai resolu mon probleme par 2 requetes ajout et MAJ mais j aimerai qd meme bien savoir ce qui ne va pas dans mon VB...
Es-tu sur que ton test de la propriété NoMatch porte sur la bonne table Ne faudrait-il pas remplacer "If Not tableimport.NoMatch Then" par If Not Table1.NoMatch Then ... car tu fais un Seek sur la table
Pour ce qui est de la table1 vide, tu devrais tester sa propriété BOF et EO