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

copie de fichier (filecopy)

4 réponses
Avatar
fth
Bonjour,

Grace à ce petit bout de code, je peux copier un fichier
(Startinventory.bat) de mon pc vers un repertoire défini sur toute les
machines du réseau.

ça n'est pas parfait et de plus, ça ne fonctionne pas toujours.
Voici donc ma liste de question:

1.Pourquoi la copie ne s'effectues pas sur toutes les machines (partant du
principe qu'elles sont branchées - test avec le résultat de (TxtCopyC) que
je copie dans Start/run;
2.Comment pourrais-je récupérer l'erreur qui me dirait que le pc n'est pas
joignable?
3. je devrais égallement pouvoir effacer le fichier. j'ai donc remplacé la
partie
FileCopy SourceFile, FinalPath
par
Kill FinalPath

tout comme la copie, sur certaines machines, ça passe, sur d'autre pas...
De plus, Kill est elle la meilleur solution?

Merci Bcp de m'éclairer et qui sait, solutionner qq points

Frédéric


Private Function FromHereToOther()
On Error Resume Next

Dim SourceFile, ToPath, FinalPath, txtcopyC As String

SourceFile = "c:\Fpinger\Startinventory.bat" ' Define source file name.
ToPath = "c$\Documents and Settings\All Users\Start Menu\Programs\Startup"
' Define target file name.
FinalPath = ("\\" & Me.COMPUTER_NAME & "\" & ToPath & "\" &
"Startinventory.bat")
txtcopyC = "\\" & Me.COMPUTER_NAME & "\" & ToPath & "\"




Me!TxtToPath = ToPath
Me!TxtFinalPath = FinalPath
Me!TxtCopy = txtcopyC

Set rst = Me.Recordset

If rst.BOF And rst.EOF Then
Set rst = Nothing
End If

While Not rst.EOF ' sinon

FileCopy SourceFile, FinalPath
rst.MoveNext
DoCmd.RunCommand acCmdSelectRecord
Wend

End Function

4 réponses

Avatar
LiR
Bonjour,

Tu as aussi fait un script de copie de posts on dirait !

Il faut simplement que le fichier de destination change à chaque
enregistrement successif (dans ton code il est défini et fixé au tout début).

Par ailleurs, utilise plutôt Me.RecordsetClone

Le code suivant est suffisant :

Dim SourceFile As String
Dim rst As DAO.Recordset

SourceFile = "c:FpingerStartinventory.bat"

Set rst = Me.RecordsetClone

While Not rst.EOF
FileCopy SourceFile, rst!COMPUTER_NAME
rst.MoveNext
Wend

Set rst = Nothing

Bien sûr, je suis parti de l'hypothèse que les noms des ordinateurs étaients
stockés dans la source d'enregistrements.




Bonjour,

Grace à ce petit bout de code, je peux copier un fichier
(Startinventory.bat) de mon pc vers un repertoire défini sur toute les
machines du réseau.

ça n'est pas parfait et de plus, ça ne fonctionne pas toujours.
Voici donc ma liste de question:

1.Pourquoi la copie ne s'effectues pas sur toutes les machines (partant du
principe qu'elles sont branchées - test avec le résultat de (TxtCopyC) que
je copie dans Start/run;
2.Comment pourrais-je récupérer l'erreur qui me dirait que le pc n'est pas
joignable?
3. je devrais égallement pouvoir effacer le fichier. j'ai donc remplacé la
partie
FileCopy SourceFile, FinalPath
par
Kill FinalPath

tout comme la copie, sur certaines machines, ça passe, sur d'autre pas...
De plus, Kill est elle la meilleur solution?

Merci Bcp de m'éclairer et qui sait, solutionner qq points

Frédéric


Private Function FromHereToOther()
On Error Resume Next

Dim SourceFile, ToPath, FinalPath, txtcopyC As String

SourceFile = "c:FpingerStartinventory.bat" ' Define source file name.
ToPath = "c$Documents and SettingsAll UsersStart MenuProgramsStartup"
' Define target file name.
FinalPath = ("" & Me.COMPUTER_NAME & "" & ToPath & "" &
"Startinventory.bat")
txtcopyC = "" & Me.COMPUTER_NAME & "" & ToPath & ""




Me!TxtToPath = ToPath
Me!TxtFinalPath = FinalPath
Me!TxtCopy = txtcopyC

Set rst = Me.Recordset

If rst.BOF And rst.EOF Then
Set rst = Nothing
End If

While Not rst.EOF ' sinon

FileCopy SourceFile, FinalPath
rst.MoveNext
DoCmd.RunCommand acCmdSelectRecord
Wend

End Function






Avatar
LiR
Juste un petit oubli :

ce n'est pas :

FileCopy SourceFile, rst!COMPUTER_NAME

Mais :

FileCopy SourceFile, "" & Me.COMPUTER_NAME & "" & ToPath & _
"" & "Startinventory.bat")
Avatar
LiR
Décidément en parlant de copier!
Un copier/coller trop hâtif. Je corrige et c'est mon dernier mot :

FileCopy SourceFile, "" & rst!COMPUTER_NAME & "" & ToPath & _
"" & "Startinventory.bat")

(rst!COMPUTER_NAME et non Me.COMPUTER_NAME )

Désolé de tant de cafouilages.


Juste un petit oubli :

ce n'est pas :

FileCopy SourceFile, rst!COMPUTER_NAME

Mais :

FileCopy SourceFile, "" & Me.COMPUTER_NAME & "" & ToPath & _
"" & "Startinventory.bat")





Avatar
fth
Bonjour,

oui, j'ai vu que j'avais eu un soucis... mon post est parti trois
fois...pige pas comment ...
Merci pour ta solution, je la test immédiatement et te dis quoi.

nb: je vois que tu préfere passer par le path complet plutot que par une
variable...?

Frederic

"LiR" wrote in message
news:
Bonjour,

Tu as aussi fait un script de copie de posts on dirait !

Il faut simplement que le fichier de destination change à chaque
enregistrement successif (dans ton code il est défini et fixé au tout
début).

Par ailleurs, utilise plutôt Me.RecordsetClone

Le code suivant est suffisant :

Dim SourceFile As String
Dim rst As DAO.Recordset

SourceFile = "c:FpingerStartinventory.bat"

Set rst = Me.RecordsetClone

While Not rst.EOF
FileCopy SourceFile, rst!COMPUTER_NAME
rst.MoveNext
Wend

Set rst = Nothing

Bien sûr, je suis parti de l'hypothèse que les noms des ordinateurs
étaients
stockés dans la source d'enregistrements.




Bonjour,

Grace à ce petit bout de code, je peux copier un fichier
(Startinventory.bat) de mon pc vers un repertoire défini sur toute les
machines du réseau.

ça n'est pas parfait et de plus, ça ne fonctionne pas toujours.
Voici donc ma liste de question:

1.Pourquoi la copie ne s'effectues pas sur toutes les machines (partant
du
principe qu'elles sont branchées - test avec le résultat de (TxtCopyC)
que
je copie dans Start/run;
2.Comment pourrais-je récupérer l'erreur qui me dirait que le pc n'est
pas
joignable?
3. je devrais égallement pouvoir effacer le fichier. j'ai donc remplacé
la
partie
FileCopy SourceFile, FinalPath
par
Kill FinalPath

tout comme la copie, sur certaines machines, ça passe, sur d'autre pas...
De plus, Kill est elle la meilleur solution?

Merci Bcp de m'éclairer et qui sait, solutionner qq points

Frédéric


Private Function FromHereToOther()
On Error Resume Next

Dim SourceFile, ToPath, FinalPath, txtcopyC As String

SourceFile = "c:FpingerStartinventory.bat" ' Define source file
name.
ToPath = "c$Documents and SettingsAll UsersStart
MenuProgramsStartup"
' Define target file name.
FinalPath = ("" & Me.COMPUTER_NAME & "" & ToPath & "" &
"Startinventory.bat")
txtcopyC = "" & Me.COMPUTER_NAME & "" & ToPath & ""




Me!TxtToPath = ToPath
Me!TxtFinalPath = FinalPath
Me!TxtCopy = txtcopyC

Set rst = Me.Recordset

If rst.BOF And rst.EOF Then
Set rst = Nothing
End If

While Not rst.EOF ' sinon

FileCopy SourceFile, FinalPath
rst.MoveNext
DoCmd.RunCommand acCmdSelectRecord
Wend

End Function