Requête que passe bien sur XP, Vista mais pas sous Windows 7...

cs_tolt Messages postés 269 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 4 avril 2019 - 20 sept. 2009 à 13:01
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 20 sept. 2009 à 21:00
Bonjour,

J'ai une simple requête SQL qui passe sans problème sous XP et Vista mais pas sur la version beta de Windows 7.

Si vous avez une idée ? Merci d'avance.

Requête :
Call CrtRecordset(ConnexionADO, RecorsetADOtemp, "delete * from lKey")

Procédure CrtRecordset :
Screen.MousePointer = vbHourglass
Set ado = New ADODB.Recordset
ado.CursorLocation = adUseClient
ado.Open textsql, cnt, adOpenDynamic, adLockOptimistic
Screen.MousePointer = vbDefault
Exit Sub
GestErr:
Screen.MousePointer = vbDefault
If Err.Number <> 0 Then
MsgBox Err.Description, vbCritical, "F-> : CrtRecordset " & Titre
Err.Clear
End If

1er Message d'erreur :
Impossible de supprimer les tables spécifiées

2eme Message d'erreur :
L' opération doit utiliser une requête qui peut être mise à jour



tolt

11 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
20 sept. 2009 à 13:19
salut,

tu pourrais nous montrer la déclaration de la sub ?

* pourquoi passer RecorsetADOtemp (un RS??) en paramètre si tu ne l'utilises pas

* tu crées un nouveau RS. nommé "ado"? y'a de quoi s'y perdre!!

* et surtout : je m'étonne que çà fonctionne même sous XP : ta requête n'est pas bonne :
"DELETE FROM lKey;"
(à supposer que LKEY soit bien un nom de table et non une variable)
pas d'étoile !!
http://sql.1keydata.com/fr/sql-delete.php

++
[hr]
0
cs_tolt Messages postés 269 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 4 avril 2019
20 sept. 2009 à 13:27
Voilà ma déclaration.
Global RecorsetADOtemp As ADODB.Recordset

Sinon lKey est bien un fichier en effet.
Je vois pas pourquoi ça ne devrait pas passer ?

Je suis sous VB6 vian une base access 2000.

Merci en tout cas de ta réponse.
Amicalement,


tolt
0
cs_Ayr Messages postés 221 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 13 décembre 2009 2
20 sept. 2009 à 13:45
Salut,

Je ne vois pas pourquoi une requête serai incompatible avec Windows 7. S'il devait y avoir une incompatibilité elle devrait se trouver ailleurs dans le code à mon avis. Ou dans "l'esprit" du code ou de la requête.

Global ? utilise plutôt Public, Global est obsolète.

Sinon lKey est bien un fichier en effet


Un fichier ?(??)

PS: La requête "DELETE * FROM lKey;" fonctionne sous Access et fournit le même résultat que "DELETE FROM lKey;", soit, à supposer que lKey est une Table, celà revient à supprimer tout les enregistrements de la table ! C'est bien ce que tu veux faire ?
0
cs_tolt Messages postés 269 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 4 avril 2019
20 sept. 2009 à 13:48
Oui en effet je veux supprimer tout les enregisrements de la table lKey.

Merci.

tolt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Ayr Messages postés 221 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 13 décembre 2009 2
20 sept. 2009 à 14:08
Au Temps pour moi...

De manière générale tu peux, si je ne m'abuse, pour executer une requête action qui ne renvois pas d'enregistrements, la commande suivante :

Call ConnexionADO.Execute("DELETE FROM lKey;", , adExecuteNoRecords) 

ou pas loin
0
cs_tolt Messages postés 269 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 4 avril 2019
20 sept. 2009 à 14:11
J'ai trouvé chez Micosoft ceci qui semble bien marcher.
@++

delete DISTINCTROW lKey.* from lKey

tolt
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 sept. 2009 à 17:28
Salut
Comme l'a dit Ayr, une commande Delete ou Insert Into ne se fait pas avec la méthode Open d'un RecordSet, mais avec la méthode Execute de la connexion.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_tolt Messages postés 269 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 4 avril 2019
20 sept. 2009 à 17:38
OK Jack Merci mais jusque là jamais eu de soucis avec XP et Vista.
Juste avec Windows 7.Auriez-vous une idée ?
Merci à tous vraiment super se site.

tolt
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 sept. 2009 à 18:30
Je dirais qu'il est étonnant que cela fonctionne auparavant ...
0
cs_tolt Messages postés 269 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 4 avril 2019
20 sept. 2009 à 18:36
Juste pour info Jack et vraiment amicalement.
Je viens de comprendre et ça marche parfaitement avec Windows 7 aussi...

Il faut juste lancer le programme en mode Administrateur.
Voilà et encore une fois ça marche impec ma méthode.

Alors une petite question.
Savez-vous comment lancer un programme VB6 en mode Administrateur sans que l'utilisateur soit obligé de faire clique droit etc...?

Bonne soirée à tous.

tolt
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
20 sept. 2009 à 21:00
0
Rejoignez-nous