A partir d'un module vba access, je voudrais créer un fichier vbs à exécuter
ultérieurement. Ce fichier doit être composé d'une dizaine de ligne de codes.
Ces lignes de codes dépendent de valeurs se trouvant dans différentes tables.
Je procède de la façon suivante:
Shell "Echo Code1 >c:\monfichier.vbs"
Shell "Echo Code2 >>c:\monfichier.vbs"
Shell "Echo Code3 >>c:\monfichier.vbs"
...
Malheureusement, avec cette méthode, les lignes de codes ne sont pas
toujours copiées dans le bon ordre au sein de mon fichier.
Avez-vous une meilleure idée? Je souhaiterais à priori ne pas utiliser de
table spécifique pour exporter ce code vers mon fichier vbs.
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
Raymond [mvp]
Bonjour.
exemple de création de fichier vbs:
Private Sub Commande0_Click() If Not SauverEnFichier("Echo Code1", "c:monfichier.vbs") Then MsgBox "erreur création...." If Not SauverEnFichier("Echo Code2", "c:monfichier.vbs") Then MsgBox "erreur création...." If Not SauverEnFichier("Echo Code3", "c:monfichier.vbs") Then MsgBox "erreur création...." If Not SauverEnFichier("Echo Code4", "c:monfichier.vbs") Then MsgBox "erreur création...." End Sub
Public Function SauverEnFichier(Source As String, _ Nom_Fichier As String) As Boolean Dim intFileNumber As Integer On Error GoTo SaveString_Err SauverEnFichier = True
If Len(Source) > 0 And InStr(Nom_Fichier, ".vbs") > 0 Then If InStr(Nom_Fichier, ":") = 0 Or InStr(Nom_Fichier, "") = 0 Then SauverEnFichier = False Else intFileNumber = FreeFile Open Nom_Fichier For Append As intFileNumber Print #intFileNumber, Source & vbCrLf; Close intFileNumber SauverEnFichier = True End If Else SauverEnFichier = False End If
SaveString_End: Exit Function
SaveString_Err: MsgBox Err.Description, vbCritical & vbOKOnly, _ "Error Number " & Err.Number & " Occurred" Resume SaveString_End End Function
remettre en ligne les commandes car certaines dépassent la largeur maxi du message. -- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ http://OfficeSystem.Access.free.fr/runtime/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"David D." a écrit dans le message de news:
Bonjour,
A partir d'un module vba access, je voudrais créer un fichier vbs à exécuter ultérieurement. Ce fichier doit être composé d'une dizaine de ligne de codes. Ces lignes de codes dépendent de valeurs se trouvant dans différentes tables. Je procède de la façon suivante: Shell "Echo Code1 >c:monfichier.vbs" Shell "Echo Code2 >>c:monfichier.vbs" Shell "Echo Code3 >>c:monfichier.vbs" ... Malheureusement, avec cette méthode, les lignes de codes ne sont pas toujours copiées dans le bon ordre au sein de mon fichier.
Avez-vous une meilleure idée? Je souhaiterais à priori ne pas utiliser de table spécifique pour exporter ce code vers mon fichier vbs.
D'avance merci.
Bonjour.
exemple de création de fichier vbs:
Private Sub Commande0_Click()
If Not SauverEnFichier("Echo Code1", "c:monfichier.vbs") Then MsgBox
"erreur création...."
If Not SauverEnFichier("Echo Code2", "c:monfichier.vbs") Then MsgBox
"erreur création...."
If Not SauverEnFichier("Echo Code3", "c:monfichier.vbs") Then MsgBox
"erreur création...."
If Not SauverEnFichier("Echo Code4", "c:monfichier.vbs") Then MsgBox
"erreur création...."
End Sub
Public Function SauverEnFichier(Source As String, _
Nom_Fichier As String) As Boolean
Dim intFileNumber As Integer
On Error GoTo SaveString_Err
SauverEnFichier = True
If Len(Source) > 0 And InStr(Nom_Fichier, ".vbs") > 0 Then
If InStr(Nom_Fichier, ":") = 0 Or InStr(Nom_Fichier, "") = 0
Then
SauverEnFichier = False
Else
intFileNumber = FreeFile
Open Nom_Fichier For Append As intFileNumber
Print #intFileNumber, Source & vbCrLf;
Close intFileNumber
SauverEnFichier = True
End If
Else
SauverEnFichier = False
End If
SaveString_End:
Exit Function
SaveString_Err:
MsgBox Err.Description, vbCritical & vbOKOnly, _
"Error Number " & Err.Number & " Occurred"
Resume SaveString_End
End Function
remettre en ligne les commandes car certaines dépassent la largeur maxi du
message.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"David D." <DavidD@discussions.microsoft.com> a écrit dans le message de
news: C72C1D2E-AE43-4442-808D-C879747E522C@microsoft.com...
Bonjour,
A partir d'un module vba access, je voudrais créer un fichier vbs à
exécuter
ultérieurement. Ce fichier doit être composé d'une dizaine de ligne de
codes.
Ces lignes de codes dépendent de valeurs se trouvant dans différentes
tables.
Je procède de la façon suivante:
Shell "Echo Code1 >c:monfichier.vbs"
Shell "Echo Code2 >>c:monfichier.vbs"
Shell "Echo Code3 >>c:monfichier.vbs"
...
Malheureusement, avec cette méthode, les lignes de codes ne sont pas
toujours copiées dans le bon ordre au sein de mon fichier.
Avez-vous une meilleure idée? Je souhaiterais à priori ne pas utiliser de
table spécifique pour exporter ce code vers mon fichier vbs.
Private Sub Commande0_Click() If Not SauverEnFichier("Echo Code1", "c:monfichier.vbs") Then MsgBox "erreur création...." If Not SauverEnFichier("Echo Code2", "c:monfichier.vbs") Then MsgBox "erreur création...." If Not SauverEnFichier("Echo Code3", "c:monfichier.vbs") Then MsgBox "erreur création...." If Not SauverEnFichier("Echo Code4", "c:monfichier.vbs") Then MsgBox "erreur création...." End Sub
Public Function SauverEnFichier(Source As String, _ Nom_Fichier As String) As Boolean Dim intFileNumber As Integer On Error GoTo SaveString_Err SauverEnFichier = True
If Len(Source) > 0 And InStr(Nom_Fichier, ".vbs") > 0 Then If InStr(Nom_Fichier, ":") = 0 Or InStr(Nom_Fichier, "") = 0 Then SauverEnFichier = False Else intFileNumber = FreeFile Open Nom_Fichier For Append As intFileNumber Print #intFileNumber, Source & vbCrLf; Close intFileNumber SauverEnFichier = True End If Else SauverEnFichier = False End If
SaveString_End: Exit Function
SaveString_Err: MsgBox Err.Description, vbCritical & vbOKOnly, _ "Error Number " & Err.Number & " Occurred" Resume SaveString_End End Function
remettre en ligne les commandes car certaines dépassent la largeur maxi du message. -- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ http://OfficeSystem.Access.free.fr/runtime/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"David D." a écrit dans le message de news:
Bonjour,
A partir d'un module vba access, je voudrais créer un fichier vbs à exécuter ultérieurement. Ce fichier doit être composé d'une dizaine de ligne de codes. Ces lignes de codes dépendent de valeurs se trouvant dans différentes tables. Je procède de la façon suivante: Shell "Echo Code1 >c:monfichier.vbs" Shell "Echo Code2 >>c:monfichier.vbs" Shell "Echo Code3 >>c:monfichier.vbs" ... Malheureusement, avec cette méthode, les lignes de codes ne sont pas toujours copiées dans le bon ordre au sein de mon fichier.
Avez-vous une meilleure idée? Je souhaiterais à priori ne pas utiliser de table spécifique pour exporter ce code vers mon fichier vbs.
D'avance merci.
David D.
Merci Raymond. C'est exactement ce dont j'avais besoin.
Merci Raymond. C'est exactement ce dont j'avais besoin.
Merci Raymond. C'est exactement ce dont j'avais besoin.
David D.
A propos, si je n'abuse pas, j'aimerais aussi connaître la solution à un autre problème expliqué ci-dessous. Lorsque je lance une commande de type shell, est-il possible que le statement suivant ne soi exécuté que lorsque la commande initiée par le shell soit terminée? Si pas, existe-t-il en vba une sorte de pause (en secondes par exemple)?
D'avance merci, David D.
A propos, si je n'abuse pas, j'aimerais aussi connaître la solution à un
autre problème expliqué ci-dessous. Lorsque je lance une commande de type
shell, est-il possible que le statement suivant ne soi exécuté que lorsque la
commande initiée par le shell soit terminée? Si pas, existe-t-il en vba une
sorte de pause (en secondes par exemple)?
A propos, si je n'abuse pas, j'aimerais aussi connaître la solution à un autre problème expliqué ci-dessous. Lorsque je lance une commande de type shell, est-il possible que le statement suivant ne soi exécuté que lorsque la commande initiée par le shell soit terminée? Si pas, existe-t-il en vba une sorte de pause (en secondes par exemple)?
D'avance merci, David D.
Raymond [mvp]
il faut passer par une api que tu trouveras sur la page: http://officesystem.access.free.fr/apishellwait.htm
-- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ http://OfficeSystem.Access.free.fr/runtime/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"David D." a écrit dans le message de news:
A propos, si je n'abuse pas, j'aimerais aussi connaître la solution à un autre problème expliqué ci-dessous. Lorsque je lance une commande de type shell, est-il possible que le statement suivant ne soi exécuté que lorsque la commande initiée par le shell soit terminée? Si pas, existe-t-il en vba une sorte de pause (en secondes par exemple)?
D'avance merci, David D.
il faut passer par une api que tu trouveras sur la page:
http://officesystem.access.free.fr/apishellwait.htm
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"David D." <DavidD@discussions.microsoft.com> a écrit dans le message de
news: 21BB6760-32B5-4F9D-8159-71D7934203A1@microsoft.com...
A propos, si je n'abuse pas, j'aimerais aussi connaître la solution à un
autre problème expliqué ci-dessous. Lorsque je lance une commande de type
shell, est-il possible que le statement suivant ne soi exécuté que lorsque
la
commande initiée par le shell soit terminée? Si pas, existe-t-il en vba
une
sorte de pause (en secondes par exemple)?
il faut passer par une api que tu trouveras sur la page: http://officesystem.access.free.fr/apishellwait.htm
-- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ http://OfficeSystem.Access.free.fr/runtime/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"David D." a écrit dans le message de news:
A propos, si je n'abuse pas, j'aimerais aussi connaître la solution à un autre problème expliqué ci-dessous. Lorsque je lance une commande de type shell, est-il possible que le statement suivant ne soi exécuté que lorsque la commande initiée par le shell soit terminée? Si pas, existe-t-il en vba une sorte de pause (en secondes par exemple)?