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
' 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
'---------------------------------------
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
Mets dans une bd au format Access2000 que le minimum : table, formulaire et procédures et API. Compactes ta bd, zippes la et postes sur cjoint.com. Je vais la tester.
hello Eric, bien vu pour l'espace mais cela ne change toujours rien merci à toi Pascal
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Mets dans une bd au format Access2000 que le minimum : table, formulaire
et procédures et API.
Compactes ta bd, zippes la et postes sur cjoint.com. Je vais la tester.
hello Eric,
bien vu pour l'espace mais cela ne change toujours rien
merci à toi
Pascal
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Mets dans une bd au format Access2000 que le minimum : table, formulaire et procédures et API. Compactes ta bd, zippes la et postes sur cjoint.com. Je vais la tester.
hello Eric, bien vu pour l'espace mais cela ne change toujours rien merci à toi Pascal
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Pascal
Hello Eric, merci de la peine la voici réduite à sa + simple expression http://cjoint.com/?ddagQjNmTE bien à toi Pascal
"Eric" a écrit dans le message de news:
Mets dans une bd au format Access2000 que le minimum : table, formulaire et procédures et API. Compactes ta bd, zippes la et postes sur cjoint.com. Je vais la tester.
hello Eric, bien vu pour l'espace mais cela ne change toujours rien merci à toi Pascal
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Hello Eric,
merci de la peine
la voici réduite à sa + simple expression
http://cjoint.com/?ddagQjNmTE
bien à toi
Pascal
"Eric" <f_framZZ@hotmail.com> a écrit dans le message de news:
O6LystQXHHA.3972@TK2MSFTNGP03.phx.gbl...
Mets dans une bd au format Access2000 que le minimum : table, formulaire
et procédures et API.
Compactes ta bd, zippes la et postes sur cjoint.com. Je vais la tester.
hello Eric,
bien vu pour l'espace mais cela ne change toujours rien
merci à toi
Pascal
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Hello Eric, merci de la peine la voici réduite à sa + simple expression http://cjoint.com/?ddagQjNmTE bien à toi Pascal
"Eric" a écrit dans le message de news:
Mets dans une bd au format Access2000 que le minimum : table, formulaire et procédures et API. Compactes ta bd, zippes la et postes sur cjoint.com. Je vais la tester.
hello Eric, bien vu pour l'espace mais cela ne change toujours rien merci à toi Pascal
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
Bonjour Pascal,
Il s'agissait d'un problème de quote(') et de double guillemets ("") En affichant ton SQL, on obtenait par exemple : "UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = '"Acrobat Distiller"'; et lors de l'exécution la mise à jour demandée ne se faisait pas car pas de Printer ayant pour nom "Acrobat Distiller" entre guillemets. De plus la ligne suivante CurrentDb.Execute désélectionnait toutes les imprimantes pour ce motif.
Les modifications: 1-Dans la procédure : Function CocherCaseImprimante(NomImprimante As String) remplacement de : CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = '" & NomImprimante & "';" par CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = " & Chr(34) & NomImprimante & Chr(34) & ";"
Idem pour le CurrentDb.Execute de la ligne suivante.
2-Dans la procédure Private Sub Form_Load() du formulaire Menu Logex: NomPrt = NomRécupérer au lieu de NomPrt = """" & NomRécupérer & """" et Me.cboImprimante.DefaultValue = Chr(34) & NomPrt & Chr(34) au lieu de Me.cboImprimante.DefaultValue = NomPrt
Toujours dans cette procédure, pourquoi exécuter la procédure CocherCaseImprimante (NomPrt) puisque la 1ère fois la dernière imprimante lue est mise par défaut ou si l'initialisation a déjà été faite, c'est cette dernière qui est activée car récupérée dans la table tbPrtList? (Ligne mise en remarque dans la procédure)
J'ai testé sans la table tbPrtList, donc création --> Ok puis ensuite en modifiant l'imprimante par défaut, là encore Ok. A toi de faire d'autres tests ;-)
La base en retour: http://cjoint.com/?ddjni6LScR
PS : Penses à compacter ta bd (Menu Outils|Utilitaires de bd|Compacter). Après cette opération, la taille de la bd est passée de 2 Mo a 300 Ko.
Hello Eric, merci de la peine la voici réduite à sa + simple expression http://cjoint.com/?ddagQjNmTE bien à toi Pascal
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Pascal,
Il s'agissait d'un problème de quote(') et de double guillemets ("")
En affichant ton SQL, on obtenait par exemple :
"UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = '"Acrobat
Distiller"';
et lors de l'exécution la mise à jour demandée ne se faisait pas car pas
de Printer ayant pour nom "Acrobat Distiller" entre guillemets. De plus
la ligne suivante CurrentDb.Execute désélectionnait toutes les
imprimantes pour ce motif.
Les modifications:
1-Dans la procédure : Function CocherCaseImprimante(NomImprimante As
String) remplacement de :
CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True WHERE
tx_PrtNom = '" & NomImprimante & "';"
par
CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True WHERE
tx_PrtNom = " & Chr(34) & NomImprimante & Chr(34) & ";"
Idem pour le CurrentDb.Execute de la ligne suivante.
2-Dans la procédure Private Sub Form_Load() du formulaire Menu Logex:
NomPrt = NomRécupérer au lieu de NomPrt = """" & NomRécupérer & """"
et
Me.cboImprimante.DefaultValue = Chr(34) & NomPrt & Chr(34) au lieu de
Me.cboImprimante.DefaultValue = NomPrt
Toujours dans cette procédure, pourquoi exécuter la procédure
CocherCaseImprimante (NomPrt) puisque la 1ère fois la dernière
imprimante lue est mise par défaut ou si l'initialisation a déjà été
faite, c'est cette dernière qui est activée car récupérée dans la table
tbPrtList? (Ligne mise en remarque dans la procédure)
J'ai testé sans la table tbPrtList, donc création --> Ok
puis ensuite en modifiant l'imprimante par défaut, là encore Ok.
A toi de faire d'autres tests ;-)
La base en retour: http://cjoint.com/?ddjni6LScR
PS : Penses à compacter ta bd (Menu Outils|Utilitaires de bd|Compacter).
Après cette opération, la taille de la bd est passée de 2 Mo a 300 Ko.
Hello Eric,
merci de la peine
la voici réduite à sa + simple expression
http://cjoint.com/?ddagQjNmTE
bien à toi
Pascal
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Il s'agissait d'un problème de quote(') et de double guillemets ("") En affichant ton SQL, on obtenait par exemple : "UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = '"Acrobat Distiller"'; et lors de l'exécution la mise à jour demandée ne se faisait pas car pas de Printer ayant pour nom "Acrobat Distiller" entre guillemets. De plus la ligne suivante CurrentDb.Execute désélectionnait toutes les imprimantes pour ce motif.
Les modifications: 1-Dans la procédure : Function CocherCaseImprimante(NomImprimante As String) remplacement de : CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = '" & NomImprimante & "';" par CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = " & Chr(34) & NomImprimante & Chr(34) & ";"
Idem pour le CurrentDb.Execute de la ligne suivante.
2-Dans la procédure Private Sub Form_Load() du formulaire Menu Logex: NomPrt = NomRécupérer au lieu de NomPrt = """" & NomRécupérer & """" et Me.cboImprimante.DefaultValue = Chr(34) & NomPrt & Chr(34) au lieu de Me.cboImprimante.DefaultValue = NomPrt
Toujours dans cette procédure, pourquoi exécuter la procédure CocherCaseImprimante (NomPrt) puisque la 1ère fois la dernière imprimante lue est mise par défaut ou si l'initialisation a déjà été faite, c'est cette dernière qui est activée car récupérée dans la table tbPrtList? (Ligne mise en remarque dans la procédure)
J'ai testé sans la table tbPrtList, donc création --> Ok puis ensuite en modifiant l'imprimante par défaut, là encore Ok. A toi de faire d'autres tests ;-)
La base en retour: http://cjoint.com/?ddjni6LScR
PS : Penses à compacter ta bd (Menu Outils|Utilitaires de bd|Compacter). Après cette opération, la taille de la bd est passée de 2 Mo a 300 Ko.
Hello Eric, merci de la peine la voici réduite à sa + simple expression http://cjoint.com/?ddagQjNmTE bien à toi Pascal
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Pascal
Maitre Eric,
je te remercie, l'évidence ne m'avait pas sauté au yeux! je n'avais jamais remarqué l'espace devant le nom, promis je change de lunettes
Toujours dans cette procédure, pourquoi exécuter la procédure CocherCaseImprimante (NomPrt) oui, une ligne que j'avais oublié d'enlever, j'avais commencé à écrire
différement c'est ce qui fait toute la différence entre un amateur comme moi et un maître (ceci dit :sans flateries aucunes)
j'ai beaucoup apprécié ton aide et t'en suis reconnaissant Tout fonctionne très bien maintenant Bien à toi Pascal
"Eric" a écrit dans le message de news:
Bonjour Pascal,
Il s'agissait d'un problème de quote(') et de double guillemets ("") En affichant ton SQL, on obtenait par exemple : "UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = '"Acrobat Distiller"'; et lors de l'exécution la mise à jour demandée ne se faisait pas car pas de Printer ayant pour nom "Acrobat Distiller" entre guillemets. De plus la ligne suivante CurrentDb.Execute désélectionnait toutes les imprimantes pour ce motif.
Les modifications: 1-Dans la procédure : Function CocherCaseImprimante(NomImprimante As String) remplacement de : CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = '" & NomImprimante & "';" par CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = " & Chr(34) & NomImprimante & Chr(34) & ";"
Idem pour le CurrentDb.Execute de la ligne suivante.
2-Dans la procédure Private Sub Form_Load() du formulaire Menu Logex: NomPrt = NomRécupérer au lieu de NomPrt = """" & NomRécupérer & """" et Me.cboImprimante.DefaultValue = Chr(34) & NomPrt & Chr(34) au lieu de Me.cboImprimante.DefaultValue = NomPrt
Toujours dans cette procédure, pourquoi exécuter la procédure CocherCaseImprimante (NomPrt) puisque la 1ère fois la dernière imprimante lue est mise par défaut ou si l'initialisation a déjà été faite, c'est cette dernière qui est activée car récupérée dans la table tbPrtList? (Ligne mise en remarque dans la procédure)
J'ai testé sans la table tbPrtList, donc création --> Ok puis ensuite en modifiant l'imprimante par défaut, là encore Ok. A toi de faire d'autres tests ;-)
La base en retour: http://cjoint.com/?ddjni6LScR
PS : Penses à compacter ta bd (Menu Outils|Utilitaires de bd|Compacter). Après cette opération, la taille de la bd est passée de 2 Mo a 300 Ko.
Hello Eric, merci de la peine la voici réduite à sa + simple expression http://cjoint.com/?ddagQjNmTE bien à toi Pascal
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Maitre Eric,
je te remercie, l'évidence ne m'avait pas sauté au yeux!
je n'avais jamais remarqué l'espace devant le nom, promis je change de
lunettes
Toujours dans cette procédure, pourquoi exécuter la procédure
CocherCaseImprimante (NomPrt)
oui, une ligne que j'avais oublié d'enlever, j'avais commencé à écrire
différement
c'est ce qui fait toute la différence entre un amateur comme moi et un
maître (ceci dit :sans flateries aucunes)
j'ai beaucoup apprécié ton aide et t'en suis reconnaissant
Tout fonctionne très bien maintenant
Bien à toi
Pascal
"Eric" <f_framZZ@hotmail.com> a écrit dans le message de news:
eA3rv2WXHHA.1388@TK2MSFTNGP05.phx.gbl...
Bonjour Pascal,
Il s'agissait d'un problème de quote(') et de double guillemets ("")
En affichant ton SQL, on obtenait par exemple :
"UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = '"Acrobat
Distiller"';
et lors de l'exécution la mise à jour demandée ne se faisait pas car pas
de Printer ayant pour nom "Acrobat Distiller" entre guillemets. De plus la
ligne suivante CurrentDb.Execute désélectionnait toutes les imprimantes
pour ce motif.
Les modifications:
1-Dans la procédure : Function CocherCaseImprimante(NomImprimante As
String) remplacement de :
CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True WHERE
tx_PrtNom = '" & NomImprimante & "';"
par
CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True WHERE
tx_PrtNom = " & Chr(34) & NomImprimante & Chr(34) & ";"
Idem pour le CurrentDb.Execute de la ligne suivante.
2-Dans la procédure Private Sub Form_Load() du formulaire Menu Logex:
NomPrt = NomRécupérer au lieu de NomPrt = """" & NomRécupérer & """"
et
Me.cboImprimante.DefaultValue = Chr(34) & NomPrt & Chr(34) au lieu de
Me.cboImprimante.DefaultValue = NomPrt
Toujours dans cette procédure, pourquoi exécuter la procédure
CocherCaseImprimante (NomPrt) puisque la 1ère fois la dernière imprimante
lue est mise par défaut ou si l'initialisation a déjà été faite, c'est
cette dernière qui est activée car récupérée dans la table tbPrtList?
(Ligne mise en remarque dans la procédure)
J'ai testé sans la table tbPrtList, donc création --> Ok
puis ensuite en modifiant l'imprimante par défaut, là encore Ok.
A toi de faire d'autres tests ;-)
La base en retour: http://cjoint.com/?ddjni6LScR
PS : Penses à compacter ta bd (Menu Outils|Utilitaires de bd|Compacter).
Après cette opération, la taille de la bd est passée de 2 Mo a 300 Ko.
Hello Eric,
merci de la peine
la voici réduite à sa + simple expression
http://cjoint.com/?ddagQjNmTE
bien à toi
Pascal
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
je te remercie, l'évidence ne m'avait pas sauté au yeux! je n'avais jamais remarqué l'espace devant le nom, promis je change de lunettes
Toujours dans cette procédure, pourquoi exécuter la procédure CocherCaseImprimante (NomPrt) oui, une ligne que j'avais oublié d'enlever, j'avais commencé à écrire
différement c'est ce qui fait toute la différence entre un amateur comme moi et un maître (ceci dit :sans flateries aucunes)
j'ai beaucoup apprécié ton aide et t'en suis reconnaissant Tout fonctionne très bien maintenant Bien à toi Pascal
"Eric" a écrit dans le message de news:
Bonjour Pascal,
Il s'agissait d'un problème de quote(') et de double guillemets ("") En affichant ton SQL, on obtenait par exemple : "UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = '"Acrobat Distiller"'; et lors de l'exécution la mise à jour demandée ne se faisait pas car pas de Printer ayant pour nom "Acrobat Distiller" entre guillemets. De plus la ligne suivante CurrentDb.Execute désélectionnait toutes les imprimantes pour ce motif.
Les modifications: 1-Dans la procédure : Function CocherCaseImprimante(NomImprimante As String) remplacement de : CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = '" & NomImprimante & "';" par CurrentDb.Execute "UPDATE tbPrtList SET ts_Selection = True WHERE tx_PrtNom = " & Chr(34) & NomImprimante & Chr(34) & ";"
Idem pour le CurrentDb.Execute de la ligne suivante.
2-Dans la procédure Private Sub Form_Load() du formulaire Menu Logex: NomPrt = NomRécupérer au lieu de NomPrt = """" & NomRécupérer & """" et Me.cboImprimante.DefaultValue = Chr(34) & NomPrt & Chr(34) au lieu de Me.cboImprimante.DefaultValue = NomPrt
Toujours dans cette procédure, pourquoi exécuter la procédure CocherCaseImprimante (NomPrt) puisque la 1ère fois la dernière imprimante lue est mise par défaut ou si l'initialisation a déjà été faite, c'est cette dernière qui est activée car récupérée dans la table tbPrtList? (Ligne mise en remarque dans la procédure)
J'ai testé sans la table tbPrtList, donc création --> Ok puis ensuite en modifiant l'imprimante par défaut, là encore Ok. A toi de faire d'autres tests ;-)
La base en retour: http://cjoint.com/?ddjni6LScR
PS : Penses à compacter ta bd (Menu Outils|Utilitaires de bd|Compacter). Après cette opération, la taille de la bd est passée de 2 Mo a 300 Ko.
Hello Eric, merci de la peine la voici réduite à sa + simple expression http://cjoint.com/?ddagQjNmTE bien à toi Pascal
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
re,
... c'est ce qui fait toute la différence entre un amateur comme moi et un maître ...
Tout fonctionne très bien maintenant
Oh, je ne suis qu'un amateur au même titre que toi. En fait, il est très fréquent que lors d'erreurs, on ne les retrouve pas car trop imprégné du code. Content que ca roule pour toi. Bonne continuation. -- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
re,
...
c'est ce qui fait toute la différence entre un amateur comme moi et un
maître ...
Tout fonctionne très bien maintenant
Oh, je ne suis qu'un amateur au même titre que toi.
En fait, il est très fréquent que lors d'erreurs,
on ne les retrouve pas car trop imprégné du code.
Content que ca roule pour toi. Bonne continuation.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
... c'est ce qui fait toute la différence entre un amateur comme moi et un maître ...
Tout fonctionne très bien maintenant
Oh, je ne suis qu'un amateur au même titre que toi. En fait, il est très fréquent que lors d'erreurs, on ne les retrouve pas car trop imprégné du code. Content que ca roule pour toi. Bonne continuation. -- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr