Page 2 of 2 FirstFirst 12
Results 16 to 24 of 24
  1. #16
    diegomarino is offline Competent Performer
    Windows 10 Access 2016
    Join Date
    Feb 2018
    Posts
    409
    good to know, but how can i use it if has no name? right now i use my query def as source from chart...

    Quote Originally Posted by Micron View Post
    FYI if you just create the query def with no name ("") it is truly temporary as it only exists in memory. When the procedure ends, it's gone. Not sure if that is of any interest.
    Dim qdf As DAO.QueryDef


    Dim strSql As String

    strSql = "SELECT..."
    Set qdf = CurrentDb.CreateQueryDef("",strSql)

  2. #17
    Micron is offline Virtually Inert Person
    Windows 10 Access 2016
    Join Date
    Jun 2014
    Location
    Ontario, Canada
    Posts
    12,791
    I just went by the code where I saw the word 'temporary' and went off on a tangent I guess. I really haven't been following this one since post 5 and forgot it was about a chart. Oh well, save it for some other time I guess. I've used it before but it was probably only when creating a recordset from what I'd call volatile sql.
    The more we hear silence, the more we begin to think about our value in this universe.
    Paraphrase of Professor Brian Cox.

  3. #18
    diegomarino is offline Competent Performer
    Windows 10 Access 2016
    Join Date
    Feb 2018
    Posts
    409
    Quote Originally Posted by Micron View Post
    I just went by the code where I saw the word 'temporary' and went off on a tangent I guess. I really haven't been following this one since post 5 and forgot it was about a chart. Oh well, save it for some other time I guess. I've used it before but it was probably only when creating a recordset from what I'd call volatile sql.
    ok thanks, i was just wondering the use, it's great for recordset

  4. #19
    ssanfu is offline Master of Nothing
    Windows 10 Access 2010 32bit
    Join Date
    Sep 2010
    Location
    Anchorage, Alaska, USA
    Posts
    9,664
    From Post #7
    Quote Originally Posted by Minty View Post
    Use

    strSql = " SELECT blah blah "
    strSql = strSql & " More query goes in here "
    strSql = strSql & " Etc etc "
    From Post #9
    Quote Originally Posted by Welshgasman View Post
    You could try aliases as well?
    Just for grins, I did both... (I don't want to go out into the cold and shovel snow! currently 16F/ -9C)

    Code:
      qry = "SELECT P.TrattativaID, Sum(P.Gestito) AS SommaDiGestito, IIf(IsNull([sommadigestito]),0,FormatNumber([sommadigestito]/[totale],3)) AS Valore, 'Gestito' as Investimento," 
      qry = qry & " Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale"
      qry = qry & " FROM Trattative as T INNER JOIN (Candidati as C INNER JOIN Portafoglio as P ON C.IDcandidato = P.CandidatoID) ON T.IDtrattativa = P.TrattativaID"
      qry = qry & " GROUP BY P.TrattativaID"
      qry = qry & " HAVING P.TrattativaID = 442244486458333"
    
      qry = qry & " UNION"
      qry = qry & " SELECT P.TrattativaID, Sum(P.Assicurativo) AS SommaDiAssicurativo, IIf(IsNull([sommadiassicurativo]),0,FormatNumber([sommadiassicurativo]/[totale],3)) AS Valore,
      qry = qry & " 'Assicurativo' as Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale"
      qry = qry & " FROM Trattative as T INNER JOIN (Candidati as C INNER JOIN Portafoglio as P ON C.IDcandidato = P.CandidatoID) ON T.IDtrattativa = P.TrattativaID"
      qry = qry & " GROUP BY P.TrattativaID"
      qry = qry & " HAVING P.TrattativaID = 442244486458333"
    
      qry = qry & " UNION"
      qry = qry & " SELECT P.TrattativaID, Sum(P.[Gestioni patrimoniali]) AS [SommaDiGestioni patrimoniali],"
      qry = qry & " IIf(IsNull([sommadigestioni patrimoniali]),0,FormatNumber([sommadigestioni patrimoniali]/[totale],3)) AS Valore, 'Gestioni patrimoniali' as Investimento,"
      qry = qry & " Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale"
      qry = qry & " FROM Trattative as T INNER JOIN (Candidati as C INNER JOIN Portafoglio as P ON C.IDcandidato = P.CandidatoID) ON T.IDtrattativa = P.TrattativaID"
      qry = qry & " GROUP BY P.TrattativaID"
      qry = qry & " HAVING P.TrattativaID = 442244486458333"
    
      qry = qry & " UNION"
      qry = qry & " SELECT Portafoglio.TrattativaID, Sum(P.Amministrato) AS SommaDiAmministrato, IIf(IsNull([sommadiamministrato]),0,FormatNumber([sommadiamministrato]/[totale],3)) AS Valore,"
      qry = qry & " 'Amministrato' as Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale"
      qry = qry & " FROM Trattative as T INNER JOIN (Candidati as C INNER JOIN Portafoglio as P ON C.IDcandidato = P.CandidatoID) ON T.IDtrattativa = P.TrattativaID"
      qry = qry & " GROUP BY P.TrattativaID"
      qry = qry & " HAVING P.TrattativaID = 442244486458333"
    
      qry = qry & " UNION"
      qry = qry & " SELECT P.TrattativaID, Sum(P.Certificati) AS SommaDiCertificati, IIf(IsNull([sommadicertificati]),0,FormatNumber([sommadicertificati]/[totale],3)) AS Valore,"
      qry = qry & " 'Certificati' as Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale"
      qry = qry & " FROM Trattative as T INNER JOIN (Candidati as C INNER JOIN Portafoglio as P ON C.IDcandidato = P.CandidatoID) ON T.IDtrattativa = P.TrattativaID"
      qry = qry & " GROUP BY P.TrattativaID"
      qry = qry & " HAVING P.TrattativaID = 442244486458333"
    
      qry = qry & " UNION"
      qry = qry & " SELECT P.TrattativaID, Sum(P.Liquidità) AS SommaDiLiquidità, IIf(IsNull([sommadiliquidità]),0,FormatNumber([sommadiliquidità]/[totale],3)) AS Valore,"
      qry = qry & " 'Liquidità' as Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale"
      qry = qry & " FROM Trattative as T INNER JOIN (Candidati as C INNER JOIN Portafoglio as P ON C.IDcandidato = P.CandidatoID) ON T.IDtrattativa = P.TrattativaID"
      qry = qry & " GROUP BY P.TrattativaID"
      qry = qry & " HAVING P.TrattativaID = 442244486458333;"

    Hope I didn't mess up and take out too much...

  5. #20
    diegomarino is offline Competent Performer
    Windows 10 Access 2016
    Join Date
    Feb 2018
    Posts
    409
    Quote Originally Posted by ssanfu View Post
    From Post #7

    From Post #9


    Just for grins, I did both... (I don't want to go out into the cold and shovel snow! currently 16F/ -9C)

    Code:
      qry = "SELECT P.TrattativaID, Sum(P.Gestito) AS SommaDiGestito, IIf(IsNull([sommadigestito]),0,FormatNumber([sommadigestito]/[totale],3)) AS Valore, 'Gestito' as Investimento," 
      qry = qry & " Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale"
      qry = qry & " FROM Trattative as T INNER JOIN (Candidati as C INNER JOIN Portafoglio as P ON C.IDcandidato = P.CandidatoID) ON T.IDtrattativa = P.TrattativaID"
      qry = qry & " GROUP BY P.TrattativaID"
      qry = qry & " HAVING P.TrattativaID = 442244486458333"
    
      qry = qry & " UNION"
      qry = qry & " SELECT P.TrattativaID, Sum(P.Assicurativo) AS SommaDiAssicurativo, IIf(IsNull([sommadiassicurativo]),0,FormatNumber([sommadiassicurativo]/[totale],3)) AS Valore,
      qry = qry & " 'Assicurativo' as Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale"
      qry = qry & " FROM Trattative as T INNER JOIN (Candidati as C INNER JOIN Portafoglio as P ON C.IDcandidato = P.CandidatoID) ON T.IDtrattativa = P.TrattativaID"
      qry = qry & " GROUP BY P.TrattativaID"
      qry = qry & " HAVING P.TrattativaID = 442244486458333"
    
      qry = qry & " UNION"
      qry = qry & " SELECT P.TrattativaID, Sum(P.[Gestioni patrimoniali]) AS [SommaDiGestioni patrimoniali],"
      qry = qry & " IIf(IsNull([sommadigestioni patrimoniali]),0,FormatNumber([sommadigestioni patrimoniali]/[totale],3)) AS Valore, 'Gestioni patrimoniali' as Investimento,"
      qry = qry & " Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale"
      qry = qry & " FROM Trattative as T INNER JOIN (Candidati as C INNER JOIN Portafoglio as P ON C.IDcandidato = P.CandidatoID) ON T.IDtrattativa = P.TrattativaID"
      qry = qry & " GROUP BY P.TrattativaID"
      qry = qry & " HAVING P.TrattativaID = 442244486458333"
    
      qry = qry & " UNION"
      qry = qry & " SELECT Portafoglio.TrattativaID, Sum(P.Amministrato) AS SommaDiAmministrato, IIf(IsNull([sommadiamministrato]),0,FormatNumber([sommadiamministrato]/[totale],3)) AS Valore,"
      qry = qry & " 'Amministrato' as Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale"
      qry = qry & " FROM Trattative as T INNER JOIN (Candidati as C INNER JOIN Portafoglio as P ON C.IDcandidato = P.CandidatoID) ON T.IDtrattativa = P.TrattativaID"
      qry = qry & " GROUP BY P.TrattativaID"
      qry = qry & " HAVING P.TrattativaID = 442244486458333"
    
      qry = qry & " UNION"
      qry = qry & " SELECT P.TrattativaID, Sum(P.Certificati) AS SommaDiCertificati, IIf(IsNull([sommadicertificati]),0,FormatNumber([sommadicertificati]/[totale],3)) AS Valore,"
      qry = qry & " 'Certificati' as Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale"
      qry = qry & " FROM Trattative as T INNER JOIN (Candidati as C INNER JOIN Portafoglio as P ON C.IDcandidato = P.CandidatoID) ON T.IDtrattativa = P.TrattativaID"
      qry = qry & " GROUP BY P.TrattativaID"
      qry = qry & " HAVING P.TrattativaID = 442244486458333"
    
      qry = qry & " UNION"
      qry = qry & " SELECT P.TrattativaID, Sum(P.Liquidità) AS SommaDiLiquidità, IIf(IsNull([sommadiliquidità]),0,FormatNumber([sommadiliquidità]/[totale],3)) AS Valore,"
      qry = qry & " 'Liquidità' as Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale"
      qry = qry & " FROM Trattative as T INNER JOIN (Candidati as C INNER JOIN Portafoglio as P ON C.IDcandidato = P.CandidatoID) ON T.IDtrattativa = P.TrattativaID"
      qry = qry & " GROUP BY P.TrattativaID"
      qry = qry & " HAVING P.TrattativaID = 442244486458333;"

    Hope I didn't mess up and take out too much...

    i thought it worked....but always gives the same error..

  6. #21
    ssanfu is offline Master of Nothing
    Windows 10 Access 2010 32bit
    Join Date
    Sep 2010
    Location
    Anchorage, Alaska, USA
    Posts
    9,664
    1) What is the field type for Portafoglio.TrattativaID? Is it Text, Number/Long Integer, ????


    2) Try this
    Code:
      qry = "SELECT P.TrattativaID, Sum(P.Gestito) AS SommaDiGestito, IIf(IsNull([sommadigestito]),0,FormatNumber([sommadigestito]/[totale],3)) AS Valore, 'Gestito' as Investimento," 
      qry = qry & " Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale"
      qry = qry & " FROM Trattative as T INNER JOIN (Candidati as C INNER JOIN Portafoglio as P ON C.IDcandidato = P.CandidatoID) ON T.IDtrattativa = P.TrattativaID"
      qry = qry & " GROUP BY P.TrattativaID"
      qry = qry & " HAVING P.TrattativaID = 442244486458333"
    
    Debug.Print qry
    Does the SQL look correct?

    2a) Create a new query and paste in the SQL from the Debug statement, then execute the query. What is the result?

  7. #22
    diegomarino is offline Competent Performer
    Windows 10 Access 2016
    Join Date
    Feb 2018
    Posts
    409
    thanks
    i used this sql that's more correct (this was a old query with other stuff inside)
    Code:
      qry = "SELECT Portafoglio.TrattativaID, Sum(P.Gestito) AS SommaDiGestito, IIf(IsNull([sommadigestito]),0,FormatNumber([sommadigestito]/[totale],3)) AS Valore, 'Gestito' as Investimento,"  qry = qry & " Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale"
      qry = qry & " FROM Portafoglio"
      qry = qry & " HAVING Portafoglio.TrattativaID = 442244486458333"

    i made the debug print and i got

    Code:
    SELECT Portafoglio.TrattativaID, Sum(Gestito) AS SommaDiGestito, IIf(IsNull([sommadigestito]),0,FormatNumber([sommadigestito]/[totale],3)) AS Valore, 'Gestito' as Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale FROM Portafoglio HAVING Portafoglio.TrattativaID = 442244486458333
    made a query with this sql and it returns "the query doesn't include the expression 'trattativaid' as a part of aggregation function" (more or less, i had to translate)

    ps TrattativaID" is a number
    Last edited by diegomarino; 03-04-2021 at 08:34 AM.

  8. #23
    ssanfu is offline Master of Nothing
    Windows 10 Access 2010 32bit
    Join Date
    Sep 2010
    Location
    Anchorage, Alaska, USA
    Posts
    9,664
    Quote Originally Posted by diegomarino View Post
    ..... TrattativaID" is a number
    OK, but what type of number?? Integer, Long Integer, Single, Double???
    I'm guessing it is a Double because the MAXIMUM Value for a LONG INTEGER Field 2,147,483,647 and you are filtering with 442,244,486,458,333 (too big for a Long).


    Since you have posted a different query, is the whole UNION query changing?

    You got the error because you are using a TOTALS query. In the query design view, for the field Portafoglio.TrattativaID, the Totals row is undefined.
    I modified your newest query to this
    Code:
    SELECT Portafoglio.TrattativaID, Sum(Portafoglio.Gestito) AS SommaDiGestito, IIf(IsNull([sommadigestito]),0,FormatNumber([sommadigestito]/[totale],3)) AS Valore, 'Gestito' AS Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale
    FROM Portafoglio
    GROUP BY Portafoglio.TrattativaID, 'Gestito'
    HAVING (((Portafoglio.TrattativaID)=442244486458333));
    You should read up on "Totals query"....


    I would suggest getting a query to return the results you want, then build the UNION query or Post your dB. It is hard to trouble shoot a query when you don't know the dB design and you have no data.


    BTW, you should not use spaces in object names (gestioni patrimoniali).
    Also, "Valore" (Value) is a reserved word in Access and shouldn't be used for object names.

  9. #24
    diegomarino is offline Competent Performer
    Windows 10 Access 2016
    Join Date
    Feb 2018
    Posts
    409
    thanks, sure it is a total query so this is the problem

    TrattativaID is a double

    good advice on spaces in fields...but i made it when i didn't know it and now i don't want to change everywhere this field is mentioned in vba



    i tried the new code
    Code:
    SELECT Portafoglio.TrattativaID, Sum(Portafoglio.Gestito) AS SommaDiGestito, IIf(IsNull([sommadigestito]),0,FormatNumber([sommadigestito]/[totale],3)) AS Valore, 'Gestito' AS Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS TotaleFROM Portafoglio
    GROUP BY Portafoglio.TrattativaID, 'Gestito' HAVING (((Portafoglio.TrattativaID)=442244486458333));
    got the debug print and made a query on that debud print.
    i have a the correct result, but i tried then the unions

    Code:
    'qry = "SELECT Portafoglio.TrattativaID, Sum(Portafoglio.Gestito) AS SommaDiGestito, IIf(IsNull([sommadigestito]),0,FormatNumber([sommadigestito]/[totale],3)) AS Valore, 'Gestito' AS Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale FROM Portafoglio GROUP BY Portafoglio.TrattativaID, 'Gestito'HAVING (((Portafoglio.TrattativaID)=442244486458333)); "'qry = qry & "UNION SELECT Portafoglio.TrattativaID, Sum(Portafoglio.Assicurativo) AS SommaDiAssicurativo, IIf(IsNull([SommaDiAssicurativo]),0,FormatNumber([SommaDiAssicurativo]/[totale],3)) AS Valore, 'Assicurativo' AS Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale FROM Portafoglio GROUP BY Portafoglio.TrattativaID, 'Gestito'HAVING (((Portafoglio.TrattativaID)=442244486458333)); "
    'qry = qry & "UNION SELECT Portafoglio.TrattativaID, Sum(Portafoglio.[Gestioni Patrimoniali]) AS [SommaDiGestioni patrimoniali], IIf(IsNull([SommaDiGestioni patrimoniali]),0,FormatNumber([SommaDiGestioni patrimoniali]/[totale],3)) AS Valore, 'Gestioni patrimoniali' AS Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale FROM Portafoglio GROUP BY Portafoglio.TrattativaID, 'Gestito'HAVING (((Portafoglio.TrattativaID)=442244486458333)); "
    'qry = qry & "UNION SELECT Portafoglio.TrattativaID, Sum(Portafoglio.Amministrato) AS SommaDiAmministrato, IIf(IsNull([SommaDiAmministrato]),0,FormatNumber([SommaDiAmministrato]/[totale],3)) AS Valore, 'Amministrato' AS Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale FROM Portafoglio GROUP BY Portafoglio.TrattativaID, 'Gestito'HAVING (((Portafoglio.TrattativaID)=442244486458333)); "
    'qry = qry & "UNION SELECT Portafoglio.TrattativaID, Sum(Portafoglio.Certificati) AS SommaDiCertificati, IIf(IsNull([SommaDiCertificati]),0,FormatNumber([SommaDiCertificati]/[totale],3)) AS Valore, 'Certificati' AS Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale FROM Portafoglio GROUP BY Portafoglio.TrattativaID, 'Gestito'HAVING (((Portafoglio.TrattativaID)=442244486458333)); "
    'qry = qry & "UNION SELECT Portafoglio.TrattativaID, Sum(Portafoglio.Liquidità) AS SommaDiLiquidità, IIf(IsNull([SommaDiLiquidità]),0,FormatNumber([SommaDiLiquidità]/[totale],3)) AS Valore, 'Liquidità' AS Investimento, Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale FROM Portafoglio GROUP BY Portafoglio.TrattativaID, 'Gestito'HAVING (((Portafoglio.TrattativaID)=442244486458333));"
    and i got the same error, string too long.
    I think the only way is through querdy def...

Page 2 of 2 FirstFirst 12
Please reply to this thread with any new information or opinions.

Similar Threads

  1. Replies: 2
    Last Post: 02-28-2019, 06:58 AM
  2. Replies: 1
    Last Post: 02-25-2015, 04:40 PM
  3. Replies: 13
    Last Post: 01-11-2012, 09:44 PM
  4. Replies: 3
    Last Post: 10-14-2011, 04:50 PM
  5. Text too long, error message
    By taylormotm in forum Access
    Replies: 13
    Last Post: 06-18-2009, 07:24 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Other Forums: Microsoft Office Forums