Visualizzazione dei risultati da 1 a 10 su 17

Visualizzazione discussione

  1. #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.