Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Access Export diretto in Txt

    Ciao a tutti, io ho una query access, qual è il metodo più semplice per ricevere i risultati della query direttamente in un nuovo file di testo?
    (esiste?)

  2. #2
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,704
    Io ne ho viste cose che voi umani non potreste immaginare. Navi da combattimento in fiamme al largo dei bastioni di Orione e ho visto i raggi B, balenare nel buio vicino le porte di Tannhäuser. E tutti quei momenti ... andranno ... perduti nel tempo, come lacrime nella pioggia. È tempo di morire. (Roy Batty).

  3. #3
    Ma devo utilizzare obbligatoriamente VB giusto?

  4. #4
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,704
    Vba più che Vb; devi usare l'oggetto docmd per eseguire l'output; lo puoi fare da una procedura evento e da codice (anche da macro dalle ultime ver di access)
    Io ne ho viste cose che voi umani non potreste immaginare. Navi da combattimento in fiamme al largo dei bastioni di Orione e ho visto i raggi B, balenare nel buio vicino le porte di Tannhäuser. E tutti quei momenti ... andranno ... perduti nel tempo, come lacrime nella pioggia. È tempo di morire. (Roy Batty).

  5. #5
    Io ho una query che mi estae i dati da un db e me li mostra in una tabella, posso fare che appena eseguo quella query in automatico mi esegue quest'operazione di export?

    Mi dai qualche dettaglio su come iniziare a provare (conosco vb.net) quindi so cosa sono le variabili le condizioni e diciamo che se si parla di vba saprei come sintassare più che altro

  6. #6
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,704
    docmd.OutputTo acOutputTable,"nometabella", acFormatTXT, "nomeepercorsofiledasalvare"

    questa è la riga da utilizzare in una routine evento o codice, fai un pulsante ad esempio
    Io ne ho viste cose che voi umani non potreste immaginare. Navi da combattimento in fiamme al largo dei bastioni di Orione e ho visto i raggi B, balenare nel buio vicino le porte di Tannhäuser. E tutti quei momenti ... andranno ... perduti nel tempo, come lacrime nella pioggia. È tempo di morire. (Roy Batty).

  7. #7
    Funziona però mi esporta tutto, ovvio in quanto scrivo "outputtable" ed ogni colonna è divisa da trattini verticali/orizzontali che delimitano le celle.
    C'è un modo per estrarre solo determinate colonne? e formattarle, in pratica voglio lo stesso effetto che ho quando copio dalla maschera ed incollo direttamente nel file

  8. #8
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,704
    puoi estrarre tramite query e farne l'output; guarda la guida di acces relativa al comando e vedi tutte le opzioni disponibili
    Io ne ho viste cose che voi umani non potreste immaginare. Navi da combattimento in fiamme al largo dei bastioni di Orione e ho visto i raggi B, balenare nel buio vicino le porte di Tannhäuser. E tutti quei momenti ... andranno ... perduti nel tempo, come lacrime nella pioggia. È tempo di morire. (Roy Batty).

  9. #9
    è la prima cosa che ho fatto però la guida mi dice i parametri da passare ma non quali sono cioè
    ad esempio dice: "
    OutputFile Optional Variant A string expression that's the full name, including the path, of the file you want to output the object to. If you leave this argument blank, Access prompts you for an output file name.
    " ma cosa posso scrivere non me lo dice, invece quando vedo gli MDSN di vb mi dicono tutto, non c'è una guida simile?

    A me sicuramente serve l'opzione "TemplateFile" però appunto non so come impostare il file da dargli in pasto Boh


    http://msdn.microsoft.com/en-us/libr...ffice.15).aspx

  10. #10
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da deamon75 Visualizza il messaggio
    Ciao a tutti, io ho una query access, qual è il metodo più semplice ........
    Il metodo più semplice è certamente "OutputTo" te la cavi con 1 sola riga di codice

    ma se devi in qualche modo gestire la formattazione del file .txt allora io farei un ciclo su Recordset

    se per esempio hai una tabella "T1" con i campi:
    - Id
    - Cam1
    - Cam2
    - Cam3
    e vuoi escludere dal file .txt il Cam2 con larghezza fissa e separatore " ;"


    codice:
    Public Function GeneraTxt()
    ' la stringa della tua query
    Dim StSql As String
    StSql = ""
    StSql = StSql & "SELECT "
    StSql = StSql & "T1.Id, "
    StSql = StSql & "T1.Cam1, "
    StSql = StSql & "T1.Cam3 "
    StSql = StSql & "FROM "
    StSql = StSql & "T1"
    StSql = StSql & ";"
    
    ' apro il recordset sulla stringa sopra
    Dim DBx As DAO.Database
    Set DBx = DBEngine(0)(0)
    Dim RSx As DAO.Recordset
    Set RSx = DBx.OpenRecordset(StSql, dbOpenDynaset)
    
    ' verifico che ci sia almeno 1 record
    If RSx.RecordCount = 0 Then
        MsgBox "non ci sono record"
        Exit Function
    End If
    
    ' definisco la larghezza delle colonne del file  .txt
    Dim L01 As Integer   ' larghezza 1° colonna
    Dim L02 As Integer   ' larghezza 2° colonna
    Dim L03 As Integer   ' larghezza 3° colonna
    L01 = 5
    L02 = 11
    L03 = 20
    
    ' Creo un file di nome "Prova.txt" nella cartella in cui si trova il tuo file di Access
    ' attento,  se hai gia ub file con quel nome lo sovrascrive
    Open CurrentProject.Path & "\Prova.txt" For Output As #1
    
    '  scrivo nel file .txt
    RSx.MoveFirst
    Do Until RSx.EOF
        'Write #1, RSx.Fields("Id").Value & " / " & RSx.Fields("Cam1").Value & " / " & RSx.Fields("Cam3").Value & " / "
        Write #1, "   " & Left((RSx.Fields("Id").Value & String(L01, " ")), L01) & " ;" & Left((RSx.Fields("Cam1").Value & String(L02, " ")), L02) & " ;" & Left((RSx.Fields("Cam3").Value & String(L03, " ")), L03) & "    "
        
        RSx.MoveNext
    Loop
     
    ' chiudo tutto
    Close #1
     
    RSx.Close
    DBx.Close
    Set RSx = Nothing
    Set DBx = Nothing
     
    End Function
    .
    Ultima modifica di nman; 07-09-2014 a 10:07

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.