MsgBox incontournable? - Petit casse-tête pour experts
5 réponses
Alain \(74\)
Bonjour à tous,
Ma question est à la fin du message...
Pour lister les ordinateurs connectés sur un réseau peer to peer le code
suivant est utilisé dans un formulaire possédant un bouton nommé
"cmdCréeFichier":
***Clic sur le bouton cmdCréeFichier
Private Sub cmdCréeFichier_Click()
On Error Resume Next
Dim i As Integer
Kill "C:\listeréseau.txt" 'Supprime le fichier s'il existe
Dim k As String
If Left(GetWinVersion(), 1) = "4" Then
'Sous Windows 98
k = "C:\command.com /C NET VIEW >c:\listeréseau.txt"
Else
'Sous Win XP
k = "C:\windows\system32\command.com /C NET VIEW
>c:\listeréseau.txt"
End If
'DoEvents
Shell k, vbHide
MsgBox "La liste des ordinateurs du réseau a été enregistrée dans le
fichier listeréseau.txt situé dans le répertoire C:\"
LitFichier 'Appel à la fonction "LitFichier"
End Sub
****************************
Public Function LitFichier()
Dim Contenu As String
Dim ContenuFichier
DoEvents
Open "c:\listeréseau.txt" For Input As #1
Do While Not EOF(1) 'Boucle
Line Input #1, ContenuFichier 'Lecture de la ligne
If Trim(ContenuFichier) <> "" Then
If Left(Trim(ContenuFichier), 2) = "\\" Then
ContenuFichier = Trim(Mid(ContenuFichier, 3,
InStr(ContenuFichier, Chr(32))))
If Trim(Contenu) <> "" Then
Contenu = Contenu & Chr(13) & ContenuFichier
Else
Contenu = ContenuFichier
End If
End If
End If
Loop
Close #1
DoEvents
MsgBox "Les ordinateurs du réseau sont les suivants:" & vbCrLf & Contenu
End Function
*******************************
NOTA:
Un module global contient le code suivant permettant de déterminer la
version Windows avec la fonction GetWinVersion (On considère ici que l'on
est en 98 ou en XP)
Declare Function GetVersion Lib "Kernel32" () As Long
_____________________________________________
Function GetWinVersion()
Dim ver As Long, WinVer As Long, DosVer As Long
Dim WindowsVersion As String, DosVersion As String
ver = GetVersion()
WinVer = ver And &HFFF&
GetWinVersion = Format((WinVer Mod 256) + ((WinVer \ 256) / 100),
"Fixed")
End Function
_____________________________________________
QUESTION:
On obtient un résultat lorsque la ligne suivante est présente dans le code
"sur clic" du bouton cmdCréeFichier.
MsgBox "La liste des ordinateurs du réseau a été créée." & vbCrLf & "Le
fichier listeréseau.txt a été créé dans le répertoire C:\"
Si on neutralise cette ligne en la mettant en commentaire il n'y a plus de
résultat.
Quelqu'un connaît-il l'astuce pour éviter la ligne MsgBox?
Je peux adresser le fichier exemple à ceux qui sont intéressés.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
John Fuss
J'ai regardé vite fait, le MsgBox ne fait qu'afficher un msg message pardon) donc ne devrait pas poser de pbl (problème encore pardon). Mais peut-être que ce message permet au fichier 'C:listeréseau.txt' de se créer. Tu peux donc utiliser des doEvents pour redonner la main au système (hésite pas à en mettre plusieurs voire même dans une boucle) ou alors essayer un Application.Wait TimeSerial(hour(now), minute(now), seconde(now)+4) pour attendre 4 secondes.
John
"Alain (74)" a écrit dans le message de news:
Bonjour à tous, Ma question est à la fin du message...
Pour lister les ordinateurs connectés sur un réseau peer to peer le code suivant est utilisé dans un formulaire possédant un bouton nommé "cmdCréeFichier":
***Clic sur le bouton cmdCréeFichier Private Sub cmdCréeFichier_Click() On Error Resume Next Dim i As Integer Kill "C:listeréseau.txt" 'Supprime le fichier s'il existe Dim k As String If Left(GetWinVersion(), 1) = "4" Then 'Sous Windows 98 k = "C:command.com /C NET VIEW >c:listeréseau.txt" Else 'Sous Win XP k = "C:windowssystem32command.com /C NET VIEW
c:listeréseau.txt" End If
'DoEvents Shell k, vbHide MsgBox "La liste des ordinateurs du réseau a été enregistrée dans le fichier listeréseau.txt situé dans le répertoire C:" LitFichier 'Appel à la fonction "LitFichier" End Sub **************************** Public Function LitFichier() Dim Contenu As String Dim ContenuFichier DoEvents Open "c:listeréseau.txt" For Input As #1 Do While Not EOF(1) 'Boucle Line Input #1, ContenuFichier 'Lecture de la ligne If Trim(ContenuFichier) <> "" Then If Left(Trim(ContenuFichier), 2) = "" Then ContenuFichier = Trim(Mid(ContenuFichier, 3, InStr(ContenuFichier, Chr(32)))) If Trim(Contenu) <> "" Then Contenu = Contenu & Chr(13) & ContenuFichier Else Contenu = ContenuFichier End If End If End If Loop Close #1 DoEvents MsgBox "Les ordinateurs du réseau sont les suivants:" & vbCrLf & Contenu
End Function ******************************* NOTA: Un module global contient le code suivant permettant de déterminer la version Windows avec la fonction GetWinVersion (On considère ici que l'on est en 98 ou en XP)
Declare Function GetVersion Lib "Kernel32" () As Long _____________________________________________ Function GetWinVersion() Dim ver As Long, WinVer As Long, DosVer As Long Dim WindowsVersion As String, DosVersion As String
ver = GetVersion()
WinVer = ver And &HFFF& GetWinVersion = Format((WinVer Mod 256) + ((WinVer 256) / 100), "Fixed") End Function _____________________________________________
QUESTION: On obtient un résultat lorsque la ligne suivante est présente dans le code "sur clic" du bouton cmdCréeFichier.
MsgBox "La liste des ordinateurs du réseau a été créée." & vbCrLf & "Le fichier listeréseau.txt a été créé dans le répertoire C:"
Si on neutralise cette ligne en la mettant en commentaire il n'y a plus de résultat. Quelqu'un connaît-il l'astuce pour éviter la ligne MsgBox?
Je peux adresser le fichier exemple à ceux qui sont intéressés.
Merci pour toutes vos suggestions
AE
J'ai regardé vite fait, le MsgBox ne fait qu'afficher un msg message pardon)
donc ne devrait pas poser de pbl (problème encore pardon). Mais peut-être
que ce message permet au fichier 'C:listeréseau.txt' de se créer. Tu peux
donc utiliser des doEvents pour redonner la main au système (hésite pas à en
mettre plusieurs voire même dans une boucle) ou alors essayer un
Application.Wait TimeSerial(hour(now), minute(now), seconde(now)+4) pour
attendre 4 secondes.
John
"Alain (74)" <ae@crefia.com> a écrit dans le message de
news:u4w5WnXxDHA.2508@TK2MSFTNGP12.phx.gbl...
Bonjour à tous,
Ma question est à la fin du message...
Pour lister les ordinateurs connectés sur un réseau peer to peer le code
suivant est utilisé dans un formulaire possédant un bouton nommé
"cmdCréeFichier":
***Clic sur le bouton cmdCréeFichier
Private Sub cmdCréeFichier_Click()
On Error Resume Next
Dim i As Integer
Kill "C:listeréseau.txt" 'Supprime le fichier s'il existe
Dim k As String
If Left(GetWinVersion(), 1) = "4" Then
'Sous Windows 98
k = "C:command.com /C NET VIEW >c:listeréseau.txt"
Else
'Sous Win XP
k = "C:windowssystem32command.com /C NET VIEW
c:listeréseau.txt"
End If
'DoEvents
Shell k, vbHide
MsgBox "La liste des ordinateurs du réseau a été enregistrée dans le
fichier listeréseau.txt situé dans le répertoire C:"
LitFichier 'Appel à la fonction "LitFichier"
End Sub
****************************
Public Function LitFichier()
Dim Contenu As String
Dim ContenuFichier
DoEvents
Open "c:listeréseau.txt" For Input As #1
Do While Not EOF(1) 'Boucle
Line Input #1, ContenuFichier 'Lecture de la ligne
If Trim(ContenuFichier) <> "" Then
If Left(Trim(ContenuFichier), 2) = "\" Then
ContenuFichier = Trim(Mid(ContenuFichier, 3,
InStr(ContenuFichier, Chr(32))))
If Trim(Contenu) <> "" Then
Contenu = Contenu & Chr(13) & ContenuFichier
Else
Contenu = ContenuFichier
End If
End If
End If
Loop
Close #1
DoEvents
MsgBox "Les ordinateurs du réseau sont les suivants:" & vbCrLf &
Contenu
End Function
*******************************
NOTA:
Un module global contient le code suivant permettant de déterminer la
version Windows avec la fonction GetWinVersion (On considère ici que l'on
est en 98 ou en XP)
Declare Function GetVersion Lib "Kernel32" () As Long
_____________________________________________
Function GetWinVersion()
Dim ver As Long, WinVer As Long, DosVer As Long
Dim WindowsVersion As String, DosVersion As String
ver = GetVersion()
WinVer = ver And &HFFF&
GetWinVersion = Format((WinVer Mod 256) + ((WinVer 256) / 100),
"Fixed")
End Function
_____________________________________________
QUESTION:
On obtient un résultat lorsque la ligne suivante est présente dans le code
"sur clic" du bouton cmdCréeFichier.
MsgBox "La liste des ordinateurs du réseau a été créée." & vbCrLf & "Le
fichier listeréseau.txt a été créé dans le répertoire C:"
Si on neutralise cette ligne en la mettant en commentaire il n'y a plus de
résultat.
Quelqu'un connaît-il l'astuce pour éviter la ligne MsgBox?
Je peux adresser le fichier exemple à ceux qui sont intéressés.
J'ai regardé vite fait, le MsgBox ne fait qu'afficher un msg message pardon) donc ne devrait pas poser de pbl (problème encore pardon). Mais peut-être que ce message permet au fichier 'C:listeréseau.txt' de se créer. Tu peux donc utiliser des doEvents pour redonner la main au système (hésite pas à en mettre plusieurs voire même dans une boucle) ou alors essayer un Application.Wait TimeSerial(hour(now), minute(now), seconde(now)+4) pour attendre 4 secondes.
John
"Alain (74)" a écrit dans le message de news:
Bonjour à tous, Ma question est à la fin du message...
Pour lister les ordinateurs connectés sur un réseau peer to peer le code suivant est utilisé dans un formulaire possédant un bouton nommé "cmdCréeFichier":
***Clic sur le bouton cmdCréeFichier Private Sub cmdCréeFichier_Click() On Error Resume Next Dim i As Integer Kill "C:listeréseau.txt" 'Supprime le fichier s'il existe Dim k As String If Left(GetWinVersion(), 1) = "4" Then 'Sous Windows 98 k = "C:command.com /C NET VIEW >c:listeréseau.txt" Else 'Sous Win XP k = "C:windowssystem32command.com /C NET VIEW
c:listeréseau.txt" End If
'DoEvents Shell k, vbHide MsgBox "La liste des ordinateurs du réseau a été enregistrée dans le fichier listeréseau.txt situé dans le répertoire C:" LitFichier 'Appel à la fonction "LitFichier" End Sub **************************** Public Function LitFichier() Dim Contenu As String Dim ContenuFichier DoEvents Open "c:listeréseau.txt" For Input As #1 Do While Not EOF(1) 'Boucle Line Input #1, ContenuFichier 'Lecture de la ligne If Trim(ContenuFichier) <> "" Then If Left(Trim(ContenuFichier), 2) = "" Then ContenuFichier = Trim(Mid(ContenuFichier, 3, InStr(ContenuFichier, Chr(32)))) If Trim(Contenu) <> "" Then Contenu = Contenu & Chr(13) & ContenuFichier Else Contenu = ContenuFichier End If End If End If Loop Close #1 DoEvents MsgBox "Les ordinateurs du réseau sont les suivants:" & vbCrLf & Contenu
End Function ******************************* NOTA: Un module global contient le code suivant permettant de déterminer la version Windows avec la fonction GetWinVersion (On considère ici que l'on est en 98 ou en XP)
Declare Function GetVersion Lib "Kernel32" () As Long _____________________________________________ Function GetWinVersion() Dim ver As Long, WinVer As Long, DosVer As Long Dim WindowsVersion As String, DosVersion As String
ver = GetVersion()
WinVer = ver And &HFFF& GetWinVersion = Format((WinVer Mod 256) + ((WinVer 256) / 100), "Fixed") End Function _____________________________________________
QUESTION: On obtient un résultat lorsque la ligne suivante est présente dans le code "sur clic" du bouton cmdCréeFichier.
MsgBox "La liste des ordinateurs du réseau a été créée." & vbCrLf & "Le fichier listeréseau.txt a été créé dans le répertoire C:"
Si on neutralise cette ligne en la mettant en commentaire il n'y a plus de résultat. Quelqu'un connaît-il l'astuce pour éviter la ligne MsgBox?
Je peux adresser le fichier exemple à ceux qui sont intéressés.
Merci pour toutes vos suggestions
AE
Alain \(74\)
Bonjour, Merci pour cet avis . Je ne l'avais pas précisé mais j'ai essayé tout ça en vain (DoEvents, Attente etc...) Rien n'y fait. Jusqu'à trouver l'astuce, je n'ai rien trouvé d'autre que faire appel à un Msgbox pour voir le retour d'un résultat. A première vue il semble que ce "défaut" est lié à la fonction shell qui est utilisée... mais je n'ai pas trouvé de documentation suffisante sur le sujet.
PS: Je ne connais pas la méthode WAIT de l'objet Application. Elle génère chez moi un msg d'erreur et je n'ai trouvé aucune documentation à son sujet. Est-ce une nouveauté d'ACCESS 2003? Je suis sous 2002. AE
"John Fuss" a écrit dans le message de news:brsima$5bc$
J'ai regardé vite fait, le MsgBox ne fait qu'afficher un msg message pardon)
donc ne devrait pas poser de pbl (problème encore pardon). Mais peut-être que ce message permet au fichier 'C:listeréseau.txt' de se créer. Tu peux donc utiliser des doEvents pour redonner la main au système (hésite pas à en
mettre plusieurs voire même dans une boucle) ou alors essayer un Application.Wait TimeSerial(hour(now), minute(now), seconde(now)+4) pour attendre 4 secondes.
John
"Alain (74)" a écrit dans le message de news:
Bonjour à tous, Ma question est à la fin du message...
Pour lister les ordinateurs connectés sur un réseau peer to peer le code suivant est utilisé dans un formulaire possédant un bouton nommé "cmdCréeFichier":
***Clic sur le bouton cmdCréeFichier Private Sub cmdCréeFichier_Click() On Error Resume Next Dim i As Integer Kill "C:listeréseau.txt" 'Supprime le fichier s'il existe Dim k As String If Left(GetWinVersion(), 1) = "4" Then 'Sous Windows 98 k = "C:command.com /C NET VIEW >c:listeréseau.txt" Else 'Sous Win XP k = "C:windowssystem32command.com /C NET VIEW
c:listeréseau.txt" End If
'DoEvents Shell k, vbHide MsgBox "La liste des ordinateurs du réseau a été enregistrée dans le fichier listeréseau.txt situé dans le répertoire C:" LitFichier 'Appel à la fonction "LitFichier" End Sub **************************** Public Function LitFichier() Dim Contenu As String Dim ContenuFichier DoEvents Open "c:listeréseau.txt" For Input As #1 Do While Not EOF(1) 'Boucle Line Input #1, ContenuFichier 'Lecture de la ligne If Trim(ContenuFichier) <> "" Then If Left(Trim(ContenuFichier), 2) = "" Then ContenuFichier = Trim(Mid(ContenuFichier, 3, InStr(ContenuFichier, Chr(32)))) If Trim(Contenu) <> "" Then Contenu = Contenu & Chr(13) & ContenuFichier Else Contenu = ContenuFichier End If End If End If Loop Close #1 DoEvents MsgBox "Les ordinateurs du réseau sont les suivants:" & vbCrLf & Contenu
End Function ******************************* NOTA: Un module global contient le code suivant permettant de déterminer la version Windows avec la fonction GetWinVersion (On considère ici que l'on
est en 98 ou en XP)
Declare Function GetVersion Lib "Kernel32" () As Long _____________________________________________ Function GetWinVersion() Dim ver As Long, WinVer As Long, DosVer As Long Dim WindowsVersion As String, DosVersion As String
ver = GetVersion()
WinVer = ver And &HFFF& GetWinVersion = Format((WinVer Mod 256) + ((WinVer 256) / 100), "Fixed") End Function _____________________________________________
QUESTION: On obtient un résultat lorsque la ligne suivante est présente dans le code
"sur clic" du bouton cmdCréeFichier.
MsgBox "La liste des ordinateurs du réseau a été créée." & vbCrLf & "Le fichier listeréseau.txt a été créé dans le répertoire C:"
Si on neutralise cette ligne en la mettant en commentaire il n'y a plus de
résultat. Quelqu'un connaît-il l'astuce pour éviter la ligne MsgBox?
Je peux adresser le fichier exemple à ceux qui sont intéressés.
Merci pour toutes vos suggestions
AE
Bonjour,
Merci pour cet avis . Je ne l'avais pas précisé mais j'ai essayé tout ça en
vain (DoEvents, Attente etc...) Rien n'y fait.
Jusqu'à trouver l'astuce, je n'ai rien trouvé d'autre que faire appel à un
Msgbox pour voir le retour d'un résultat.
A première vue il semble que ce "défaut" est lié à la fonction shell qui est
utilisée... mais je n'ai pas trouvé de documentation suffisante sur le
sujet.
PS: Je ne connais pas la méthode WAIT de l'objet Application. Elle génère
chez moi un msg d'erreur et je n'ai trouvé aucune documentation à son sujet.
Est-ce une nouveauté d'ACCESS 2003? Je suis sous 2002.
AE
"John Fuss" <newskob650@yahoo.fr> a écrit dans le message de
news:brsima$5bc$1@s1.read.news.oleane.net...
J'ai regardé vite fait, le MsgBox ne fait qu'afficher un msg message
pardon)
donc ne devrait pas poser de pbl (problème encore pardon). Mais peut-être
que ce message permet au fichier 'C:listeréseau.txt' de se créer. Tu peux
donc utiliser des doEvents pour redonner la main au système (hésite pas à
en
mettre plusieurs voire même dans une boucle) ou alors essayer un
Application.Wait TimeSerial(hour(now), minute(now), seconde(now)+4) pour
attendre 4 secondes.
John
"Alain (74)" <ae@crefia.com> a écrit dans le message de
news:u4w5WnXxDHA.2508@TK2MSFTNGP12.phx.gbl...
Bonjour à tous,
Ma question est à la fin du message...
Pour lister les ordinateurs connectés sur un réseau peer to peer le code
suivant est utilisé dans un formulaire possédant un bouton nommé
"cmdCréeFichier":
***Clic sur le bouton cmdCréeFichier
Private Sub cmdCréeFichier_Click()
On Error Resume Next
Dim i As Integer
Kill "C:listeréseau.txt" 'Supprime le fichier s'il existe
Dim k As String
If Left(GetWinVersion(), 1) = "4" Then
'Sous Windows 98
k = "C:command.com /C NET VIEW >c:listeréseau.txt"
Else
'Sous Win XP
k = "C:windowssystem32command.com /C NET VIEW
c:listeréseau.txt"
End If
'DoEvents
Shell k, vbHide
MsgBox "La liste des ordinateurs du réseau a été enregistrée dans le
fichier listeréseau.txt situé dans le répertoire C:"
LitFichier 'Appel à la fonction "LitFichier"
End Sub
****************************
Public Function LitFichier()
Dim Contenu As String
Dim ContenuFichier
DoEvents
Open "c:listeréseau.txt" For Input As #1
Do While Not EOF(1) 'Boucle
Line Input #1, ContenuFichier 'Lecture de la ligne
If Trim(ContenuFichier) <> "" Then
If Left(Trim(ContenuFichier), 2) = "\" Then
ContenuFichier = Trim(Mid(ContenuFichier, 3,
InStr(ContenuFichier, Chr(32))))
If Trim(Contenu) <> "" Then
Contenu = Contenu & Chr(13) & ContenuFichier
Else
Contenu = ContenuFichier
End If
End If
End If
Loop
Close #1
DoEvents
MsgBox "Les ordinateurs du réseau sont les suivants:" & vbCrLf &
Contenu
End Function
*******************************
NOTA:
Un module global contient le code suivant permettant de déterminer la
version Windows avec la fonction GetWinVersion (On considère ici que
l'on
est en 98 ou en XP)
Declare Function GetVersion Lib "Kernel32" () As Long
_____________________________________________
Function GetWinVersion()
Dim ver As Long, WinVer As Long, DosVer As Long
Dim WindowsVersion As String, DosVersion As String
ver = GetVersion()
WinVer = ver And &HFFF&
GetWinVersion = Format((WinVer Mod 256) + ((WinVer 256) / 100),
"Fixed")
End Function
_____________________________________________
QUESTION:
On obtient un résultat lorsque la ligne suivante est présente dans le
code
"sur clic" du bouton cmdCréeFichier.
MsgBox "La liste des ordinateurs du réseau a été créée." & vbCrLf & "Le
fichier listeréseau.txt a été créé dans le répertoire C:"
Si on neutralise cette ligne en la mettant en commentaire il n'y a plus
de
résultat.
Quelqu'un connaît-il l'astuce pour éviter la ligne MsgBox?
Je peux adresser le fichier exemple à ceux qui sont intéressés.
Bonjour, Merci pour cet avis . Je ne l'avais pas précisé mais j'ai essayé tout ça en vain (DoEvents, Attente etc...) Rien n'y fait. Jusqu'à trouver l'astuce, je n'ai rien trouvé d'autre que faire appel à un Msgbox pour voir le retour d'un résultat. A première vue il semble que ce "défaut" est lié à la fonction shell qui est utilisée... mais je n'ai pas trouvé de documentation suffisante sur le sujet.
PS: Je ne connais pas la méthode WAIT de l'objet Application. Elle génère chez moi un msg d'erreur et je n'ai trouvé aucune documentation à son sujet. Est-ce une nouveauté d'ACCESS 2003? Je suis sous 2002. AE
"John Fuss" a écrit dans le message de news:brsima$5bc$
J'ai regardé vite fait, le MsgBox ne fait qu'afficher un msg message pardon)
donc ne devrait pas poser de pbl (problème encore pardon). Mais peut-être que ce message permet au fichier 'C:listeréseau.txt' de se créer. Tu peux donc utiliser des doEvents pour redonner la main au système (hésite pas à en
mettre plusieurs voire même dans une boucle) ou alors essayer un Application.Wait TimeSerial(hour(now), minute(now), seconde(now)+4) pour attendre 4 secondes.
John
"Alain (74)" a écrit dans le message de news:
Bonjour à tous, Ma question est à la fin du message...
Pour lister les ordinateurs connectés sur un réseau peer to peer le code suivant est utilisé dans un formulaire possédant un bouton nommé "cmdCréeFichier":
***Clic sur le bouton cmdCréeFichier Private Sub cmdCréeFichier_Click() On Error Resume Next Dim i As Integer Kill "C:listeréseau.txt" 'Supprime le fichier s'il existe Dim k As String If Left(GetWinVersion(), 1) = "4" Then 'Sous Windows 98 k = "C:command.com /C NET VIEW >c:listeréseau.txt" Else 'Sous Win XP k = "C:windowssystem32command.com /C NET VIEW
c:listeréseau.txt" End If
'DoEvents Shell k, vbHide MsgBox "La liste des ordinateurs du réseau a été enregistrée dans le fichier listeréseau.txt situé dans le répertoire C:" LitFichier 'Appel à la fonction "LitFichier" End Sub **************************** Public Function LitFichier() Dim Contenu As String Dim ContenuFichier DoEvents Open "c:listeréseau.txt" For Input As #1 Do While Not EOF(1) 'Boucle Line Input #1, ContenuFichier 'Lecture de la ligne If Trim(ContenuFichier) <> "" Then If Left(Trim(ContenuFichier), 2) = "" Then ContenuFichier = Trim(Mid(ContenuFichier, 3, InStr(ContenuFichier, Chr(32)))) If Trim(Contenu) <> "" Then Contenu = Contenu & Chr(13) & ContenuFichier Else Contenu = ContenuFichier End If End If End If Loop Close #1 DoEvents MsgBox "Les ordinateurs du réseau sont les suivants:" & vbCrLf & Contenu
End Function ******************************* NOTA: Un module global contient le code suivant permettant de déterminer la version Windows avec la fonction GetWinVersion (On considère ici que l'on
est en 98 ou en XP)
Declare Function GetVersion Lib "Kernel32" () As Long _____________________________________________ Function GetWinVersion() Dim ver As Long, WinVer As Long, DosVer As Long Dim WindowsVersion As String, DosVersion As String
ver = GetVersion()
WinVer = ver And &HFFF& GetWinVersion = Format((WinVer Mod 256) + ((WinVer 256) / 100), "Fixed") End Function _____________________________________________
QUESTION: On obtient un résultat lorsque la ligne suivante est présente dans le code
"sur clic" du bouton cmdCréeFichier.
MsgBox "La liste des ordinateurs du réseau a été créée." & vbCrLf & "Le fichier listeréseau.txt a été créé dans le répertoire C:"
Si on neutralise cette ligne en la mettant en commentaire il n'y a plus de
résultat. Quelqu'un connaît-il l'astuce pour éviter la ligne MsgBox?
Je peux adresser le fichier exemple à ceux qui sont intéressés.
Merci pour toutes vos suggestions
AE
3stone
Salut,
"Alain (74)"
A première vue il semble que ce "défaut" est lié à la fonction shell qui est utilisée... mais je n'ai pas trouvé de documentation suffisante sur le sujet.
Ce n'est pas un "défaut"... Shell n'attend pas... c'est tout ;-)
Regarde et utilise ceci : http://www.mvps.org/accessfr/apis/api0004.htm
-- A+ Pierre (3stone) Access MVP -------------------------------------- Une pour tous, tous pour une ;-) http://users.skynet.be/mpfa/charte.htm --------------------------------------
Salut,
"Alain (74)"
A première vue il semble que ce "défaut" est lié à la fonction shell qui est
utilisée... mais je n'ai pas trouvé de documentation suffisante sur le
sujet.
Ce n'est pas un "défaut"...
Shell n'attend pas... c'est tout ;-)
Regarde et utilise ceci : http://www.mvps.org/accessfr/apis/api0004.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------
A première vue il semble que ce "défaut" est lié à la fonction shell qui est utilisée... mais je n'ai pas trouvé de documentation suffisante sur le sujet.
Ce n'est pas un "défaut"... Shell n'attend pas... c'est tout ;-)
Regarde et utilise ceci : http://www.mvps.org/accessfr/apis/api0004.htm
-- A+ Pierre (3stone) Access MVP -------------------------------------- Une pour tous, tous pour une ;-) http://users.skynet.be/mpfa/charte.htm --------------------------------------
Alain \(74\)
Voilà la solution... Il fallait la trouver. M Terry Kreft fait de bien belles choses depuis longtemps! Merci. AE
"3stone" a écrit dans le message de news:
Salut,
"Alain (74)"
A première vue il semble que ce "défaut" est lié à la fonction shell qui est
utilisée... mais je n'ai pas trouvé de documentation suffisante sur le sujet.
Ce n'est pas un "défaut"... Shell n'attend pas... c'est tout ;-)
Regarde et utilise ceci : http://www.mvps.org/accessfr/apis/api0004.htm
-- A+ Pierre (3stone) Access MVP -------------------------------------- Une pour tous, tous pour une ;-) http://users.skynet.be/mpfa/charte.htm --------------------------------------
Voilà la solution... Il fallait la trouver. M Terry Kreft fait de bien
belles choses depuis longtemps!
Merci.
AE
"3stone" <3stone@skynet.be> a écrit dans le message de
news:OQoVC9YxDHA.1088@tk2msftngp13.phx.gbl...
Salut,
"Alain (74)"
A première vue il semble que ce "défaut" est lié à la fonction shell qui
est
utilisée... mais je n'ai pas trouvé de documentation suffisante sur le
sujet.
Ce n'est pas un "défaut"...
Shell n'attend pas... c'est tout ;-)
Regarde et utilise ceci : http://www.mvps.org/accessfr/apis/api0004.htm
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------
Voilà la solution... Il fallait la trouver. M Terry Kreft fait de bien belles choses depuis longtemps! Merci. AE
"3stone" a écrit dans le message de news:
Salut,
"Alain (74)"
A première vue il semble que ce "défaut" est lié à la fonction shell qui est
utilisée... mais je n'ai pas trouvé de documentation suffisante sur le sujet.
Ce n'est pas un "défaut"... Shell n'attend pas... c'est tout ;-)
Regarde et utilise ceci : http://www.mvps.org/accessfr/apis/api0004.htm
-- A+ Pierre (3stone) Access MVP -------------------------------------- Une pour tous, tous pour une ;-) http://users.skynet.be/mpfa/charte.htm --------------------------------------
John Fuss
Effectivement c'est sous Excel le Application.Wait.....
John
"Alain (74)" a écrit dans le message de news:
Bonjour, Merci pour cet avis . Je ne l'avais pas précisé mais j'ai essayé tout ça en
vain (DoEvents, Attente etc...) Rien n'y fait. Jusqu'à trouver l'astuce, je n'ai rien trouvé d'autre que faire appel à un Msgbox pour voir le retour d'un résultat. A première vue il semble que ce "défaut" est lié à la fonction shell qui est
utilisée... mais je n'ai pas trouvé de documentation suffisante sur le sujet.
PS: Je ne connais pas la méthode WAIT de l'objet Application. Elle génère chez moi un msg d'erreur et je n'ai trouvé aucune documentation à son sujet.
Est-ce une nouveauté d'ACCESS 2003? Je suis sous 2002. AE
"John Fuss" a écrit dans le message de news:brsima$5bc$
J'ai regardé vite fait, le MsgBox ne fait qu'afficher un msg message pardon)
donc ne devrait pas poser de pbl (problème encore pardon). Mais peut-être
que ce message permet au fichier 'C:listeréseau.txt' de se créer. Tu peux
donc utiliser des doEvents pour redonner la main au système (hésite pas à
en
mettre plusieurs voire même dans une boucle) ou alors essayer un Application.Wait TimeSerial(hour(now), minute(now), seconde(now)+4) pour attendre 4 secondes.
John
"Alain (74)" a écrit dans le message de news:
Bonjour à tous, Ma question est à la fin du message...
Pour lister les ordinateurs connectés sur un réseau peer to peer le code
suivant est utilisé dans un formulaire possédant un bouton nommé "cmdCréeFichier":
***Clic sur le bouton cmdCréeFichier Private Sub cmdCréeFichier_Click() On Error Resume Next Dim i As Integer Kill "C:listeréseau.txt" 'Supprime le fichier s'il existe Dim k As String If Left(GetWinVersion(), 1) = "4" Then 'Sous Windows 98 k = "C:command.com /C NET VIEW >c:listeréseau.txt" Else 'Sous Win XP k = "C:windowssystem32command.com /C NET VIEW
c:listeréseau.txt" End If
'DoEvents Shell k, vbHide MsgBox "La liste des ordinateurs du réseau a été enregistrée dans le
fichier listeréseau.txt situé dans le répertoire C:" LitFichier 'Appel à la fonction "LitFichier" End Sub **************************** Public Function LitFichier() Dim Contenu As String Dim ContenuFichier DoEvents Open "c:listeréseau.txt" For Input As #1 Do While Not EOF(1) 'Boucle Line Input #1, ContenuFichier 'Lecture de la ligne If Trim(ContenuFichier) <> "" Then If Left(Trim(ContenuFichier), 2) = "" Then ContenuFichier = Trim(Mid(ContenuFichier, 3, InStr(ContenuFichier, Chr(32)))) If Trim(Contenu) <> "" Then Contenu = Contenu & Chr(13) & ContenuFichier Else Contenu = ContenuFichier End If End If End If Loop Close #1 DoEvents MsgBox "Les ordinateurs du réseau sont les suivants:" & vbCrLf & Contenu
End Function ******************************* NOTA: Un module global contient le code suivant permettant de déterminer la version Windows avec la fonction GetWinVersion (On considère ici que l'on
est en 98 ou en XP)
Declare Function GetVersion Lib "Kernel32" () As Long _____________________________________________ Function GetWinVersion() Dim ver As Long, WinVer As Long, DosVer As Long Dim WindowsVersion As String, DosVersion As String
ver = GetVersion()
WinVer = ver And &HFFF& GetWinVersion = Format((WinVer Mod 256) + ((WinVer 256) / 100),
"Fixed") End Function _____________________________________________
QUESTION: On obtient un résultat lorsque la ligne suivante est présente dans le code
"sur clic" du bouton cmdCréeFichier.
MsgBox "La liste des ordinateurs du réseau a été créée." & vbCrLf & "Le
fichier listeréseau.txt a été créé dans le répertoire C:"
Si on neutralise cette ligne en la mettant en commentaire il n'y a plus
de
résultat. Quelqu'un connaît-il l'astuce pour éviter la ligne MsgBox?
Je peux adresser le fichier exemple à ceux qui sont intéressés.
Merci pour toutes vos suggestions
AE
Effectivement c'est sous Excel le Application.Wait.....
John
"Alain (74)" <ae@crefia.com> a écrit dans le message de
news:eXTCCwYxDHA.1912@TK2MSFTNGP09.phx.gbl...
Bonjour,
Merci pour cet avis . Je ne l'avais pas précisé mais j'ai essayé tout ça
en
vain (DoEvents, Attente etc...) Rien n'y fait.
Jusqu'à trouver l'astuce, je n'ai rien trouvé d'autre que faire appel à un
Msgbox pour voir le retour d'un résultat.
A première vue il semble que ce "défaut" est lié à la fonction shell qui
est
utilisée... mais je n'ai pas trouvé de documentation suffisante sur le
sujet.
PS: Je ne connais pas la méthode WAIT de l'objet Application. Elle génère
chez moi un msg d'erreur et je n'ai trouvé aucune documentation à son
sujet.
Est-ce une nouveauté d'ACCESS 2003? Je suis sous 2002.
AE
"John Fuss" <newskob650@yahoo.fr> a écrit dans le message de
news:brsima$5bc$1@s1.read.news.oleane.net...
J'ai regardé vite fait, le MsgBox ne fait qu'afficher un msg message
pardon)
donc ne devrait pas poser de pbl (problème encore pardon). Mais
peut-être
que ce message permet au fichier 'C:listeréseau.txt' de se créer. Tu
peux
donc utiliser des doEvents pour redonner la main au système (hésite pas
à
en
mettre plusieurs voire même dans une boucle) ou alors essayer un
Application.Wait TimeSerial(hour(now), minute(now), seconde(now)+4) pour
attendre 4 secondes.
John
"Alain (74)" <ae@crefia.com> a écrit dans le message de
news:u4w5WnXxDHA.2508@TK2MSFTNGP12.phx.gbl...
Bonjour à tous,
Ma question est à la fin du message...
Pour lister les ordinateurs connectés sur un réseau peer to peer le
code
suivant est utilisé dans un formulaire possédant un bouton nommé
"cmdCréeFichier":
***Clic sur le bouton cmdCréeFichier
Private Sub cmdCréeFichier_Click()
On Error Resume Next
Dim i As Integer
Kill "C:listeréseau.txt" 'Supprime le fichier s'il existe
Dim k As String
If Left(GetWinVersion(), 1) = "4" Then
'Sous Windows 98
k = "C:command.com /C NET VIEW >c:listeréseau.txt"
Else
'Sous Win XP
k = "C:windowssystem32command.com /C NET VIEW
c:listeréseau.txt"
End If
'DoEvents
Shell k, vbHide
MsgBox "La liste des ordinateurs du réseau a été enregistrée dans
le
fichier listeréseau.txt situé dans le répertoire C:"
LitFichier 'Appel à la fonction "LitFichier"
End Sub
****************************
Public Function LitFichier()
Dim Contenu As String
Dim ContenuFichier
DoEvents
Open "c:listeréseau.txt" For Input As #1
Do While Not EOF(1) 'Boucle
Line Input #1, ContenuFichier 'Lecture de la ligne
If Trim(ContenuFichier) <> "" Then
If Left(Trim(ContenuFichier), 2) = "\" Then
ContenuFichier = Trim(Mid(ContenuFichier, 3,
InStr(ContenuFichier, Chr(32))))
If Trim(Contenu) <> "" Then
Contenu = Contenu & Chr(13) & ContenuFichier
Else
Contenu = ContenuFichier
End If
End If
End If
Loop
Close #1
DoEvents
MsgBox "Les ordinateurs du réseau sont les suivants:" & vbCrLf &
Contenu
End Function
*******************************
NOTA:
Un module global contient le code suivant permettant de déterminer la
version Windows avec la fonction GetWinVersion (On considère ici que
l'on
est en 98 ou en XP)
Declare Function GetVersion Lib "Kernel32" () As Long
_____________________________________________
Function GetWinVersion()
Dim ver As Long, WinVer As Long, DosVer As Long
Dim WindowsVersion As String, DosVersion As String
ver = GetVersion()
WinVer = ver And &HFFF&
GetWinVersion = Format((WinVer Mod 256) + ((WinVer 256) /
100),
"Fixed")
End Function
_____________________________________________
QUESTION:
On obtient un résultat lorsque la ligne suivante est présente dans le
code
"sur clic" du bouton cmdCréeFichier.
MsgBox "La liste des ordinateurs du réseau a été créée." & vbCrLf &
"Le
fichier listeréseau.txt a été créé dans le répertoire C:"
Si on neutralise cette ligne en la mettant en commentaire il n'y a
plus
de
résultat.
Quelqu'un connaît-il l'astuce pour éviter la ligne MsgBox?
Je peux adresser le fichier exemple à ceux qui sont intéressés.
Effectivement c'est sous Excel le Application.Wait.....
John
"Alain (74)" a écrit dans le message de news:
Bonjour, Merci pour cet avis . Je ne l'avais pas précisé mais j'ai essayé tout ça en
vain (DoEvents, Attente etc...) Rien n'y fait. Jusqu'à trouver l'astuce, je n'ai rien trouvé d'autre que faire appel à un Msgbox pour voir le retour d'un résultat. A première vue il semble que ce "défaut" est lié à la fonction shell qui est
utilisée... mais je n'ai pas trouvé de documentation suffisante sur le sujet.
PS: Je ne connais pas la méthode WAIT de l'objet Application. Elle génère chez moi un msg d'erreur et je n'ai trouvé aucune documentation à son sujet.
Est-ce une nouveauté d'ACCESS 2003? Je suis sous 2002. AE
"John Fuss" a écrit dans le message de news:brsima$5bc$
J'ai regardé vite fait, le MsgBox ne fait qu'afficher un msg message pardon)
donc ne devrait pas poser de pbl (problème encore pardon). Mais peut-être
que ce message permet au fichier 'C:listeréseau.txt' de se créer. Tu peux
donc utiliser des doEvents pour redonner la main au système (hésite pas à
en
mettre plusieurs voire même dans une boucle) ou alors essayer un Application.Wait TimeSerial(hour(now), minute(now), seconde(now)+4) pour attendre 4 secondes.
John
"Alain (74)" a écrit dans le message de news:
Bonjour à tous, Ma question est à la fin du message...
Pour lister les ordinateurs connectés sur un réseau peer to peer le code
suivant est utilisé dans un formulaire possédant un bouton nommé "cmdCréeFichier":
***Clic sur le bouton cmdCréeFichier Private Sub cmdCréeFichier_Click() On Error Resume Next Dim i As Integer Kill "C:listeréseau.txt" 'Supprime le fichier s'il existe Dim k As String If Left(GetWinVersion(), 1) = "4" Then 'Sous Windows 98 k = "C:command.com /C NET VIEW >c:listeréseau.txt" Else 'Sous Win XP k = "C:windowssystem32command.com /C NET VIEW
c:listeréseau.txt" End If
'DoEvents Shell k, vbHide MsgBox "La liste des ordinateurs du réseau a été enregistrée dans le
fichier listeréseau.txt situé dans le répertoire C:" LitFichier 'Appel à la fonction "LitFichier" End Sub **************************** Public Function LitFichier() Dim Contenu As String Dim ContenuFichier DoEvents Open "c:listeréseau.txt" For Input As #1 Do While Not EOF(1) 'Boucle Line Input #1, ContenuFichier 'Lecture de la ligne If Trim(ContenuFichier) <> "" Then If Left(Trim(ContenuFichier), 2) = "" Then ContenuFichier = Trim(Mid(ContenuFichier, 3, InStr(ContenuFichier, Chr(32)))) If Trim(Contenu) <> "" Then Contenu = Contenu & Chr(13) & ContenuFichier Else Contenu = ContenuFichier End If End If End If Loop Close #1 DoEvents MsgBox "Les ordinateurs du réseau sont les suivants:" & vbCrLf & Contenu
End Function ******************************* NOTA: Un module global contient le code suivant permettant de déterminer la version Windows avec la fonction GetWinVersion (On considère ici que l'on
est en 98 ou en XP)
Declare Function GetVersion Lib "Kernel32" () As Long _____________________________________________ Function GetWinVersion() Dim ver As Long, WinVer As Long, DosVer As Long Dim WindowsVersion As String, DosVersion As String
ver = GetVersion()
WinVer = ver And &HFFF& GetWinVersion = Format((WinVer Mod 256) + ((WinVer 256) / 100),
"Fixed") End Function _____________________________________________
QUESTION: On obtient un résultat lorsque la ligne suivante est présente dans le code
"sur clic" du bouton cmdCréeFichier.
MsgBox "La liste des ordinateurs du réseau a été créée." & vbCrLf & "Le
fichier listeréseau.txt a été créé dans le répertoire C:"
Si on neutralise cette ligne en la mettant en commentaire il n'y a plus
de
résultat. Quelqu'un connaît-il l'astuce pour éviter la ligne MsgBox?
Je peux adresser le fichier exemple à ceux qui sont intéressés.