I don't see where you've substituted double quotes for single quotes.
Anyway, try this:
Code:
Me.[portafoglio trasferibile].form.recordsource = "SELECT Portafoglio.CandidatoID, Portafoglio.TrattativaID, Aziende.Azienda, Portafoglio.Cliente, Portafoglio.[Tipo di cliente], Portafoglio.Gestito, Portafoglio.Assicurativo, Portafoglio.[Gestioni patrimoniali], Portafoglio.Amministrato, Portafoglio.Certificati, Portafoglio.Liquidità, Portafoglio.[Anno inizio rapporto], Portafoglio.Fidelizzazione, Portafoglio.Impieghi, Portafoglio.Trasferibile, Switch([trasferibile]=""Sicuro"",1,[trasferibile]=""probabile"",2,[trasferibile]=""possibile"",3,[trasferibile]=""improbabile"",4,[trasferibile]=""negativo"",5) AS [Trasferibile numerico], Trattative.[Livello minimo trasferibile], Switch([livello minimo trasferibile]=""Sicuro"",1,[livello minimo trasferibile]=""probabile"",2,[livello minimo trasferibile]=""possibile"",3,[livello minimo trasferibile]=""improbabile"",4,[livello minimo trasferibile]=""negativo"",5) AS [livello minimo trasferibile numerico], IIf([livello minimo trasferibile numerico]>=[trasferibile numerico],True,False) AS [In linea], Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([liquidità]) AS Totale, Switch([totale]<100000,""<100k"",[totale] Between 100000 And 299999,""100k-300k"",[totale] Between 300000 And 499999,""300k-500k"",[totale] Between 500000 And 699999,""500k-700k"",[totale] Between 700000 And 1000000,""700k-1mln"",[totale] Between 1000000 And 1999999,""1mln-2mln"",[totale] Between 2000000 And 4999999,""2mln-5mln"",[totale] Between 5000000 And 9999999,""5mln-10mln"",[totale]>=10000000,"">=10mln"") AS [Taglio cliente]FROM (Aziende INNER JOIN Clienti ON Aziende.IDazienda = Clienti.AziendaID) INNER JOIN (Trattative INNER JOIN Portafoglio ON Trattative.IDtrattativa = Portafoglio.TrattativaID) ON Clienti.IDCliente = Trattative.ClienteID;"
But something like this is more readable and easier to modify later:
Code:
Dim qry As String
qry = "SELECT Portafoglio.CandidatoID" & vbcrlf
qry = qry & " , Portafoglio.TrattativaID" & vbcrlf
qry = qry & " , Aziende.Azienda" & vbcrlf
qry = qry & " , Portafoglio.Cliente" & vbcrlf
qry = qry & " , Portafoglio.[Tipo di cliente]" & vbcrlf
qry = qry & " , Portafoglio.Gestito" & vbcrlf
qry = qry & " , Portafoglio.Assicurativo" & vbcrlf
qry = qry & " , Portafoglio.[Gestioni patrimoniali]" & vbcrlf
qry = qry & " , Portafoglio.Amministrato" & vbcrlf
qry = qry & " , Portafoglio.Certificati" & vbcrlf
qry = qry & " , Portafoglio.Liquidità" & vbcrlf
qry = qry & " , Portafoglio.[Anno inizio rapporto]" & vbcrlf
qry = qry & " , Portafoglio.Fidelizzazione" & vbcrlf
qry = qry & " , Portafoglio.Impieghi" & vbcrlf
qry = qry & " , Portafoglio.Trasferibile" & vbcrlf
qry = qry & " , SWITCH([trasferibile] = ""Sicuro"", 1, [trasferibile] = ""probabile"", 2, [trasferibile] = ""possibile"", 3, [trasferibile] = ""improbabile"", 4, [trasferibile] = ""negativo"", 5) AS [Trasferibile numerico]" & vbcrlf
qry = qry & " , Trattative.[Livello minimo trasferibile]" & vbcrlf
qry = qry & " , SWITCH([livello minimo trasferibile] = ""Sicuro"", 1, [livello minimo trasferibile] = ""probabile"", 2, [livello minimo trasferibile] = ""possibile"", 3, [livello minimo trasferibile] = ""improbabile"", 4, [livello minimo trasferibile] = ""negativo"", 5) AS [livello minimo trasferibile numerico]" & vbcrlf
qry = qry & " , IIF([livello minimo trasferibile numerico] >= [trasferibile numerico], True, False) AS [In linea]" & vbcrlf
qry = qry & " , NZ([gestito]) + NZ([assicurativo])" & vbcrlf
qry = qry & " + NZ([gestioni patrimoniali])" & vbcrlf
qry = qry & " + NZ([amministrato]) + NZ([certificati])" & vbcrlf
qry = qry & " + NZ([liquidità]) AS Totale" & vbcrlf
qry = qry & " , SWITCH([totale] < 100000, ""<100k"", [totale] BETWEEN 100000 AND 299999, ""100k-300k"", [totale] BETWEEN 300000 AND 499999, ""300k-500k"", [totale] BETWEEN 500000 AND 699999, ""500k-700k"", [totale] BETWEEN 700000 AND 1000000, ""700k-1mln"", [totale] BETWEEN 1000000 AND 1999999, ""1mln-2mln"", [totale] BETWEEN 2000000 AND 4999999, ""2mln-5mln"", [totale] BETWEEN 5000000 AND 9999999, ""5mln-10mln"", [totale] >= 10000000, "">=10mln"") AS [Taglio cliente]" & vbcrlf
qry = qry & " FROM (Aziende" & vbcrlf
qry = qry & " INNER JOIN Clienti" & vbcrlf
qry = qry & " ON Aziende.IDazienda = Clienti.AziendaID)" & vbcrlf
qry = qry & " INNER JOIN (Trattative" & vbcrlf
qry = qry & " INNER JOIN Portafoglio" & vbcrlf
qry = qry & " ON Trattative.IDtrattativa = Portafoglio.TrattativaID)" & vbcrlf
qry = qry & " ON Clienti.IDCliente = Trattative.ClienteID;"
Me.[portafoglio trasferibile].form.recordsource = qry
This is a handy tool to convert sql code to a vba string: http://allenbrowne.com/ser-71.html
But I used this tool and changed the output option to VB: http://www.dpriver.com/pp/sqlformat.htm