Form : tester la présence d'un enregistr. dans une table [ACCESS] - Programmation
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]
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 !
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 ?
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 !
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 ?
Marsh Posté le 03-09-2001 à 16:51:07
YESSSSSSSSSSSSSSSSSSSSE
Vous l'avez tous compris, ça marche !
Euh, merci tout le monde
Fallait s'accrocher quand meme
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.
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
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+
Marsh Posté le 04-09-2001 à 09:21:40
Merci pour tout ! c'est OK.
Je n'ai plus qu'à appliquer le principe du recordset là où je manipulerai les données. Rullezzzzzzzzzzz
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 !