Condividi tramite

Problema con query - DoCmd.OpenQuery

Anonimo
2023-08-01T13:20:56+00:00

Ciao a tutti

ho un problema circa l'esportazione, in formato excel, di dati estratti da una query.

In particolare la query esistente che si chiama "Qry_progetto_anagrafica_ripartizione_da_liquidare" contiene una serie di record i cui id_prog sono diversi.

Il mio intento è estrarre da questa query "generale " solo i recordi il cui id_prog è uguale ad una selezione filtrata eseguita da una maschera. Vi allego la maschera con la quale filtro :

come potete notare, ho filtrato mediante delle combo ed il filtro mi ha restituito una sola riga contente alcune informazioni.

Sulla dx dell'immagine ho inserito un pulsante con il simbolo di excel (esportazione) in cui ho inserito questo codice (adattato sulla farsa riga del codice che utilizzo per l'esportazione di un report in formato pdf)

Private Sub export_Click()

***DoCmd.OpenQuery "Qry\_progetto\_anagrafica\_ripartizione\_da\_liquidare", , acHidden, "id\_prog = " & Me.Id\_prog*** 

***DoCmd.OutputTo acOutputQuery, "Qry\_progetto\_anagrafica\_ripartizione\_da\_liquidare", acFormatXLSX, "C:\_schede\" & Me.Descrizione\_Servizio & Me.num\_scheda & ".xlsx"*** 

***DoCmd.Close acQuery, "Qry\_progetto\_anagrafica\_ripartizione\_da\_liquidare"*** 

***MsgBox "Esportazione completata con successo!"*** 

End Sub

Alla pressione del tasto export (icona di excel) mi vienere restituito il seguente messaggio di errore:

Non essendo ferrato nella gestione di esportazioni in excel, e dovendo dare ad un collega di ufficio i dati editabili in formato excel, appunto, chiedo a voi il metodo giusto per eseguire questa esportazione.

Come avrete notato dal mio codice il file dovrebbe essere salvato in una cartella con Descrizione_Servizio e Numero scheda (dati presenti nella query ma anche nella form filtrata.

L'Id_prog è la chiave per l'estrazione dei soli record di cui vorrei l'estrazione in excel.

Grazie in anticipo per chiunque voglia aiutarmi.

Luca

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

6 risposte

Ordina per: Più utili
  1. Anonimo
    2023-08-01T19:35:25+00:00

    Mi dispiace per l'inconveniente, purtroppo non ho ulteriori problemi da offrire.

    Ci sono molti utenti esperti attivi sul forum e spero che qualcun altro possa offrire ulteriori approfondimenti sul tuo problema.

    Grazie

    Adeyemi

    Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-08-01T17:09:51+00:00

    Ciao Carletto

    l'sql è molto lunga per cui ti allego immagine di come ho realiizato la query

    ad ogni modo di incollo l'sql della query:

    SELECT Progetto_incentivi.Id_prog, Servizio.Descrizione_Servizio, Progetto_incentivi.Anno_liquidazione, Progetto_incentivi.Oggetto_progetto, Progetto_incentivi.Fondi_comunitari, Progetto_incentivi.Missione, Progetto_incentivi.CUP, Progetto_incentivi.Det_approvazione_Collaudo, Progetto_incentivi.Importo_base_asta, Progetto_incentivi.Fondo_incentivo, Progetto_incentivi.Fondo_innovazione, Progetto_incentivi.Num_scheda, Progetto_incentivi.Importo_fondo, Progetto_incentivi.Quota_teorica_ripartibile, Progetto_incentivi.Quota_ripartita, [det_numero] & " - " & [det_data] AS Det_liquidazione, Progetto_incentivi.Incentivo_liquidato, Anagrafica.Cognome_Nome, Anagrafica.Unita_Operativa, Anagrafica.Comune_nascita, Anagrafica.data_nascita, Anagrafica.Indirizzo, Anagrafica.Comune_Residenza, Anagrafica.Matricola, Anagrafica.tipo_rapporto, Anagrafica.profilo_professionale, Anagrafica.data_assunzione, Anagrafica.INAIL, Anagrafica.CPDEL, Anagrafica.IRAP, Anagrafica.Codice_Fiscale, Quota_incentivi.Importo_lordo, Quota_incentivi.Ritenuta_inail, Quota_incentivi.Ritenuta_cpdel, Quota_incentivi.Ritenuta_irap, Quota_incentivi.Importo_netto, [quota_teorica_ripartibile]-[quota_ripartita] AS Economia, Anagrafica.id_anagrafica, Rup.Descrizione_Rup, IIf([Importo_netto]+[Ritenuta_irap]+[Ritenuta_cpdel]+[Ritenuta_inail]<=[Importo_lordo],"Ok","Ko") AS Verifica_importi

    FROM Rup INNER JOIN ((Servizio INNER JOIN Progetto_incentivi ON Servizio.ID_servizio = Progetto_incentivi.Servizio_id) INNER JOIN (Anagrafica INNER JOIN Quota_incentivi ON Anagrafica.id_anagrafica = Quota_incentivi.[Anagrafica_id]) ON Progetto_incentivi.Id_prog = Quota_incentivi.progetto_id) ON Rup.IDRup = Servizio.Rup_id

    GROUP BY Progetto_incentivi.Id_prog, Servizio.Descrizione_Servizio, Progetto_incentivi.Anno_liquidazione, Progetto_incentivi.Oggetto_progetto, Progetto_incentivi.Fondi_comunitari, Progetto_incentivi.Missione, Progetto_incentivi.CUP, Progetto_incentivi.Det_approvazione_Collaudo, Progetto_incentivi.Importo_base_asta, Progetto_incentivi.Fondo_incentivo, Progetto_incentivi.Fondo_innovazione, Progetto_incentivi.Num_scheda, Progetto_incentivi.Importo_fondo, Progetto_incentivi.Quota_teorica_ripartibile, Progetto_incentivi.Quota_ripartita, [det_numero] & " - " & [det_data], Progetto_incentivi.Incentivo_liquidato, Anagrafica.Cognome_Nome, Anagrafica.Unita_Operativa, Anagrafica.Comune_nascita, Anagrafica.data_nascita, Anagrafica.Indirizzo, Anagrafica.Comune_Residenza, Anagrafica.Matricola, Anagrafica.tipo_rapporto, Anagrafica.profilo_professionale, Anagrafica.data_assunzione, Anagrafica.INAIL, Anagrafica.CPDEL, Anagrafica.IRAP, Anagrafica.Codice_Fiscale, Quota_incentivi.Importo_lordo, Quota_incentivi.Ritenuta_inail, Quota_incentivi.Ritenuta_cpdel, Quota_incentivi.Ritenuta_irap, Quota_incentivi.Importo_netto, [quota_teorica_ripartibile]-[quota_ripartita], Anagrafica.id_anagrafica, Rup.Descrizione_Rup, IIf([Importo_netto]+[Ritenuta_irap]+[Ritenuta_cpdel]+[Ritenuta_inail]<=[Importo_lordo],"Ok","Ko")

    HAVING (((Progetto_incentivi.Incentivo_liquidato)=False))

    ORDER BY Anagrafica.Cognome_Nome;

    Ciao

    Luca

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2023-08-01T16:23:18+00:00

    Mostra l'Sql della Qry_progetto_anagrafica_ripartizione_da_liquidare.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2023-08-01T13:54:03+00:00

    Ciao Luca

    Sono Adeyemi e sarei felice di aiutarti con la tua domanda.

    In base alle informazioni fornite, sembra che si stia tentando di esportare i dati da una query in Microsoft Access in un file di Excel, ma si verifica un errore durante il tentativo di eseguire questa operazione. Il messaggio di errore fornito suggerisce che potrebbe esserci un problema con il modo in cui si apre la query utilizzando il metodo 'DoCmd.OpenQuery'.

    Un possibile problema è che il quarto argomento del metodo 'DoCmd.OpenQuery', che specifica una condizione WHERE da applicare alla query, non viene utilizzato correttamente. Invece di passare la condizione WHERE come quarto argomento del metodo 'DoCmd.OpenQuery', è possibile provare a modificare l'SQL della query per includere la condizione WHERE prima di aprirla. Ecco un esempio di come potresti farlo:

    '''VBA Sub privato export_Click() Dim qdf As QueryDef Set qdf = CurrentDb.QueryDefs("Qry_progetto_anagrafica_ripartizione_da_liquidare") QDF. SQL = "SELECT * FROM Qry_progetto_anagrafica_ripartizione_da_liquidare WHERE id_prog=" & Me.Id_prog DoCmd.OpenQuery "Qry_progetto_anagrafica_ripartizione_da_liquidare", , acHidden DoCmd.OutputTo acOutputQuery, "Qry_progetto_anagrafica_ripartizione_da_liquidare", acFormatXLSX, "C:_schede" & Me.Descrizione_Servizio & Me.num_scheda & ".xlsx" DoCmd.Close acQuery, "Qry_progetto_anagrafica_ripartizione_da_liquidare" MsgBox "Esportazione completata!" Fine sub

    
    Questo codice modifica l'SQL della query per includere una condizione WHERE che filtra i record in base al valore di 'Me.Id\_prog', quindi apre la query ed esporta i relativi dati in un file Excel.
    
    Spero che questo aiuti! 
    
    Se non gentilmente fammi sapere.
    
    Restituisci alla comunità. Aiuta la prossima persona che ha questo problema indicando se questa risposta ha risolto il tuo problema. Fai clic su Sì o No di seguito
    
    Saluti
    Adeyemi  
    
    *Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.*
    

    La risposta è stata utile?

    0 commenti Nessun commento