[ACCESS] Form : tester la présence d'un enregistr. dans une table

Form : tester la présence d'un enregistr. dans une table [ACCESS] - Programmation

Marsh Posté le 31-08-2001 à 15:31:11    

Hello, c'est encore moi, et avec une autre question.  
   Mon formulaire A a la table T1 comme source. Pour chaque enregistrement, je voudrais tester leur présence dans une autre table et mettre une case à cocher à TRUE si la présence est vérifiée.
   Ca doit pas être très compliqué mais je vois pas comment faire là. Instruction SQL ? Où placer le code ? ...
 
   Merci de répondre à ces interrogations ! :hello:

Reply

Marsh Posté le 31-08-2001 à 15:31:11   

Reply

Marsh Posté le 31-08-2001 à 20:03:48    

Ta demande n'est pas claire.
Pour accéder aux enregistrements de T1, utilise un objet recordset comme suit:
Set rs = Me.RecordsetClone
 
Après tu peux faire une boucle sur ces enregs et comparer avec un autre recordset initialisé d'après ton autre table.
L'autre table doit être ouverte avec son index:
Set rs2 = db.openrecordset("MaTable", dbOpenTable)
rs2.index = "PrimaryKey" ' on choisit l'index à utiliser
 
rs2.seek "=", rs!chpAChercher
if rs2.nomatch then ' pas trouvé
...
 
Quelque chose comme ça
J'espère avoir répondu à ta question, sinon précise là.
 
A+

 

[edtdd]--Message édité par Sylderon--[/edtdd]

Reply

Marsh Posté le 03-09-2001 à 15:56:23    

Si j'ai bien compris le reste, les lignes suivantes sont dans la procedure form_Load  

  Set rs = Me.RecordsetClone  
  Set rs2 = db.openrecordset("MaTable", dbOpenTable)  
  rs2.index = "PrimaryKey" ' on choisit l'index à utiliser

et les suivantes sur un bouton de recherche par exemple
   rs2.seek "=", rs!chpAChercher  
   if rs2.nomatch then ' pas trouvé

 
Si qqc n'est pas bon merci de me le dire. Mais c'est encore flou pour moi !

Reply

Marsh Posté le 03-09-2001 à 16:09:22    

Ca coince pour la ligne rs.seek
L'exemple de la fonction Seek dans Access est complexe. En fait le champ a chercher n'est pas reconnu comme objet. A moins qu'il y ait une tonne de lignes à rajouter dans ton code ?

Reply

Marsh Posté le 03-09-2001 à 16:14:06    

ACCESS utilise une variable de type TableDef avant d'appeler la fonction Seek. Faut il que je passe par là ?
HELP, je commence à être vraiment perdu là !! quelle galère, il y en a qui font ça en trois cliks !

Reply

Marsh Posté le 03-09-2001 à 16:27:41    

Du nouveau : j'ai rassemblé le code et l'erreur est que l'objet recordset ne gère pas l'opération "Seek". Le recordset est il donc mal déclaré ou est ce que ça vient de la table ?

Reply

Marsh Posté le 03-09-2001 à 16:51:07    

YESSSSSSSSSSSSSSSSSSSSE
Vous l'avez tous compris, ça marche !   :p
Euh, merci tout le monde :hello:
Fallait s'accrocher quand meme :sol:

Reply

Marsh Posté le 03-09-2001 à 17:07:12    

dernière question toute simple : comment détecter le passage à l'enregistrement (toujours dans le formulaire). Parce que la fonction Seek sera éxécutée pour chaque enregistrement.  Je pensais que c'était Form_After_Update mais c pas ça apparament. Alors ?Je précise que je n'ai pas rajouté de bouton Next, previous, ... mais j'utilise les boutons d'origine.

Reply

Marsh Posté le 03-09-2001 à 17:26:25    

j'ai oublié un mot : je voulais dire "passage à l'enregistrement suivant". Ou plutot : tout changement d'enregistrement . Du style : Current_Enregistrement_Change

Reply

Marsh Posté le 04-09-2001 à 09:02:16    

Désolé si je ne t'ai pas donné un exemple valide du premier coup, je travaillais de mémoire.
Pour l'événement de formulaire déclenché par un changement d'enregistrement, ça doit être "Sur Activation" ("Current" ).
Attention, ne pas confondre avec "Sur Activé" !
 
A+

Reply

Marsh Posté le 04-09-2001 à 09:02:16   

Reply

Marsh Posté le 04-09-2001 à 09:21:40    

Merci pour tout ! c'est OK. :hello:
Je n'ai plus qu'à appliquer le principe du recordset là où je manipulerai les données. Rullezzzzzzzzzzz   :sol:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed