Newsgroup: it.comp.lang.visual-basic
Titolo: Help principiante - access esportare tabella in txt

Premessa: non esisteva una volta un Newsgroup per access? (non lo trovo piu)
comunque....
Io dovrei (al limite potrei farlo anche con VB)
esportare il contenuto di una tabella access in un file txt
in modo molto semplice ess:
Rossi;Mario;10/03/69;Via fornaio 1
in poche parole riuscire a fare quello che facilmente si riesce a fare in
access selezionando tabella ed esportando
per le mie esigenze posso usare un segno come separatore (;) o lo spazio TAB
quindi nel file txt dovrei ritrovarmi INCOLONNATI (per nome campo) i vari
dati contenuti nella tabella di access
ess:
Rossi    Mario     Via cadorna
Verdi    Luigi       Via Genova
Ringrazio in anticipo per risposta
----------------------------------------------------------
Dott. Paolo Monticelli

 Io dovrei (al limite potrei farlo anche con VB)
con ADOX:
Dim rs As New ADODB.Recordset
Dim i As Long, NumTabelleAccess As Long, NumTabelle As Long
Dim Tabelle() As String
Dim topp As New ADOX.Catalog
Dim Index As Long
'Apri una connessione che chiamerò "connssioneAperta"
Set topp.ActiveConnection = connessioneAperta
NumTabelleAccess = topp.Tables.Count  'conta quante tabelle ci sono nel db
'prende in considerazione solo le tabelle e non le query o altre tabelle
speciali
For i = 0 To NumTabelleAccess - 1
    If topp.Tables(i).Type = "TABLE" Then ReDim Preserve Tabelle(i + 1):
Tabelle(NumTabelle) = topp.Tables(i).Name: NumTabelle = NumTabelle + 1
Next
'esporta ogni tabella in un file separando i valori con ";"
For i = 0 To NumTabelle - 1
    rs.Open "SELECT * FROM " & Tabelle(i) & ";", connessione, adOpenDynamic,
adLockReadOnly
    If rs.RecordCount <= 0 Then GoTo nxt
    Open "A:\" & Tabelle(i) & Replace(Date, "/", "") For Output As #1
    Close #1
nxt:
    rs.Close
next
Lavorando su adox.catalog (topp) puoi ottenere i nomi dei campi per ogni
tabella e scriverli nei file di testo.
Ciao, SK
--
La pasienzia non è mai troppo (Totò)
<><><>
Esistono 10 tipi di persone: chi conosce il binario e chi no

 ha scritto

non so se puo' servirti il codice qui sotto, che genera due pagine web. la
prima e' ordinata per regista, la seconda per anno e all'interno dell'anno
per regista. nei riferimenti del progetto vb devi includere 'ms activex data
objects x.x library'. da me x.x e' 2.8.
ciao, j.
Public Sub PrintHtml()
    On Error Resume Next ''' migliorabile :)
    Dim rs As New Recordset, s As String
    s = "select * from movies order by makerlast, makerfirst, year"
    rs.Open s, mainDB, adOpenStatic, adLockOptimistic
    Dim FName As String, FNum As Long
    FName = mainPath & "movies.html"
    FNum = FreeFile
    Open FName For Output As #FNum
    Print #FNum, "<html>"
    Print #FNum, "<head>"
    Print #FNum, "<title>SundaySw Favorite Movies</title>"
    Print #FNum, "<link rel=stylesheet href=/sunday.css type=text/css>"
    Print #FNum,
    Print #FNum, "<body>"
    Print #FNum, "<center>"
    Print #FNum, "<p><br>" & CStr(Now); "</b>"
    Print #FNum, "<p><br><hr>"
    Print #FNum,
    With rs
        Do While Not .EOF
            If !ssw Then
                If !makerlast <> !movie Then
                    If !makerfirst <> "" Then
                        s = "<p>" & !makerfirst & " " & !makerlast & ": <b>"
& !movie & "</b>"
                    Else
                        s = "<p>" & !makerlast & ": <b>" & !movie & "</b>"
                    End If
                Else
                    s = "<p><b>" & !movie & "</b>"
                End If
                If Not IsNull(!tradus) And !tradus <> "" Then s = s & " (" &
!tradus & ")"
                If Not IsNull(!tradit) And !tradit <> "" Then s = s & " (" &
!tradit & ")"
                s = s & " - " & !Year
                Print #FNum, s
            End If
            .MoveNext
        Loop
    End With
    rs.Close
'    Set rs = Nothing
    Print #FNum, "<p><br><hr>"
    Print #FNum, "<p><br>"
    Print #FNum, "</center>"
    Print #FNum, "</body>"
    Print #FNum, "</html>"
    Close #FNum
'-----------------
    FName = mainPath & "cinema.html"
    FNum = FreeFile
    Open FName For Output As #FNum
    Print #FNum, "<html>"
    Print #FNum, "<head>"
    Print #FNum, "<title>SundaySw - Cinema</title>"
    Print #FNum, "<link rel=stylesheet href=/sunday.css type=text/css>"
    Print #FNum,
    Print #FNum, "<body marginheight=0 marginwidth=0 topmargin=0
leftmargin=20>"
    Print #FNum, "<p><br>" & CStr(Now); "</b>"
    Print #FNum, "<p><br><hr>"
    Print #FNum,
    Dim rs2 As New Recordset, s2 As String, ly As Long
    s2 = "select distinct year from movies order by year"
    rs2.Open s2, mainDB, adOpenStatic, adLockOptimistic
    With rs2
        Do While Not .EOF
            ly = !Year
            Print #FNum, "<p><b>" & CStr(ly) & "</b>"
            s = "select * from movies where year=" & ly & " order by
makerlast, makerfirst, movie"
            rs.Open s, mainDB, adOpenStatic, adLockOptimistic
            With rs
                Do While Not .EOF
                    If !makerlast <> !movie Then
                        If !makerfirst <> "" Then
                            s = "<br>" & !makerfirst & " " & !makerlast & ":
<b>" & !movie & "</b>"
                        Else
                            s = "<br>" & !makerlast & ": <b>" & !movie &
"</b>"
                        End If
                    Else
                        s = "<br><b>" & !movie & "</b>"
                    End If
                    If Not IsNull(!tradus) And !tradus <> "" Then s = s & "
(" & !tradus & ")"
                    If Not IsNull(!tradit) And !tradit <> "" Then s = s & "
(" & !tradit & ")"
                    Print #FNum, s
                    .MoveNext
                Loop
            End With
            rs.Close
            .MoveNext
        Loop
    End With
    rs.Close: Set rs = Nothing
    rs2.Close: Set rs2 = Nothing
    Print #FNum, "<p><br><hr>"
    Print #FNum, "<p><br>"
    Print #FNum, "</body>"
    Print #FNum, "</html>"
    Close #FNum
End Sub