Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 9 su 9

esecuzione file batch con vba access

  1. #1
    Roby58 non  in linea Novello
    buongiorno a tutti.
    Premetto che mi sono letto tutto quanto finora detto sui diversi forum al riguardo senza venirne a capo.
    iIl problema questo:
    sto realizzando un piccolo database e, per effettuare l'importazioni di alcuni dati che necessito da un file .txt, ho approntato un batch che mi sostituisce i caratteri "> "(maggiore + spazio) presenti nelle diverse righe del txt con i caratteri ">;". Per quanto il file funzioni perfettamente, quanto cerco di azionarlo tramite VBA non fa quello per cui stato creato. Per meglio dire, apre la shell di dos ma non effettua la sostituizione dei caratteri come richiesto (se lo lancio cliccandoci sopra direttamente, invece, funziona!).
    Il codice con cui sto cercando di farlo funzionare questo :
    Private Sub Import1()
    
    Dim Percorso As String
    
    Percorso = Application.CurrentProject.Path & "\changetxt.bat"
    
    Call Shell(Percorso, 1)
    
    End Sub
    
    qualcuno mi sa aiutare?
    Grazie

  2. #2
    Ma perch usi un batch e non un semplice codice vba per la sostituzione?
    ℹ️ Leggi di pi su AntonioG ...

  3. #3
    Roby58 non  in linea Novello
    Perch non ho idea di come fare?
    No realmente, l'unico modo che mi venuto in mente.
    Purtroppo sono solo un autodidatta e finora non ho ancora visto altro metodo

  4. #4
    Beh dovresti provare a farlo in vba perch non difficile con un po' di impegno e di studio, necessari in questo campo.

    In ogni caso, cosa c' nel batch? Mostra il codice. E dove sta il file da modificare?
    ℹ️ Leggi di pi su AntonioG ...

  5. #5
    Roby58 non  in linea Novello
    Questo il codicino del batch e il file da modificare, come si vede dal codice, in una cartella adiacente chiamata "Files"

    powershell -Command "(gc Files/mycontent.txt) -replace '> ','>;'|sc Files/mycontent.txt
    

  6. #6
    L'avatar di willy55
    willy55 non  in linea Scribacchino
    I comandi con cui attivi PowerShell hanno dei parametri con single quotation marks (') che vanno duplicati se racchiusi fra doppi apici ovvero double quotation marks (") posti solo l'inizio della stringa:
    https://docs.microsoft.com/en-us/pow...powershell-7.1
    https://stackoverflow.com/questions/...ershell-comman

    In ogni caso, in VBA, funzioni che effettuano la sostituzione (in un file) di una stringa in un'altra, ne esistono vari esempi sul web, te ne indico alcuni:
    https://www.thespreadsheetguru.com/t...ames-in-folder
    https://stackoverflow.com/questions/...eas-close-file
    https://stackoverflow.com/questions/...rd-using-macro
    Textfile loop to find/replace characters
    https://www.vbforums.com/showthread....le-path-by-VBA
    ℹ️ Leggi di pi su willy55 ...

  7. #7
    Roby58 non  in linea Novello
    per prima cosa ringrazio sia Antonio G che willy55 per i loro gentilissimi riscontri. Ora prover a vedere i link che willy mi ha suggerito. Spero di trovare la soluzione al problemino. Grazie ancora e buona giornata

  8. #8
    Roby58 non  in linea Novello
    Ho fatto le prove necessarie e la soluzione giusta proprio una di quelle suggerite da willy55.
    Il codice che ho ricavato il seguente

    
        Dim objFSO As Object
        Dim objFil As Object
        Dim objFil2 As Object
        Dim StrFileName As String
        Dim StrFolder As String
        Dim SstrAll As String
    
    On Error GoTo Errore
    
        Set objFSO = CreateObject("scripting.filesystemobject")
        StrFolder = Application.CurrentProject.Path & "/Files/"
        StrFileName = Dir(StrFolder & "mycontent.txt")
    
        Do While StrFileName <> vbNullString
            Set objFil = objFSO.opentextfile(StrFolder & StrFileName)
            strAll = objFil.readall
            objFil.Close
            Set objFil2 = objFSO.createtextfile(StrFolder & StrFileName)
            objFil2.Write Replace(strAll, "> ", ">;")
            objFil2.Close
            StrFileName = Dir
        Loop
        
    ErrorExit:
        Exit Sub
    
    Errore:
        MsgBox Err.Description, vbExclamation, "OOps! Errore Nr- " & Err.Number
        Resume ErrorExit
    
    Grazie ancora per il valido aiuto.

  9. #9
    Ti avevo detto che si faceva in vba con poche righe
    ℹ️ Leggi di pi su AntonioG ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. File batch per effettuare backup incrementale ed eliminare i vecchi file
    Da maxs84 nel forum Altri linguaggi e strumenti
    Risposte: 1
    Ultimo Post: 09-09-2016, 20:55
  2. Esecuzione File Batch in Visual Basic
    Da TheTechnologist nel forum Visual Basic .Net
    Risposte: 3
    Ultimo Post: 30-05-2016, 17:19
  3. esecuzione ftp in batch
    Da misonsan nel forum Microsoft Windows
    Risposte: 5
    Ultimo Post: 16-06-2010, 07:49
  4. File batch e parametri
    Da iantwilliams nel forum Altri linguaggi e strumenti
    Risposte: 9
    Ultimo Post: 12-05-2010, 09:24
  5. File Batch MS DOS
    Da rocco81 nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 15-02-2007, 18:20