Ciao,
non riesco a far costruire dinamicamente un select union qualora vi fossero delle condizioni.
Senza la union la query funziona correttamente, ma inserendo la seconda select non riesce più a prendere i valori.

In pratica nel corpo principale (dove gestisco la form) ho la seguente chiamata:
codice:
Public Function GetReportData(bWithInt As Boolean, Optional idCen As Variant, Optional codS As Variant, Optional idQ As Variant) As Recordset
    Dim strSQL As String
    
    strSQL = GetSelect(bWithInt) & GetWhere(idCen, codS, idQ) & GetOrderBy(bWithInt)
    
    Set GetReportData = Query(strSQL, UserName, Password, DbName)
End Function
mentre nel corpo di gestione delle query:
codice:
Public Function GetSelect(bWithInt As Boolean, Optional idCen As Variant, Optional codS As Variant, Optional idQ As Variant) As String
    
    If bWithInt Then
        GetSelect = GetSelectQEInt & GetWhere(idCen, codS, idQ) & GetSelectQESub & GetWhere(idCen, codS, idQ)
    Else
        GetSelect = GetSelectQ
    End If
End Function
Andando in debug le variabili idCen, codS e idQ sono valorizzate nella Function GetReportData mentre non lo sono nella Function GetSelect
Dato che la quer mi deve restituire i valori se imposto certe condizioni e non per tutto il db vorrei capire perché e come aggirare il fatto che quando cerco di costruire la query non mi trovo valorizzate le variabili.
Mi viene in mente che il problema possa dipendere dalla dichiarazione delle variabili stesse, faccio presente che idCen e idQ sono di tipo numerico e codS è di tipo stringa.

Spero che qualcuno possa aiutarmi.
Grazie in anticipo.