Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

CurrentDb.Execute "UPDATE ne s"execute pas?

15 réponses
Avatar
Pascal
bonjour,
j'ai retourné cela dans tout les sens, je ne comprends pas pourquoi
je me permet de vous soumettre ce problème
merci de vos réflexions
Pascal
CurrentDb.Execute "UPDATE
ne s'execute plus
Dans l'ordre: ouverture formulaire form OPEN test if table exist si non
création
tout cela OK
le problème se pose a l'appel de function fchargementImprimantes
la table se remplis mais le champ ts_selection ne se coche pas??????

ensuite form LOAD le test échoue puisque aucune case cochée dans la table


'-------------------------------------------------------------------
Private Sub Form_Open(Cancel As Integer)
'si la table n'a pas étée initialisée, il faut la créer
'vérification de l'existence de la table d'imprimante
If Not ExistTable("tbPrtList") Then
'créer table
CréerTableDAO
'remplissage de la table imprimante
fChargementImprimantes
End If
End Sub


'-----------forcement nomPRt ne vaut jamais rien-------
'-----------et cocher case imprimante ne peut
fonctionner-------------------------------------
Private Sub Form_Load()
Dim NomRécupérer As String
Dim NomPrt As String
Dim rs As Recordset

On Error GoTo Sortie
'rechercher l'imprimante qui est mise par défaut dans la table tbPrtList
Set rs = CurrentDb().OpenRecordset("SELECT * FROM tbPrtList WHERE
ts_selection = true")

If Not rs.EOF And Not rs.BOF Then
NomRécupérer = rs.Fields("tx_PrtNom")
End If
'ajoute les guillemets puisque un String
NomPrt = """" & NomRécupérer & """"

'aficher dans le combo
Me.cboImprimante.DefaultValue = NomPrt
'met a jour la table tbPrtList
CocherCaseImprimante (NomPrt)

Sortie:

Set rs = Nothing
end sub


'-------currentdb n'est pas pris en compte--------------------
Function fChargementImprimantes()
' Fonction permettant de remplir une fois la table des imprimantes
' A lancer si nouvelle imprimante créée ou nouveau driver installé

Dim tampon As String
Dim i As Integer
Dim itNbPrt As Integer
Dim rs As Recordset
Static atagDevices() As aht_tagDeviceRec

On Error GoTo GestErr

Set rs = CurrentDb().OpenRecordset("tbPrtList", dbOpenDynaset)

' Suppression des enregistrements de la table
DoCmd.RunSQL "DELETE * FROM tbPrtList"

' Détermine le nombre d'imprimantes en cours sur le poste
itNbPrt = ahtGetPrinterList(atagDevices())

' Ajoute les imprimantes dans la table
For i = 1 To itNbPrt
rs.AddNew
rs![no_Prt].Value = i
rs![tx_prtNom].Value = atagDevices(i).drDeviceName
tampon = atagDevices(i).drDeviceName

rs![tx_Prtport].Value = atagDevices(i).drPort
rs![tx_prtdriver].Value = atagDevices(i).drDriverName

rs.Update

Next i

' coche la dernière imprimante selectionnée contenue dans Tampon pour
initialiser la table
CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True " & "WHERE
tx_PrtNom = '" & tampon & "';"

FinLoad:
' Fermeture des objets
rs.Close
Set rs = Nothing

Exit Function
' Gestion des erreurs
GestErr:

MsgBox "Erreur dans fChargementImprimantes : " & Error & " (" & Err &
")"

Resume FinLoad

End Function

'---------------------------------------
Function CocherCaseImprimante(NomImprimante As String)
' cette fonction permet de cocher la case d'imprimante choisie
' NomImprimante est celui de l'imprimante repris dans le combo sur le
formulaire
'coche l'imprimante selectionnée
CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True " & "WHERE
tx_PrtNom = '" & NomImprimante & "';"
'Décoche toutes les autres imprimantes
CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = false " & "WHERE
tx_PrtNom <> '" & NomImprimante & "';"
End Function

10 réponses

1 2
Avatar
Eric
Bonjour,

J'ai regardé sur le site et la table contient un champ st_Selection et
non un champ ts_selection.
T'as pas un message du genre "Trop peu de paramètres - 1 attendu(s)

De plus je changerai la ligne :
DoCmd.RunSQL "DELETE * FROM tbPrtList"
par CurrentDb.execute "DELETE * FROM tbPrtList" pour éviter les
avertissements de suppression.

bonjour,
j'ai retourné cela dans tout les sens, je ne comprends pas pourquoi
je me permet de vous soumettre ce problème
merci de vos réflexions
Pascal
CurrentDb.Execute "UPDATE
ne s'execute plus
Dans l'ordre: ouverture formulaire form OPEN test if table exist si non
création
tout cela OK
le problème se pose a l'appel de function fchargementImprimantes
la table se remplis mais le champ ts_selection ne se coche pas??????




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Pascal
bonjour Eric,
merci de la réponse
J'ai regardé sur le site et la table contient un champ st_Selection et
non un champ ts_selection<<



non ca c'était dans lecadre du autre demande ici tous les champs sont
correct
le + bizarre est que cela à fonctionner au début et plus depuis
je vois pas ce que j'ai pu faire
merci pour le DELETE

"Eric" a écrit dans le message de news:
O4319%
Bonjour,

J'ai regardé sur le site et la table contient un champ st_Selection et non
un champ ts_selection.
T'as pas un message du genre "Trop peu de paramètres - 1 attendu(s)

De plus je changerai la ligne :
DoCmd.RunSQL "DELETE * FROM tbPrtList"
par CurrentDb.execute "DELETE * FROM tbPrtList" pour éviter les
avertissements de suppression.

bonjour,
j'ai retourné cela dans tout les sens, je ne comprends pas pourquoi
je me permet de vous soumettre ce problème
merci de vos réflexions
Pascal
CurrentDb.Execute "UPDATE
ne s'execute plus
Dans l'ordre: ouverture formulaire form OPEN test if table exist si non
création
tout cela OK
le problème se pose a l'appel de function fchargementImprimantes
la table se remplis mais le champ ts_selection ne se coche pas??????




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
re,

On est bien d'accord, "l'erreur" se situe dans la fonction
fchargementImprimantes ? car je n'ai pas regardé les autres.
Je l'ai lancée plusieurs fois sans problème (avec le code complet et en
conservant le nom st_Selection).

Sors ton SQL du Currentdb.execute
dim strSQL as string
strSQL="UPDATE tbPrtList SET st_Selection = True " & "WHERE tx_PrtNom =
'" & tampon & "';"
et fait un debug.print strSQL :Stop
pour voir ce que contient la chaine SQL
puis après
CurrentDb.Execute strSQL
...


bonjour Eric,
merci de la réponse
J'ai regardé sur le site et la table contient un champ st_Selection
et non un champ ts_selection<<



non ca c'était dans lecadre du autre demande ici tous les champs sont
correct
le + bizarre est que cela à fonctionner au début et plus depuis
je vois pas ce que j'ai pu faire
merci pour le DELETE

"Eric" a écrit dans le message de news:
O4319%
Bonjour,

J'ai regardé sur le site et la table contient un champ st_Selection et
non un champ ts_selection.
T'as pas un message du genre "Trop peu de paramètres - 1 attendu(s)

De plus je changerai la ligne :
DoCmd.RunSQL "DELETE * FROM tbPrtList"
par CurrentDb.execute "DELETE * FROM tbPrtList" pour éviter les
avertissements de suppression.

bonjour,
j'ai retourné cela dans tout les sens, je ne comprends pas pourquoi
je me permet de vous soumettre ce problème
merci de vos réflexions
Pascal
CurrentDb.Execute "UPDATE
ne s'execute plus
Dans l'ordre: ouverture formulaire form OPEN test if table exist si
non création
tout cela OK
le problème se pose a l'appel de function fchargementImprimantes
la table se remplis mais le champ ts_selection ne se coche pas??????




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
.../...
et profites en pour la simplifier ;-)
strSQL="UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = '" &
tampon & "';"

PS:je me mélange les pinceaux. Toi c'est ts_Selection :-(

re,

On est bien d'accord, "l'erreur" se situe dans la fonction
fchargementImprimantes ? car je n'ai pas regardé les autres.
Je l'ai lancée plusieurs fois sans problème (avec le code complet et en
conservant le nom st_Selection).

Sors ton SQL du Currentdb.execute
dim strSQL as string
strSQL="UPDATE tbPrtList SET st_Selection = True " & "WHERE tx_PrtNom =
'" & tampon & "';"
et fait un debug.print strSQL :Stop
pour voir ce que contient la chaine SQL
puis après
CurrentDb.Execute strSQL
...




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Pascal
Re Eric,
voilà le résultat du debug.print
UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom =' hp deskjet
845c';
en faisant ensuite
CurrentDb.Execute strSQL
je ne retrouve pas trace du changement dans ma table?????????,
Pascal
Une idée, le changement se fait dans form open
ensuite dans form load je teste
est-ce que le temps d'accès entre les deux ne serait pas trop court
redonner accès au système?
bizarre machin
merci
Pascal





"Eric" a écrit dans le message de news:

.../...
et profites en pour la simplifier ;-)
strSQL="UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = '" &
tampon & "';"

PS:je me mélange les pinceaux. Toi c'est ts_Selection :-(

re,

On est bien d'accord, "l'erreur" se situe dans la fonction
fchargementImprimantes ? car je n'ai pas regardé les autres.
Je l'ai lancée plusieurs fois sans problème (avec le code complet et en
conservant le nom st_Selection).

Sors ton SQL du Currentdb.execute
dim strSQL as string
strSQL="UPDATE tbPrtList SET st_Selection = True " & "WHERE tx_PrtNom =
'" & tampon & "';"
et fait un debug.print strSQL :Stop
pour voir ce que contient la chaine SQL
puis après
CurrentDb.Execute strSQL
...




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Pascal
re,re, Eric,
depuis insertion
dim strSQL as string
.......... currentdb.strsql
le form ne se lance plus
quand je compile le code j'ai l'erreur "Membres de méthode ou de données
introuvable"
ne sait si cela peut aider pour comprendre
Pascal

"Pascal" a écrit dans le message de news:
O2Sip%
Re Eric,
voilà le résultat du debug.print
UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom =' hp deskjet
845c';
en faisant ensuite
CurrentDb.Execute strSQL
je ne retrouve pas trace du changement dans ma table?????????,
Pascal
Une idée, le changement se fait dans form open
ensuite dans form load je teste
est-ce que le temps d'accès entre les deux ne serait pas trop court
redonner accès au système?
bizarre machin
merci
Pascal





"Eric" a écrit dans le message de news:

.../...
et profites en pour la simplifier ;-)
strSQL="UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = '" &
tampon & "';"

PS:je me mélange les pinceaux. Toi c'est ts_Selection :-(

re,

On est bien d'accord, "l'erreur" se situe dans la fonction
fchargementImprimantes ? car je n'ai pas regardé les autres.
Je l'ai lancée plusieurs fois sans problème (avec le code complet et en
conservant le nom st_Selection).

Sors ton SQL du Currentdb.execute
dim strSQL as string
strSQL="UPDATE tbPrtList SET st_Selection = True " & "WHERE tx_PrtNom =
'" & tampon & "';"
et fait un debug.print strSQL :Stop
pour voir ce que contient la chaine SQL
puis après
CurrentDb.Execute strSQL
...




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






Avatar
Pascal
bon là c'est moi qui suis Hs
ai oublié d'indiquer currentdb.execute strsql
sorry

"Pascal" a écrit dans le message de news:

re,re, Eric,
depuis insertion
dim strSQL as string
.......... currentdb.strsql
le form ne se lance plus
quand je compile le code j'ai l'erreur "Membres de méthode ou de données
introuvable"
ne sait si cela peut aider pour comprendre
Pascal

"Pascal" a écrit dans le message de news:
O2Sip%
Re Eric,
voilà le résultat du debug.print
UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom =' hp deskjet
845c';
en faisant ensuite
CurrentDb.Execute strSQL
je ne retrouve pas trace du changement dans ma table?????????,
Pascal
Une idée, le changement se fait dans form open
ensuite dans form load je teste
est-ce que le temps d'accès entre les deux ne serait pas trop court
redonner accès au système?
bizarre machin
merci
Pascal





"Eric" a écrit dans le message de news:

.../...
et profites en pour la simplifier ;-)
strSQL="UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = '" &
tampon & "';"

PS:je me mélange les pinceaux. Toi c'est ts_Selection :-(

re,

On est bien d'accord, "l'erreur" se situe dans la fonction
fchargementImprimantes ? car je n'ai pas regardé les autres.
Je l'ai lancée plusieurs fois sans problème (avec le code complet et en
conservant le nom st_Selection).

Sors ton SQL du Currentdb.execute
dim strSQL as string
strSQL="UPDATE tbPrtList SET st_Selection = True " & "WHERE tx_PrtNom =
'" & tampon & "';"
et fait un debug.print strSQL :Stop
pour voir ce que contient la chaine SQL
puis après
CurrentDb.Execute strSQL
...




--
A+
Eric
http://www.mpfa.info/
Archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr









Avatar
Eric
re,
currentdb.Execute strsql

re,re, Eric,
depuis insertion
dim strSQL as string
.......... currentdb.strsql
le form ne se lance plus
quand je compile le code j'ai l'erreur "Membres de méthode ou de
données introuvable"
ne sait si cela peut aider pour comprendre
Pascal

"Pascal" a écrit dans le message de news:
O2Sip%
Re Eric,
voilà le résultat du debug.print
UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom =' hp deskjet
845c';
en faisant ensuite
CurrentDb.Execute strSQL
je ne retrouve pas trace du changement dans ma table?????????,
Pascal
Une idée, le changement se fait dans form open
ensuite dans form load je teste
est-ce que le temps d'accès entre les deux ne serait pas trop court
redonner accès au système?
bizarre machin
merci
Pascal





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
Eric
re,

Tu as
UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom =' hp deskjet
845c';
et tu devrais avoir:
UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom ='hp deskjet
845c';

Il y a un espace de trop devant le nom de l'imprimante.

Essaies:
CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True " & "WHERE
tx_PrtNom = '" & Trim(tampon) & "';"


Re Eric,
voilà le résultat du debug.print
UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom =' hp deskjet
845c';
en faisant ensuite
CurrentDb.Execute strSQL
je ne retrouve pas trace du changement dans ma table?????????,
Pascal
Une idée, le changement se fait dans form open
ensuite dans form load je teste
est-ce que le temps d'accès entre les deux ne serait pas trop court
redonner accès au système?
bizarre machin
merci
Pascal


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Pascal
hello Eric,
bien vu pour l'espace mais cela ne change toujours rien
merci à toi
Pascal

"Eric" a écrit dans le message de news:

re,

Tu as
UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom =' hp deskjet
845c';
et tu devrais avoir:
UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom ='hp deskjet
845c';

Il y a un espace de trop devant le nom de l'imprimante.

Essaies:
CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True " & "WHERE
tx_PrtNom = '" & Trim(tampon) & "';"


1 2