Je dois supprimer les adresses où n'habite personne, les tables candidat
et adresse postale étant liées sur le code adresse postale.
Dans le gestionnaire de données ma requête fonctionne très bien, mais si
je la lance dans mon programme VB6 par
Data1.Database.Execute(strSQL)
ça ne fait ni chaud ni froid à la base, alors que
Data1.Database.Openrecordset me permet d'ouvrir des jeux
d'enregistrements sans problème, ce qui vérifie que je m'adresse à la
bonne base.
L'instruction s'exécute, j'ai fait une pause dessus pour vérifier, mais
les enregistrements ne sont pas effacés.
Quelqu'un a-t-il une idée sur ce qui cloche ?
Voici la requête :
DELETE FROM AdressePostale WHERE CodeAdresse IN (SELECT
AdressePostale.CodeAdresse FROM AdressePostale LEFT JOIN Candidat ON
Candidat.[Code AdressePostale] = AdressePostale.CodeAdresse WHERE
Candidat.[Code AdressePostale] = Null)
(oui je sais, mauvaise idée l'espace dans le nom de champ ; mais dans le
gestionnaire de données ça fonctionne impec)
C'est une base que j'ai créée sous le gestionnaire de données, la
propriété Connect de Data1 est "Access 2000;"
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
Gloops
(suite Msg-Id <4283e9a4$0$25021$ de ce matin 01:41)
Elément de réflexion supplémentaire.
J'ai créé une requête reqAPurger, et ses résultats semblent surprenants. Dans le gestionnaire de données, elle retourne trois enregistrements.
Voici une procédure de test et ses résultats (j'ai évité Rs.MoveLast, qui retournait une erreur du fait de l'absence d'enregistrements) :
Public Sub TestReq() Dim DB As Database Dim qry As QueryDef Dim Rs As Recordset Set DB = DBEngine.OpenDatabase((chemin) ... "CONTACTS_BASE.MDB") Set qry = DB.QueryDefs("reqAPurger") Debug.Print qry.SQL Set Rs = qry.OpenRecordset ' erreur si j'exécute : Rs.MoveLast Debug.Print "qry a " + Str(Rs.RecordCount) + " enregistrements" Rs.Close Set Rs = Nothing qry.Close Set qry = Nothing DB.Close Set DB = Nothing End Sub
SELECT AdressePostale.CodeAdresse FROM AdressePostale LEFT JOIN Candidat ON Candidat.[Code AdressePostale] = AdressePostale.CodeAdresse WHERE Candidat.[Code AdressePostale] = Null;
qry a 0 enregistrements
(suite Msg-Id <4283e9a4$0$25021$8fcfb975@news.wanadoo.fr> de ce matin 01:41)
Elément de réflexion supplémentaire.
J'ai créé une requête reqAPurger, et ses résultats semblent surprenants.
Dans le gestionnaire de données, elle retourne trois enregistrements.
Voici une procédure de test et ses résultats (j'ai évité Rs.MoveLast,
qui retournait une erreur du fait de l'absence d'enregistrements) :
Public Sub TestReq()
Dim DB As Database
Dim qry As QueryDef
Dim Rs As Recordset
Set DB = DBEngine.OpenDatabase((chemin) ... "CONTACTS_BASE.MDB")
Set qry = DB.QueryDefs("reqAPurger")
Debug.Print qry.SQL
Set Rs = qry.OpenRecordset
' erreur si j'exécute : Rs.MoveLast
Debug.Print "qry a " + Str(Rs.RecordCount) + " enregistrements"
Rs.Close
Set Rs = Nothing
qry.Close
Set qry = Nothing
DB.Close
Set DB = Nothing
End Sub
SELECT AdressePostale.CodeAdresse
FROM AdressePostale LEFT JOIN Candidat ON Candidat.[Code AdressePostale]
= AdressePostale.CodeAdresse
WHERE Candidat.[Code AdressePostale] = Null;
(suite Msg-Id <4283e9a4$0$25021$ de ce matin 01:41)
Elément de réflexion supplémentaire.
J'ai créé une requête reqAPurger, et ses résultats semblent surprenants. Dans le gestionnaire de données, elle retourne trois enregistrements.
Voici une procédure de test et ses résultats (j'ai évité Rs.MoveLast, qui retournait une erreur du fait de l'absence d'enregistrements) :
Public Sub TestReq() Dim DB As Database Dim qry As QueryDef Dim Rs As Recordset Set DB = DBEngine.OpenDatabase((chemin) ... "CONTACTS_BASE.MDB") Set qry = DB.QueryDefs("reqAPurger") Debug.Print qry.SQL Set Rs = qry.OpenRecordset ' erreur si j'exécute : Rs.MoveLast Debug.Print "qry a " + Str(Rs.RecordCount) + " enregistrements" Rs.Close Set Rs = Nothing qry.Close Set qry = Nothing DB.Close Set DB = Nothing End Sub
SELECT AdressePostale.CodeAdresse FROM AdressePostale LEFT JOIN Candidat ON Candidat.[Code AdressePostale] = AdressePostale.CodeAdresse WHERE Candidat.[Code AdressePostale] = Null;
qry a 0 enregistrements
Eric
Bonjour Gloops,
As-tu essayé avec : WHERE Candidat.[Code AdressePostale] Is Null ou encore: WHERE IsNull(Candidat.[Code AdressePostale]) ?
A+ Eric
Gloops a écrit :
(suite Msg-Id <4283e9a4$0$25021$ de ce matin 01:41)
Elément de réflexion supplémentaire.
J'ai créé une requête reqAPurger, et ses résultats semblent surprenants. Dans le gestionnaire de données, elle retourne trois enregistrements.
Voici une procédure de test et ses résultats (j'ai évité Rs.MoveLast, qui retournait une erreur du fait de l'absence d'enregistrements) :
Public Sub TestReq() Dim DB As Database Dim qry As QueryDef Dim Rs As Recordset Set DB = DBEngine.OpenDatabase((chemin) ... "CONTACTS_BASE.MDB") Set qry = DB.QueryDefs("reqAPurger") Debug.Print qry.SQL Set Rs = qry.OpenRecordset ' erreur si j'exécute : Rs.MoveLast Debug.Print "qry a " + Str(Rs.RecordCount) + " enregistrements" Rs.Close Set Rs = Nothing qry.Close Set qry = Nothing DB.Close Set DB = Nothing End Sub
SELECT AdressePostale.CodeAdresse FROM AdressePostale LEFT JOIN Candidat ON Candidat.[Code AdressePostale] = AdressePostale.CodeAdresse WHERE Candidat.[Code AdressePostale] = Null;
qry a 0 enregistrements
Bonjour Gloops,
As-tu essayé avec :
WHERE Candidat.[Code AdressePostale] Is Null
ou encore:
WHERE IsNull(Candidat.[Code AdressePostale]) ?
A+
Eric
Gloops a écrit :
(suite Msg-Id <4283e9a4$0$25021$8fcfb975@news.wanadoo.fr> de ce matin
01:41)
Elément de réflexion supplémentaire.
J'ai créé une requête reqAPurger, et ses résultats semblent surprenants.
Dans le gestionnaire de données, elle retourne trois enregistrements.
Voici une procédure de test et ses résultats (j'ai évité Rs.MoveLast,
qui retournait une erreur du fait de l'absence d'enregistrements) :
Public Sub TestReq()
Dim DB As Database
Dim qry As QueryDef
Dim Rs As Recordset
Set DB = DBEngine.OpenDatabase((chemin) ... "CONTACTS_BASE.MDB")
Set qry = DB.QueryDefs("reqAPurger")
Debug.Print qry.SQL
Set Rs = qry.OpenRecordset
' erreur si j'exécute : Rs.MoveLast
Debug.Print "qry a " + Str(Rs.RecordCount) + " enregistrements"
Rs.Close
Set Rs = Nothing
qry.Close
Set qry = Nothing
DB.Close
Set DB = Nothing
End Sub
SELECT AdressePostale.CodeAdresse
FROM AdressePostale LEFT JOIN Candidat ON Candidat.[Code AdressePostale]
= AdressePostale.CodeAdresse
WHERE Candidat.[Code AdressePostale] = Null;
As-tu essayé avec : WHERE Candidat.[Code AdressePostale] Is Null ou encore: WHERE IsNull(Candidat.[Code AdressePostale]) ?
A+ Eric
Gloops a écrit :
(suite Msg-Id <4283e9a4$0$25021$ de ce matin 01:41)
Elément de réflexion supplémentaire.
J'ai créé une requête reqAPurger, et ses résultats semblent surprenants. Dans le gestionnaire de données, elle retourne trois enregistrements.
Voici une procédure de test et ses résultats (j'ai évité Rs.MoveLast, qui retournait une erreur du fait de l'absence d'enregistrements) :
Public Sub TestReq() Dim DB As Database Dim qry As QueryDef Dim Rs As Recordset Set DB = DBEngine.OpenDatabase((chemin) ... "CONTACTS_BASE.MDB") Set qry = DB.QueryDefs("reqAPurger") Debug.Print qry.SQL Set Rs = qry.OpenRecordset ' erreur si j'exécute : Rs.MoveLast Debug.Print "qry a " + Str(Rs.RecordCount) + " enregistrements" Rs.Close Set Rs = Nothing qry.Close Set qry = Nothing DB.Close Set DB = Nothing End Sub
SELECT AdressePostale.CodeAdresse FROM AdressePostale LEFT JOIN Candidat ON Candidat.[Code AdressePostale] = AdressePostale.CodeAdresse WHERE Candidat.[Code AdressePostale] = Null;
qry a 0 enregistrements
Gloops
Ah, bien vu, cette fois il y a un enregistrement dedans en l'appelant à partir de VB6.
Je ne sais plus trop ce que j'avais trafiqué avec Is Null, je m'étais fait jeter. Peut-être avais-je oublié l'espace entre les deux mots.
Je regarderai cet après-midi, ça devrait marcher.
Merci.
Eric a écrit, le 13/05/2005 13:37 :
Bonjour Gloops,
As-tu essayé avec : WHERE Candidat.[Code AdressePostale] Is Null ou encore: WHERE IsNull(Candidat.[Code AdressePostale]) ?
A+ Eric
Ah, bien vu, cette fois il y a un enregistrement dedans en l'appelant à
partir de VB6.
Je ne sais plus trop ce que j'avais trafiqué avec Is Null, je m'étais
fait jeter. Peut-être avais-je oublié l'espace entre les deux mots.
Je regarderai cet après-midi, ça devrait marcher.
Merci.
Eric a écrit, le 13/05/2005 13:37 :
Bonjour Gloops,
As-tu essayé avec :
WHERE Candidat.[Code AdressePostale] Is Null
ou encore:
WHERE IsNull(Candidat.[Code AdressePostale]) ?