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

fonction intégrée et runtime access

3 réponses
Avatar
gildor
bonjour =E0 tous,
dans une requete (access 2000) j'utilise la fonction=20
environ() pour r=E9cup=E9rer le nom de machine et je=20
l'affiche dans une zone texte. =E7a marche sans probl=E8me=20
quelque soit la version de window (98,nt,2000) par contre=20
=E7a ne marche pas sur un poste avec le runtime access.
pouvez vous m'aider =E0 comprendre. faut-il utiliser une=20
fonction avec les api.
merci de votre aide

3 réponses

Avatar
Raymond [mvp]
Bonjour.

pourquoi utilises-tu une requête pour charger un contrôle texte ?
Me.Texte1 = Environ("computername")

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.kynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA


"gildor" a écrit dans le message de
news:0cac01c3a554$1b8da750$
bonjour à tous,
dans une requete (access 2000) j'utilise la fonction
environ() pour récupérer le nom de machine et je
l'affiche dans une zone texte. ça marche sans problème
quelque soit la version de window (98,nt,2000) par contre
ça ne marche pas sur un poste avec le runtime access.
pouvez vous m'aider à comprendre. faut-il utiliser une
fonction avec les api.
merci de votre aide
Avatar
-----Message d'origine-----
Bonjour.

pourquoi utilises-tu une requête pour charger un
contrôle texte ?

Me.Texte1 = Environ("computername")

-- @+

Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.kynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA


"gildor" a écrit dans le
message de

news:0cac01c3a554$1b8da750$
bonjour à tous,
dans une requete (access 2000) j'utilise la fonction
environ() pour récupérer le nom de machine et je
l'affiche dans une zone texte. ça marche sans problème
quelque soit la version de window (98,nt,2000) par contre
ça ne marche pas sur un poste avec le runtime access.
pouvez vous m'aider à comprendre. faut-il utiliser une
fonction avec les api.
merci de votre aide


.Raymond,
merci pour la réponse. voici quelques précisions : j'ai

une table "machine" avec 1 champ IDmachine(index sans
doublons & 1 champ "service" (chaque service peut avoir
plusieurs IDmachine). je veux en récuperant l'IDmachine
avec la fonction environ() afficher le champ "service".je
place lafonction environ() dans la requête.
ça fonctionne sans probléme sur un poste(w98,w2k)ace
access installé mais pas sur w95 et le runtime.merci de
l'indulgence pour les explications difficile, je suis
autodidacte simplement.
@+ gilbert

Avatar
Anor
Bonjour,

:

| merci pour la réponse. voici quelques précisions : j'ai
| une table "machine" avec 1 champ IDmachine(index sans
| doublons & 1 champ "service" (chaque service peut avoir
| plusieurs IDmachine). je veux en récuperant l'IDmachine
| avec la fonction environ() afficher le champ "service".je
| place lafonction environ() dans la requête.
| ça fonctionne sans probléme sur un poste(w98,w2k)ace
| access installé mais pas sur w95 et le runtime.merci de
| l'indulgence pour les explications difficile, je suis
| autodidacte simplement.
| @+ gilbert

je ne comprends pas pourquoi ça marche sous Win98 (normalement, environ("computername") renvoie
"" sous win98

Essaye avec l'API pour voir :

Private Declare Function api_GetComputerName _
Lib "kernel32" Alias "GetComputerNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long

Public Function fComputerName() As String

Dim NBuffer As String
Dim Buffsize As Long

Buffsize = 16
NBuffer = Space$(Buffsize)

Call api_GetComputerName(NBuffer, Buffsize)
fComputerName = Trim$(NBuffer)

If Right(fComputerName, 1) = Chr(0) Then
fComputerName = Left(fComputerName, Len(fComputerName) - 1)
End If
End Function

Ensuite il y a 3 possibilités :
1 - Le contenu de la fonction est mis en valeur par défaut d'un champ de la table 2
=> une requête avec une liaison 1 à plusieurs entre table1 et table2 sur le champ ID
permettra de récupérer le service

2 - Le contenu de la fonction ne concerne que l'ordinateur en cours, et n'est pas stocké, juste
affiché
=> un dlookup("Service","Table1","ID ='" & fConputername() & "'")
devrait faire l'affaire

3 - Pour récupérer le nom du service, on peut effectivement aussi créer une requête sur la table
Machine
qui n'affichera qu'une seule valeur en fonction du critère sur l'IDMachine renvoyé par la
fonction.
Je faisais comme ça aussi à mes débuts, et je me demande si ce n'est pas plus rapide d'exécution
que la fonction de domaine
dlookup. à voir...

--
à+
Arnaud
--------------------------------------------------
Avant toute chose : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum, merci. ##
--------------------------------------------------