Newsgroup: it.comp.appl.access
Titolo: Esportare con filtro

Salve a tutti,
Ho un grosso problema di esportazione, e volevo che qualcuno mi
aiutasse a risolverlo.
Sono un dipendente militare della C.R.I. e sono addetto alla gestione
dei soci.
Ho creato un po di tempo fa grazie anche all'aiuto del NG, un database
per la gestione dei soci ora il mio problema è questo:
ho una tabella soci con inseriti i dati anagrafici ed altro di tutti i
soci, una tabella pagamenti che riporta le date dei pagamenti ed altro
dei diversi anni.
Ho creato una maschera dalla tabella soci, ed una sottomaschera
pagamenti da una query pagamenti.
Ora io vorrei creare dalla maschera soci, un pulsante chiamato
"consolidato" che mi esporta in excel, alcuni dati della tabella soci,
e filtrare il campo "DataVer" senza estrapolarmi le date ma solo
controllare che nel pampo DataVer esiste una data e riportarmi nel
foglio excel il simbolo X nella cella appropriata. Faccio un esempio.
Campi che deve estrapolarmi dalla tabella soci:
GruppoDi | Cognome | Nome | LuogoNascita | DataNascita | CompCri |
DataVer | DataVer | DataVer |
Come vedi il campo DataVer è ripetuto per tre volte, è solo per farmi
capire che nel foglio excel invece di riportarmi nelle tre colonne le
date dei versamenti, mi deve inserire una X per ogni data.
Non so se mi sono fatto capire, ma se ci sono problemi di comprensione
alla mia maccheronica spiegazione, mi spieghro meglio sule vostre
domande.
Grazie del vostro aiuto.


Ne abbiamo parlato già alcune volte...!
Il metodo più comodo per esportare in EXCEL è [CopyFromRecordset]
proprio perchè è flessibile e consente diverse personalizzazioni.
Ad esempio questa riga consente di esportare dalla Cella "A5" il
Recordset di base della Form che, include i criteri di Filtro...
    oWkb.Sheets(1).Range("A5").CopyFromRecordset Forms!
NomeForm.RecordsetClone
Ovviamente devi aprire l'oggetto di Automazione di Excel da VBA, ma
trovi un mio esempio... in qualche altro 3D se cerchi bene.
@Alex


Ciao,
ho adattato questo codice trovato sul ng:
-------------------------------------------------------------
Private Sub ESPORTA_Click()
Dim excApp As Object
    Dim excDoc As Object
    Dim blOpen As Boolean
    Dim rst As Recordset
    Dim n As Integer
   On Error Resume Next
    blOpen = True
    Set excApp = GetObject(, "Excel.Application")
    If Err.Number = 429 Then
        Set excApp = CreateObject("Excel.Application")
        blOpen = False
        Err.Number = 0
            End If
    On Error GoTo gestErrori
    Set excDoc = excApp.Workbooks.Open("C:\Documents and Settings
\Bifulco1\Desktop\SOCI\CONSOLIDATO 2011\CONSOLIDATO.xlsx")
    excApp.Visible = True
    'Apro il recordset
    Set rst = CurrentDb.OpenRecordset("ESPORTA_EXCELQuery")
    'contatore righe ESPORTA_EXCELQuery
    n = 1
   'Copia tutti i record di ESPORTA_EXCELQuery nel file excel
    With rst
    .MoveFirst ' mi sposto su primo record
    While Not .EOF
    n = n + 1
    excDoc.Worksheets(1).Cells(n, 1) = !GruppoDi  'Cells(Riga,Colonna)
    excDoc.Worksheets(1).Cells(n, 2) = !COGNOME
    excDoc.Worksheets(1).Cells(n, 3) = !NOME
    excDoc.Worksheets(1).Cells(n, 4) = !LuogoNascita
    excDoc.Worksheets(1).Cells(n, 5) = !DataNascita
    excDoc.Worksheets(1).Cells(n, 6) = !CompCri
    excDoc.Worksheets(1).Cells(n, 7) = !DataVer
    excDoc.Worksheets(1).Cells(n, 8) = !DataVer
    excDoc.Worksheets(1).Cells(n, 9) = !DataVer
    .MoveNext 'passa al prossimo record
    Wend
    End With
   rst.Close
   Set rst = Nothing
    If Not blOpen Then
        excDoc.Close savechanges:=True
        excApp.Application.Quit
    End If
esci:
    Set excDoc = Nothing
    Set excApp = Nothing
    Exit Sub
gestErrori:
    MsgBox Err.Number & " - " & Err.Description
    GoTo esci
End Sub
--------------------------------------
sono riuscito ad esportare quello che mi serve in excel, ma non so
come filtrare DataVer.
Come vedi nel codice invece di inserire una tabella, ho inserito una
query, perche' i dati da esportare si trovano su due tabelle. Solo che
ho un problema, non so come filtrare il campo DataVer ed ed esportare
il filtraggio su tre colonne del file excel.
Nella query ho inserito una tabella con i primi 6 campi, e dalla
seconda tabella ho prelevato solo il campo DataVer che si trovano le
date dei pagamenti dei soci.
Ora io avrei bisogno di filtrare questo campo esportando solo un range
di date, e riportarle su tre colonne del file excel.
esempio:
----------------
  DataVer
----------------
24/06/2005
19/01/2006
19/01/2007
13/01/2009
26/01/2010
15/02/2011
----------------
Questi sono i dati presenti nel campo DataVer per ogni socio.
Dovrei filtrare questo unico campo estrapolando solo tre date e
riportarlo nel file excel, una data per ogni colonna.
Spero di non aver fatto un casino per farmi capire.
Ti ringrazio dell'aiuto.