Condividi tramite

Esporta dati in Excel da elenco filtrato

Anonimo
2019-10-27T10:48:21+00:00

Buongiorno a tutti

Una maschera continua visualizza l'elenco dei clienti e, a seconda dell'agente loggato, la maschera visualizza solo i clienti relativi all'agente e, nel caso in cui l'agente/utente loggato sia la direzione, la maschera visualizza l'elenco completo dei clienti.

In testa alla maschera, ho inserito un pulsante che permette di esportare la tabella clienti in Excel.

E' possibile fare in modo che, nel caso in cui l'agente loggato sia diverso dalla Direzione, vengano esportati solo i record relativi ai clienti dell'agente loggato?

Grazie a tutti per l'attenzione

Ciro

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2019-10-28T08:57:55+00:00

ciao Ciro,

crea una query e chiamandola come vuoi.

Prova a creare un command button che modifica on the fly la query che hai salvato.

Supponendo si chiami query3,

Const strSql As String = "select * from clienti " ' occhio allo spazio dopo il nome della tabella.

Dim qdf As DAO.QueryDef

Set qdf = DBEngine(0)(0).QueryDefs("query3")

qdf.SQL = strSql & me.filter

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "query3", "tuoFullPathFile.xlsx", -1 ' personalizza il nome del percorso completo del file di Excel

qdf.Close

Set qdf = Nothing

valuta anche il metodo outPutTO, sicuramente meno efficiente rispetto a TransferSpreadsheet, ma ti consente qualche minima formattazione.

Generalmente per questo genere di cose io opto per l'automazione aprendo una istanza verso Excel, ma ognuno ha I suoi approcci.

Ciao, Sandro.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

5 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2019-10-28T13:56:11+00:00

    Ciao Sandro,

    ringrazio te e Mimmo per l'aiuto, alla fine ho optato per entrambe le soluzioni, in pratica ho scritto il seguente codice:

    Private Sub Immagine46_Click()

        On Error GoTo Errore

        DoCmd.SetWarnings (WarningOff)

        DoCmd.RunSQL "SELECT CLIENTE.* INTO tblFiltrati FROM CLIENTE Where " & Me.Filter

        Dim Message, Title, Default, MyValue

        Message = "Inserire il nome del File da salvare...!"  ' Set prompt.

        Title = "Esporta Tabella Clienti in Excel"    ' Set title.

        Default = ""    ' Set default.

        ' Display message, title, and default value.

        MyValue = InputBox(Message, Title, Default)

        If MyValue = "" Then GoTo Errore

        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "tblFiltrati", Me.PERCORSO & "" & MyValue & ".xlsx", t

    Dim strInput As String

        strInput = (Me.PERCORSO & "" & MyValue & ".xlsx")

        Application.FollowHyperlink strInput, , True

        GetUserAddress = True

        GoTo A

    Errore:

        MsgBox "Non hai selezionato il nome del file " & vbCrLf & vbCrLf & "o stai tentando di aprire un file non correttamente salvato" & vbCrLf & vbCrLf & "prova a ripetere la procedura!!!", vbCritical, "ATTENZIONE!!!"

    A:

        DoCmd.SetWarnings (WarningOn)

    End Sub

    Grazie ancora a entrambi per l'aiuto prezioso.

    a presto

    Ciro

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2019-10-27T17:36:08+00:00

    Ciao,

    quindi hai un me.filter da sfruttare.

    Prova a creare una tabella temporanea con

    DoCmd.runSql ("SELECT CLIENTE.* INTO tblFiltrati FROM CLIENTE Where " & Me.Filter

    quindi esporta la tabella tblFiltrati.

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2019-10-27T12:57:30+00:00

    Ciao Mimmo,

    grazie per la risposta, il problema è che non posso usare la query origine dei dati semplicemente perché, questa seleziona tutti i record, i filtri vengono applicati successivamente per mezzo di combo

    Ciro

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2019-10-27T11:27:52+00:00

    Ciao,

    prova ad esportare in Excel utilizzando la query origine  dati della maschera.

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento