|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
bonsoir à tous,
sur mon appli j'ai placé un code afin de filtrer les postes pouvant accéder à la base de données. J'ai une dizaine de postes sensés pouvoir accéder, sur 7 d'entre eux le code fonctionne très bien mais malheureusement sur 3 autres ça "coince" et je n'arrive pas à trouver pourquoi. J'ai vérifié les références vba elles sont identiques. J'ai épuré le code au maximum afin de limiter les sources d'erreurs. Code :
__________________
|
||
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour
Je ne comprends pas ta chaine SQL, elle ne devrait pas marcher du tout.* J'écrirais plutôt : Code :
Sql = "SELECT * FROM Machines WHERE Machine ='" & Environ("computername") & "'" De plus, je ne vois pas l'utilité d'un recordset dans ton cas, mais une fonction de domaine (DLookup) serait plus appropriée ici pour une seule valeur (pour les fonctions de domaines il y a un tuto, voir mes tutos). De plus pense à indenter ton texte. Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
bonsoir Philippe
effectivement au depart la requete est ecrite de façon académique comme tu l'as écrite, néanmoins le problème était identique, disons que j'ai voulu tester.... ![]() De même pour le recordset, javais un code sous le coude, je l'ai adapté pour le fun, pour comprendre comment ça marchait, je fonctionne comme ça.... Alors puisque tu en parles, je vais tester avec un DLookup auquel je n'avais pas pensé. Il n'en reste pas moins que j'aimerais bien comprendre
__________________
|
|
|
00
|
|
|
#4 | ||
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
re....
bon ben voilà, je gère ça avec un Dlookup comme tu le suggérais et ça marche. (à tester au bureau sur les postes posant problème) Code :
__________________
|
||
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
je crois que j'ai cerné le problème, en fait les 3 ou 4 PC concernés buttent sur la variable d'environnement (je crois que c'est comme ça que ça s'appelle
Environ("computer") Ils ne veulent absolument pas la reconnaitre que ce soit par exemple pour donner la valeur à une variable , style : OrdiLocal = Environ("computer") Ou que ce soit au sein d'une requete en tant que critere avec cette synthaxe Environ(""computer""). Quelqu'un saurait-il me dire ce que je dois modifier ou ajouter sur les postes concernés pour franchir cet écueil ?
__________________
|
|
|
00
|
|
|
#6 |
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
Salut,
Tu as testé sur ces 3 postes, dans la fenêtre d'exécution : Et verifié ce qu'elle te renvoie et si ça correspond au nom de machine sauvegardé dans ta table ? A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
je vais retester ça tout à l'heure mais de memoire ça me donne une msgbox vide
__________________
|
|
|
00
|
|
|
#8 |
![]() ![]() |
Bonjour,
Effectivement, il semble que cette fonction ne retourne pas toujours le résultat attendu. Il y a quelques anciennes discussions à ce sujet sur le forum. Je ne crois pas que la cause n'ait jamais été véritablement établie. Il existe une autre méthode avec l'API GetComputerName (voir la FAQ ou le forum). Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor) Ici, on ne perd pas de temps ! On en passe... Ce message (ou un autre) vous a aidé ? Votez pour lui avec
|
|
|
00
|
|
|
#9 |
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
bilan de l'essai :
Environ("Computer") me retourne bien le nom du poste dans une msgbox à l'ouverture d'un form par contre sur la ligne : Code :
OrdiLocal = nz(Dlookup("Machine", "Machines", "Machine = Environ(""computername"") "), 0) idem sur la ligne sql : Code :
sql = "INSERT INTO JournalAcces ( DateHeure, Machine) SELECT Now() AS Expr1, Environ(""computername"") Je vais tester le "GetComputerName"
__________________
|
|
|
00
|
|
|
#10 | ||
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
C'est ok pour moi avec ça :
Code :
__________________
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com