Dos dentro MSAccess

di il
8 risposte

Dos dentro MSAccess

Buongiorno a tutti e grazie per la vs. proverbiale pazienza. Mi occorrerebbe realizzare una tabella che in modo dinamico (ad es. premendo un tasto) andasse a leggere l'elenco di files presenti in una directory. Nel mio caso: ho dei file Cakewalk formato *.cwp situati nella directory C:\Onedrive\ProgettiCwk e vorrei che il comando dos dir *. cwp  andasse a scrivere su questa Tabella (che chiamerei per es. T_Cakewalk_files).
Come mi consigliate di fare? Spiegazioni facili che possa capire uno che più che altro è musicista! Grazie, m.

8 Risposte

  • Re: Dos dentro MSAccess

    https://support.microsoft.com/it-it/topic/introduzione-alla-programmazione-in-access-92eb616b-3204-4121-9277-70649e33be4f

    Vorrei suonare il concerto n. 3 di Rachmaninov. Come mi consigli di fare? Spiegazioni facili che possa capire uno che più che altro è programmatore! Grazie, m.

  • Re: Dos dentro MSAccess

    In VBA esiste una funzione che si chiama proprio Dir che, usata in un ciclo, ti permette di elencare tutti i file come vuoi tu e nel ciclo puoi inserirli in una tabella, ee vuoi.

    La funzione è documentata in

    https://support.microsoft.com/it-it/topic/funzione-dir-1a1a4275-f92f-4ae4-8b87-41e4513bba2e

    Questo in parole molto semplici, se non lo sono abbastanza, parti dal documento di @mugliorabile…

  • Re: Dos dentro MSAccess

    Non so se migliorabile volesse fare dell'ironia o meno. A parte che io sono un compositore e suono solo il pianoforte jazz e dunque sul buon  Rachmaninov avrei poco o nulla da dire. Comunque se vuoi ti inserisco nella mia community musicale dove distribuisco spartiti ed esecuzioni di miei brani. Serve solo un cellulare collegato a WU. Saluti!

  • Re: Dos dentro MSAccess

    Ovviamente era ironico.

    Anche se inserissi me nella community e ti chiedessi di riuscire a suonare un pezzo jazz con il piano, essendo completamente a zero e stonato, non credo sarebbe una buona idea. Ma ti chiederei di farmelo suonare spiegandomi come fare zemplicemente e anche velocemente.

  • Re: Dos dentro MSAccess

    Oregon e Migliorabile, quando vlete sono a Vs. disposizione per lezioni (magari scambiamo jazz piano vs. VBA)…


    Tornando a noi, un primo, grezzissimo tentativo:

    Public Sub showFiles()

    Dim f
    Dim i As Long

    f = Dir("c:\onedrive\documenti\progetti sonar\_jazz\*.cwp")
    Do While (f <> "")
    i = i + 1
    Debug.Print f
    f = Dir
    Loop

    End Sub

    e già mi cola il sudore dalla fronte, e fa anche freddo…

    Domani proseguo, la mia console con 88 tasti /B&W) mi chiama!

  • Re: Dos dentro MSAccess

    1. Anch'io sono musicista…ma non centra nulla con la discussione! 
    2. Intanto, come da regolamento del forum, quando posti codice, abbi cura di selezionarlo, quindi clicca poi sulla 4a icona dell'editor di quando si scrive un messaggio. Il codice apparirà con i tipici caratteri monotype più familiari ai programmatori.
    3. Non credo che il codice che hai postato fa esattamente quello che cerchi. Cosa ottieni a ogni step del ciclo? Dov'è la tabella che deve ospitare i nomefile? Per questo serve aprire un Recordset, sfruttando il metodo DAO, ecc…leggi questo documento
      Leggere scrivere dati nelle tabelle tramite VBA (DAO).docx
  • Re: Dos dentro MSAccess

    Buongiorno Osvaldo, provo a spiegarmi meglio: ho una quattro serie di files su quattro directory e volevo che una 

    Tabella Access recepisse, in modo dinamico, le variazioni (ad es. inserimento di nuovi files, cancellazione degli stessi ecc.).

    Direi che il codice che ho scritto raggiunge lo scopo che mi ero prefissato: infatti a questi file 

    (per te che sei musicista formato cakewalk *.cwp) sono associati degli esercizi di armonia e di scale. 

    Siccome il numero di file stava crescendo, per evitare operazioni del tipo 

    dir *.cwp > listafilescwp.txt 

    e poi importare questa lista in una tabella Access dedicata ho pensato, anche alla luce dei vostri suggerimenti, 

    di operare così.

    Sicuramente esistono soluzioni più eleganti che recepirò con piacere. Un saluto a te e alla community, m.

    Private Sub RDF_CWP_Click()
    Dim rs1 As DAO.Recordset
    Set rs1 = CurrentDb.OpenRecordset("T_Lista_Cakewalk", dbOpenTable)
    DoCmd.RunSQL "delete * FROM T_Lista_Cakewalk"
    Dim f
    Dim i As Long
    i = 0
    f = Dir("c:\onedrive\documenti\progetti sonar\_jazz\*.cwp")
    Do While (f <> "")
    rs1.AddNew
    rs1.Fields("Cakewalk") = f
    rs1.Update
    i = i + 1
    f = Dir
    Loop
    f = Dir("c:\onedrive\documenti\progetti sonar\_JazzVocalSux\*.cwp")
    Do While (f <> "")
    rs1.AddNew
    rs1.Fields("Cakewalk") = f
    rs1.Update
    i = i + 1
    f = Dir
    Loop
    f = Dir("c:\onedrive\documenti\progetti sonar\_MLF\*.cwp")
    Do While (f <> "")
    rs1.AddNew
    rs1.Fields("Cakewalk") = f
    rs1.Update
    i = i + 1
    f = Dir
    Loop
    
    f = Dir("c:\onedrive\documenti\progetti sonar\jAZZSTUDIO\*.cwp")
    Do While (f <> "")
    rs1.AddNew
    rs1.Fields("Cakewalk") = f
    rs1.Update
    i = i + 1
    f = Dir
    Loop
    End Sub
  • Re: Dos dentro MSAccess

    10/03/2024 - Faustinator ha scritto:


    Direi che il codice che ho scritto raggiunge lo scopo che mi ero prefissato

    Adesso è tutto più coerente ed elaborato. OK allora.

Devi accedere o registrarti per scrivere nel forum
8 risposte