path dinamico



  • path dinamico
    di gamberonee (utente non iscritto) data: 24/08/2016 12:27:55

    Ciao a tutti,
    sono nuovo del forum e vi chiedo scusa se quello che stò per chiedere è già stato chiesto in passato.
    Ho un problema: ho creato una connessione da access ad un file excel per importare i dati in una tabella.
    Funziona ma impostando il path manualmente nel codice come qui:
    ssql = "SELECT * INTO Tabllaexcel4 " _
    & "FROM [Excel 8.0;HDR=YES;DATABASE=E:docesempio.xlsx].[Page 1$] s "

    db.Execute ssql, dbFailOnError

    Il problema è che avrei bisogno che il path E:docesempio.xlsx venga preso da una casella di testo (per non dover cambiare il codice ogni volta che devo importare un nuovo file).
    Grazie in anticipo a chiunque possa darmi una mano
    ps: stò svolgendo uno stage per ottenere il diploma ma a scuola non ho fatto molto vba e non sono molto ferrato...
     
    Private Sub Comando21_Click()
    
    Dim db As Database
     Set db = CurrentDb
     
    
     ssql = "SELECT * INTO Tabllaexcel4 " _
      & "FROM [Excel 8.0;HDR=YES;DATABASE=E:docesempio.xlsx].[Page 1$] s "
     
     db.Execute ssql, dbFailOnError
    End Sub



  • di Vecchio Frac data: 24/08/2016 13:41:18

    La stringa "ssql" che tu passi al comando db.Execute è, per l'appunto, una stringa di testo. Che quindi puoi confezionare come vuoi (concatenazione di stringa solitamente). Se il valore della casella di testo è una stringa convalidata (che quindi rispetta la presenza dei due punti e degli slash per i percorsi), allora non dovresti aver problemi a costruire la stringa.

    ssql = "SELECT * INTO Tabllaexcel4 FROM [Excel 8.0;HDR=YES;DATABASE=" & Textbox1 & ".[Page 1$] s "
    db.Execute ssql, dbFailOnError

    Piuttosto mi (ti) chiedo che cos'è quella "s" dopo "Page 1$". Se contiene un valore di stringa, allora scritto così non viene concatenato e l'istruzione SQL produce errore perchè "s" non è un'istruzione SQL valida.






  • di gamberonee (utente non iscritto) data: 24/08/2016 14:23:53

    Grazie mille ora funziona!!!
    La s a dire il vero non so perchè ho copiato parte di codice che ho trovato.....ma funziona anche senza.
    Ci sarebbe anche la possibilità di eliminare la tabella prima di crearla? perchè se provo una seconda volta con un altro file mi dice Tabellaexcel4 già esistente.
    sarebbe il top



  • di gamberonee (utente non iscritto) data: 24/08/2016 14:29:28

    Scusa se stresso ma dimenticavo,
    se il file excel è composto da più pagine (ogni volta un numero diverso) c'è anche il sistema di importarle tutte e non solo la Page 1?



  • di gamberonee (utente non iscritto) data: 24/08/2016 15:38:28

    Ciao per eliminare la tabella ad ogni nuova importazione sono riuscito con questo
     
    On Error Resume Next
    CurrentProject.Connection.Execute "DROP TABLE " & NomeTabella