OVH Cloud OVH Cloud

VBA enregistrements connexes

3 réponses
Avatar
eric
bonjour (sous access 2002)
j ai une table "personnes" qui regroupe des personnes
j ai une table "notes" qui int=E9gre des notes=20
de "personnes"=20
Il y a une relation d'int=E9grit=E9 qui empeche de suprimer=20
des personnes si il existe des r=E9sultats pour cette=20
personne

j ai une table "preNote" qui regroupe des notes en=20
attente de validation (sans aucune liaison avec aucune=20
autre table - avec n=B0 de personne, note)

J'ai une requete "visuprenote" qui affiche le num=E9ro de=20
personne + nom (liaison avec^personne) + la note

Si je supprime une ligne de "visuprenote" depuis la=20
requete, pas de probleme
Par contre si je supprime la meme ligne via VB, j ai le=20
message (impossible de supprimer car il existe des notes=20
dans "notes") -=20
En supprimant l'enregistrement de "visuprenote" via VB,=20
access essaie aussi de supprimer la personne de la=20
table "personne"
Pourquoi??? (alors que en ouvrant la=20
requette 'visuprenote" dans acces, je supprime=20
l'enregistrement sans probleme (et sans supprimer la=20
personne)
mon code est le suivant

Dim rst As Recordset
Dim cnn As New Connection
cnn.Open CurrentProject.Connection

Set rst =3D New ADODB.Recordset
rst6.Open "visuprenote", cnn, 1, 2, 2
If rst.EOF Then
MsgBox ("Aucune note =E0 supprimer")
Else
Do While Not rst.EOF
rst.Delete 'cette ligne genere l'erreur
rst.MoveNext
Loop
End If
rst.Close
Set rst =3D Nothing


Merci de votre aide

3 réponses

Avatar
Ilan
Bonjour,
le probleme vient du fait que tu manipules la requete et non la table.
Ta requete n'est qu' un affichage d'une selection d' enregistrements
Pour vider la requete il faut soit changer le SQL de selection ou vider
les tables qui contiennent les enregistrements a selectionner.

Pour info : une requete ne contient pas d'enregistrements.

Ici tu dois; d'apres ce que je comprends vider la table Prenote.



bonjour (sous access 2002)
j ai une table "personnes" qui regroupe des personnes
j ai une table "notes" qui intégre des notes
de "personnes"
Il y a une relation d'intégrité qui empeche de suprimer
des personnes si il existe des résultats pour cette
personne

j ai une table "preNote" qui regroupe des notes en
attente de validation (sans aucune liaison avec aucune
autre table - avec n° de personne, note)

J'ai une requete "visuprenote" qui affiche le numéro de
personne + nom (liaison avec^personne) + la note

Si je supprime une ligne de "visuprenote" depuis la
requete, pas de probleme
Par contre si je supprime la meme ligne via VB, j ai le
message (impossible de supprimer car il existe des notes
dans "notes") -
En supprimant l'enregistrement de "visuprenote" via VB,
access essaie aussi de supprimer la personne de la
table "personne"
Pourquoi??? (alors que en ouvrant la
requette 'visuprenote" dans acces, je supprime
l'enregistrement sans probleme (et sans supprimer la
personne)
mon code est le suivant

Dim rst As Recordset
Dim cnn As New Connection
cnn.Open CurrentProject.Connection

Set rst = New ADODB.Recordset
rst6.Open "visuprenote", cnn, 1, 2, 2
If rst.EOF Then
MsgBox ("Aucune note à supprimer")
Else
Do While Not rst.EOF
rst.Delete 'cette ligne genere l'erreur
rst.MoveNext
Loop
End If
rst.Close
Set rst = Nothing


Merci de votre aide




Avatar
eric
certe, si je manitule la table ca marche
mais le problème doit venir d'aileurs
car la meme requete sans la liaison vers personne marche
bien (j arrive à supprimer via VBA les enregistrements de
la table en manipulant la requete)

et la meme requete telle que, j'arrive à supprimer
l'enregistrement de la table, en supprimant
l'enregistrement de la requete (via la fenetre requete
d'access)






-----Message d'origine-----
Bonjour,
le probleme vient du fait que tu manipules la requete et
non la table.

Ta requete n'est qu' un affichage d'une selection d'
enregistrements

Pour vider la requete il faut soit changer le SQL de
selection ou vider

les tables qui contiennent les enregistrements a
selectionner.


Pour info : une requete ne contient pas
d'enregistrements.


Ici tu dois; d'apres ce que je comprends vider la table
Prenote.




bonjour (sous access 2002)
j ai une table "personnes" qui regroupe des personnes
j ai une table "notes" qui intégre des notes
de "personnes"
Il y a une relation d'intégrité qui empeche de
suprimer


des personnes si il existe des résultats pour cette
personne

j ai une table "preNote" qui regroupe des notes en
attente de validation (sans aucune liaison avec aucune
autre table - avec n° de personne, note)

J'ai une requete "visuprenote" qui affiche le numéro
de


personne + nom (liaison avec^personne) + la note

Si je supprime une ligne de "visuprenote" depuis la
requete, pas de probleme
Par contre si je supprime la meme ligne via VB, j ai
le


message (impossible de supprimer car il existe des
notes


dans "notes") -
En supprimant l'enregistrement de "visuprenote" via
VB,


access essaie aussi de supprimer la personne de la
table "personne"
Pourquoi??? (alors que en ouvrant la
requette 'visuprenote" dans acces, je supprime
l'enregistrement sans probleme (et sans supprimer la
personne)
mon code est le suivant

Dim rst As Recordset
Dim cnn As New Connection
cnn.Open CurrentProject.Connection

Set rst = New ADODB.Recordset
rst6.Open "visuprenote", cnn, 1, 2, 2
If rst.EOF Then
MsgBox ("Aucune note à supprimer")
Else
Do While Not rst.EOF
rst.Delete 'cette ligne genere l'erreur
rst.MoveNext
Loop
End If
rst.Close
Set rst = Nothing


Merci de votre aide


.





Avatar
JJF
Hello,
Pourquoi as-tu la relation avec personne, c'est pour afficher le nom ? Alors
dans la requête tu supprimes la liaison avec personne et tu remplaces la
lecture du nom par dlookup(.....) ou une fonction qui te retourne le nom.
Ciao

JJF
"eric" a écrit dans le message de
news: 740e01c4cf28$d4e93030$
certe, si je manitule la table ca marche
mais le problème doit venir d'aileurs
car la meme requete sans la liaison vers personne marche
bien (j arrive à supprimer via VBA les enregistrements de
la table en manipulant la requete)

et la meme requete telle que, j'arrive à supprimer
l'enregistrement de la table, en supprimant
l'enregistrement de la requete (via la fenetre requete
d'access)






-----Message d'origine-----
Bonjour,
le probleme vient du fait que tu manipules la requete et
non la table.

Ta requete n'est qu' un affichage d'une selection d'
enregistrements

Pour vider la requete il faut soit changer le SQL de
selection ou vider

les tables qui contiennent les enregistrements a
selectionner.


Pour info : une requete ne contient pas
d'enregistrements.


Ici tu dois; d'apres ce que je comprends vider la table
Prenote.




bonjour (sous access 2002)
j ai une table "personnes" qui regroupe des personnes
j ai une table "notes" qui intégre des notes
de "personnes"
Il y a une relation d'intégrité qui empeche de
suprimer


des personnes si il existe des résultats pour cette
personne

j ai une table "preNote" qui regroupe des notes en
attente de validation (sans aucune liaison avec aucune
autre table - avec n° de personne, note)

J'ai une requete "visuprenote" qui affiche le numéro
de


personne + nom (liaison avec^personne) + la note

Si je supprime une ligne de "visuprenote" depuis la
requete, pas de probleme
Par contre si je supprime la meme ligne via VB, j ai
le


message (impossible de supprimer car il existe des
notes


dans "notes") -
En supprimant l'enregistrement de "visuprenote" via
VB,


access essaie aussi de supprimer la personne de la
table "personne"
Pourquoi??? (alors que en ouvrant la
requette 'visuprenote" dans acces, je supprime
l'enregistrement sans probleme (et sans supprimer la
personne)
mon code est le suivant

Dim rst As Recordset
Dim cnn As New Connection
cnn.Open CurrentProject.Connection

Set rst = New ADODB.Recordset
rst6.Open "visuprenote", cnn, 1, 2, 2
If rst.EOF Then
MsgBox ("Aucune note à supprimer")
Else
Do While Not rst.EOF
rst.Delete 'cette ligne genere l'erreur
rst.MoveNext
Loop
End If
rst.Close
Set rst = Nothing


Merci de votre aide


.