Results 1 to 7 of 7
  1. #1
    diegomarino is offline Competent Performer
    Windows 10 Access 2016
    Join Date
    Feb 2018
    Posts
    409

    form not running code when fubform

    Hi,


    i have a form that works perfectly when is open as form, this is the code

    Code:
    Private Sub Form_Open(Cancel As Integer)      Dim db As DAO.Database
          Set db = CurrentDb
          Dim qdf As DAO.QueryDef
          Me.RecordSource = "SELECT Portafoglio.TrattativaID, Portafoglio.CandidatoID, Candidati.nomecognome, Sum(Portafoglio.Gestito) AS SommaDiGestito, IIf(IsNull([sommadigestito]),0,FormatNumber([sommadigestito]/[totale],3)) AS [%Gestito], Sum(Portafoglio.Assicurativo) AS SommaDiAssicurativo, IIf(IsNull([sommadiassicurativo]),0,FormatNumber([sommadiassicurativo]/[totale],3)) AS [%Assicurativo], Sum(Portafoglio.[Gestioni patrimoniali]) AS [SommaDiGestioni patrimoniali], IIf(IsNull([sommadigestioni patrimoniali]),0,FormatNumber([sommadigestioni patrimoniali]/[totale],3)) AS [%Gestioni patrimoniali], Sum(Portafoglio.Amministrato) AS SommaDiAmministrato, IIf(IsNull([sommadiamministrato]),0,FormatNumber([sommadiamministrato]/[totale],3)) AS [%Amministrato], Sum(Portafoglio.Certificati) AS SommaDiCertificati, IIf(IsNull([sommadicertificati]),0,FormatNumber([sommadicertificati]/[totale],3)) AS [%Certificati], Sum(Portafoglio.Liquidità) AS SommaDiLiquidità, " & vbCrLf & _
             "IIf(IsNull([sommadiliquidità]),0,FormatNumber([sommadiliquidità]/[totale],3)) AS [%Liquidità], Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale, Count(Portafoglio.cliente) AS ConteggioDicliente, FormatCurrency(Round(Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità]))/[conteggiodicliente],0),0) AS Media, First(Trattative.[Note portafoglio gestito in banca]) AS [PrimoDiNote portafoglio gestito in banca] " & vbCrLf & _
             "FROM Trattative INNER JOIN (Candidati INNER JOIN Portafoglio ON Candidati.IDcandidato = Portafoglio.CandidatoID) ON Trattative.IDtrattativa = Portafoglio.TrattativaID " & vbCrLf & _
             "GROUP BY Portafoglio.TrattativaID, Portafoglio.CandidatoID, Candidati.nomecognome " & vbCrLf & _
             "HAVING (Portafoglio.TrattativaID= " & Me.OpenArgs & " );"
          Set qdf = db.CreateQueryDef("ANALISI BANCA", "SELECT Portafoglio.TrattativaID, Portafoglio.CandidatoID, Candidati.nomecognome, Sum(Portafoglio.Gestito) AS SommaDiGestito, IIf(IsNull([sommadigestito]),0,FormatNumber([sommadigestito]/[totale],3)) AS [%Gestito], Sum(Portafoglio.Assicurativo) AS SommaDiAssicurativo, IIf(IsNull([sommadiassicurativo]),0,FormatNumber([sommadiassicurativo]/[totale],3)) AS [%Assicurativo], Sum(Portafoglio.[Gestioni patrimoniali]) AS [SommaDiGestioni patrimoniali], IIf(IsNull([sommadigestioni patrimoniali]),0,FormatNumber([sommadigestioni patrimoniali]/[totale],3)) AS [%Gestioni patrimoniali], Sum(Portafoglio.Amministrato) AS SommaDiAmministrato, IIf(IsNull([sommadiamministrato]),0,FormatNumber([sommadiamministrato]/[totale],3)) AS [%Amministrato], Sum(Portafoglio.Certificati) AS SommaDiCertificati, IIf(IsNull([sommadicertificati]),0,FormatNumber([sommadicertificati]/[totale],3)) AS [%Certificati], Sum(Portafoglio.Liquidità) AS SommaDiLiquidità, " & vbCrLf & _
             "IIf(IsNull([sommadiliquidità]),0,FormatNumber([sommadiliquidità]/[totale],3)) AS [%Liquidità], Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale, Count(Portafoglio.cliente) AS ConteggioDicliente, FormatCurrency(Round(Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità]))/[conteggiodicliente],0),0) AS Media, First(Trattative.[Note portafoglio gestito in banca]) AS [PrimoDiNote portafoglio gestito in banca] " & vbCrLf & _
             "FROM Trattative INNER JOIN (Candidati INNER JOIN Portafoglio ON Candidati.IDcandidato = Portafoglio.CandidatoID) ON Trattative.IDtrattativa = Portafoglio.TrattativaID " & vbCrLf & _
             "GROUP BY Portafoglio.TrattativaID, Portafoglio.CandidatoID, Candidati.nomecognome " & vbCrLf & _
             "HAVING (Portafoglio.TrattativaID= " & Me.OpenArgs & " );")
             DoCmd.OpenQuery "ANALISI BANCA"
       
          Dim SqlCompBanGraf As String
          SqlCompBanGraf = "SELECT Portafoglio.TrattativaID, Portafoglio.CandidatoID, Candidati.nomecognome, Sum(Portafoglio.Gestito) AS SommaDiGestito, IIf(IsNull([sommadigestito]),0,FormatNumber([sommadigestito]/[totale],3)) AS [%Gestito], Sum(Portafoglio.Assicurativo) AS SommaDiAssicurativo, IIf(IsNull([sommadiassicurativo]),0,FormatNumber([sommadiassicurativo]/[totale],3)) AS [%Assicurativo], Sum(Portafoglio.[Gestioni patrimoniali]) AS [SommaDiGestioni patrimoniali], IIf(IsNull([sommadigestioni patrimoniali]),0,FormatNumber([sommadigestioni patrimoniali]/[totale],3)) AS [%Gestioni patrimoniali], Sum(Portafoglio.Amministrato) AS SommaDiAmministrato, IIf(IsNull([sommadiamministrato]),0,FormatNumber([sommadiamministrato]/[totale],3)) AS [%Amministrato], Sum(Portafoglio.Certificati) AS SommaDiCertificati, IIf(IsNull([sommadicertificati]),0,FormatNumber([sommadicertificati]/[totale],3)) AS [%Certificati], Sum(Portafoglio.Liquidità) AS SommaDiLiquidità, " & vbCrLf & _
             "IIf(IsNull([sommadiliquidità]),0,FormatNumber([sommadiliquidità]/[totale],3)) AS [%Liquidità], Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità])) AS Totale, Count(Portafoglio.cliente) AS ConteggioDicliente, FormatCurrency(Round(Sum(Nz([gestito])+Nz([assicurativo])+Nz([gestioni patrimoniali])+Nz([amministrato])+Nz([certificati])+Nz([portafoglio]![liquidità]))/[conteggiodicliente],0),0) AS Media, First(Trattative.[Note portafoglio gestito in banca]) AS [PrimoDiNote portafoglio gestito in banca], Trattative.[Livello minimo trasferibile], [ptf trasferibile personale]*1000000 AS [Portafoglio trasferibile concordato], 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 & _
             "FROM Trattative INNER JOIN (Candidati INNER JOIN Portafoglio ON Candidati.IDcandidato = Portafoglio.CandidatoID) ON Trattative.IDtrattativa = Portafoglio.TrattativaID " & vbCrLf & _
             "GROUP BY Portafoglio.TrattativaID, Portafoglio.CandidatoID, Candidati.nomecognome, Trattative.[Livello minimo trasferibile], [ptf trasferibile personale]*1000000, 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) " & vbCrLf & _
             "HAVING (((Portafoglio.TrattativaID)=" & Me.OpenArgs & "));"
          For Each qdf In CurrentDb.QueryDefs
              If qdf.Name = "CompBanGraf" Then
                 CurrentDb.QueryDefs.Delete "CompBanGraf"
                 Exit For
             End If
          Next
          Set qdf = db.CreateQueryDef("CompBanGraf", SqlCompBanGraf)
          DoCmd.OpenQuery "CompBanGraf" 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA TEST QUERY
          Me.CompBanGraf.RowSource = "SELECT TrattativaID, [%Gestito] AS Valore, ""Gestito"" AS Investimento FROM [CompBanGraf] " & vbCrLf & _
          "UNION SELECT TrattativaID, [%Assicurativo], ""Assicurativo"" FROM  [CompBanGraf] " & vbCrLf & _
          "UNION SELECT TrattativaID, [%Gestioni patrimoniali], ""Gestioni patrimoniali"" FROM [CompBanGraf] " & vbCrLf & _
          "UNION SELECT TrattativaID, [%Amministrato], ""Amministrato"" FROM [CompBanGraf] " & vbCrLf & _
          "UNION SELECT TrattativaID, [%Certificati], ""Certificati"" FROM [CompBanGraf] " & vbCrLf & _
          "UNION SELECT TrattativaID, [%Liquidità], ""Liquidità"" FROM [CompBanGraf];"
       
          Dim SqlConBanGraf As String
          SqlConBanGraf = "SELECT Portafoglio.CandidatoID, Portafoglio.TrattativaID, 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], Switch([taglio cliente]=""<100k"",1,[taglio cliente]=""100k-300k"",2,[taglio cliente]=""300k-500k"",3,[taglio cliente]=""500k-700k"",4,[taglio cliente]=""700k-1mln"",5,[taglio cliente]=""1mln-2mln"",6,[taglio cliente]=""2mln-5mln"",7,[taglio cliente]=""5mln-10mln"",8,[taglio cliente]="">=10mln"",9) AS Ordinamento " & vbCrLf & _
             "FROM Portafoglio;"
          For Each qdf In CurrentDb.QueryDefs
             If qdf.Name = "ConBanGraf" Then
                CurrentDb.QueryDefs.Delete "ConBanGraf"
                Exit For
             End If
          Next
          Set qdf = db.CreateQueryDef("ConBanGraf", SqlConBanGraf)
          DoCmd.OpenQuery "ConBanGraf" 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA TEST QUERY
          Me.ConcBaGraf.RowSource = "SELECT [ConBanGraf].TrattativaID, [ConBanGraf].CandidatoID, [ConBanGraf].[Taglio cliente], Count([ConBanGraf].[Taglio cliente]) AS [ConteggioDiTaglio cliente], Switch([taglio cliente]=""<100k"",1,[taglio cliente]=""100k-300k"",2,[taglio cliente]=""300k-500k"",3,[taglio cliente]=""500k-700k"",4,[taglio cliente]=""700k-1mln"",5,[taglio cliente]=""1mln-2mln"",6,[taglio cliente]=""2mln-5mln"",7,[taglio cliente]=""5mln-10mln"",8,[taglio cliente]="">=10mln"",9) AS Ordinamento " & vbCrLf & _
           "FROM [ConBanGraf] " & vbCrLf & _
             "GROUP BY [ConBanGraf].TrattativaID, [ConBanGraf].CandidatoID, [ConBanGraf].[Taglio cliente], Switch([taglio cliente]=""<100k"",1,[taglio cliente]=""100k-300k"",2,[taglio cliente]=""300k-500k"",3,[taglio cliente]=""500k-700k"",4,[taglio cliente]=""700k-1mln"",5,[taglio cliente]=""1mln-2mln"",6,[taglio cliente]=""2mln-5mln"",7,[taglio cliente]=""5mln-10mln"",8,[taglio cliente]="">=10mln"",9) " & vbCrLf & _
             "HAVING ((([ConBanGraf].TrattativaID)=" & TrattativaID & ")) " & vbCrLf & _
                "ORDER BY Switch([taglio cliente]=""<100k"",1,[taglio cliente]=""100k-300k"",2,[taglio cliente]=""300k-500k"",3,[taglio cliente]=""500k-700k"",4,[taglio cliente]=""700k-1mln"",5,[taglio cliente]=""1mln-2mln"",6,[taglio cliente]=""2mln-5mln"",7,[taglio cliente]=""5mln-10mln"",8,[taglio cliente]="">=10mln"",9);"
          Me.Report_ptf_banca_concentrazione_grafico.Form.RecordSource = "SELECT [ConBanGraf].TrattativaID, [ConBanGraf].CandidatoID, [ConBanGraf].[Taglio cliente], Count([ConBanGraf].[Taglio cliente]) AS [ConteggioDiTaglio cliente], Switch([taglio cliente]=""<100k"",1,[taglio cliente]=""100k-300k"",2,[taglio cliente]=""300k-500k"",3,[taglio cliente]=""500k-700k"",4,[taglio cliente]=""700k-1mln"",5,[taglio cliente]=""1mln-2mln"",6,[taglio cliente]=""2mln-5mln"",7,[taglio cliente]=""5mln-10mln"",8,[taglio cliente]="">=10mln"",9) AS Ordinamento " & vbCrLf & _
             "FROM [ConBanGraf] " & vbCrLf & _
             "GROUP BY [ConBanGraf].TrattativaID, [ConBanGraf].CandidatoID, [ConBanGraf].[Taglio cliente], Switch([taglio cliente]=""<100k"",1,[taglio cliente]=""100k-300k"",2,[taglio cliente]=""300k-500k"",3,[taglio cliente]=""500k-700k"",4,[taglio cliente]=""700k-1mln"",5,[taglio cliente]=""1mln-2mln"",6,[taglio cliente]=""2mln-5mln"",7,[taglio cliente]=""5mln-10mln"",8,[taglio cliente]="">=10mln"",9) " & vbCrLf & _
             "HAVING ((([ConBanGraf].TrattativaID)= " & TrattativaID & ")) " & vbCrLf & _
             "ORDER BY Switch([taglio cliente]=""<100k"",1,[taglio cliente]=""100k-300k"",2,[taglio cliente]=""300k-500k"",3,[taglio cliente]=""500k-700k"",4,[taglio cliente]=""700k-1mln"",5,[taglio cliente]=""1mln-2mln"",6,[taglio cliente]=""2mln-5mln"",7,[taglio cliente]=""5mln-10mln"",8,[taglio cliente]="">=10mln"",9);"
    End Sub
    this code is not running when i open a report that contains this form as subform.
    any suggestion? the code of main report is

    Code:
    Private Sub Report_Open(Cancel As Integer)      Me.RecordSource = "SELECT Trattative.IDtrattativa, Date() AS Data, Trattative.NumeroCandidatoCliente, Candidati.IDcandidato, Aziende.Azienda, Aziende_1.Azienda AS Cliente, Candidati.nomecognome, Comuni.Comune, Professioni.PosizioneLavorativa, Candidati.[data di nascita], DateDiff(""yyyy"",[data di nascita],Date()) AS Età, Candidati.cellulare, Candidati.[Email personale], Candidati.[Ptf banca personale], Candidati.[Ptf trasferibile personale], Candidati.[Ptf trasferibile personale], Candidati.[Numero clienti banca], Candidati.[Numero clienti personali], FormatCurrency(([ptf banca personale]*1000000)/[numero clienti banca],0) AS [Media clienti banca], FormatCurrency(([ptf trasferibile personale]*1000000)/[numero clienti personali],0) AS [Media clienti personale], Candidati.[Ptf gestito], Candidati.[Ptf assicurativo], " & vbCrLf & _
          "Candidati.[Ptf amministrato], Candidati.Liquidità, Candidati.[Redditività ptf trasferibile], Trattative.[Note portafoglio], Candidati.[RAL/Fatturato], Candidati.Premi, Candidati.[Corrispettivo patto], Candidati.[Patto di non concorrenza], Candidati.[scadenza patto], Candidati.[penale economica], Trattative.profilo, Trattative.[Motivazione al cambiamento], Trattative.Richieste, Trattative.[Note portafoglio gestito in banca], Trattative.[Trattative in essere], Candidati.livello1, Candidati.[Ultimo cambio azienda], Candidati.benefit " & vbCrLf & _
          "FROM Aziende AS Aziende_1 INNER JOIN (Clienti INNER JOIN (Professioni INNER JOIN (Aziende INNER JOIN ((Comuni INNER JOIN Candidati ON Comuni.IDComune = Candidati.ComuneID) INNER JOIN Trattative ON Candidati.IDcandidato = Trattative.CandidatoID) ON Aziende.IDazienda = Candidati.AziendaID) ON Professioni.IDposizione = Candidati.PosizioneID) ON Clienti.IDCliente = Trattative.ClienteID) ON Aziende_1.IDazienda = Clienti.AziendaID " & vbCrLf & _
          "WHERE (((Trattative.IDtrattativa)= " & Me.OpenArgs & "));"
    End Sub

  2. #2
    ranman256's Avatar
    ranman256 is offline VIP
    Windows Vista Access 2010 32bit
    Join Date
    Apr 2014
    Location
    Kentucky
    Posts
    9,522
    If the form is now a subForm,you must give a new path:

    forms!fMainForm!subForm!form!txtBox

    use the BUILDER. It lets you pick the object you want and always gets it right.

  3. #3
    diegomarino is offline Competent Performer
    Windows 10 Access 2016
    Join Date
    Feb 2018
    Posts
    409
    sorry, i didn't get well the reference you kindly gave me.

    where i have to put the "forms!fMainForm!subForm!form!txtBox"?
    you mean i have to put all the code of the form that i open as subform in the code of the report containing it?

    Quote Originally Posted by ranman256 View Post
    If the form is now a subForm,you must give a new path:

    forms!fMainForm!subForm!form!txtBox

    use the BUILDER. It lets you pick the object you want and always gets it right.

  4. #4
    ranman256's Avatar
    ranman256 is offline VIP
    Windows Vista Access 2010 32bit
    Join Date
    Apr 2014
    Location
    Kentucky
    Posts
    9,522
    I guess it would be criteria.
    if you want data based on the object in the subForm.

  5. #5
    diegomarino is offline Competent Performer
    Windows 10 Access 2016
    Join Date
    Feb 2018
    Posts
    409
    ok i got it.
    so i let the code of the subform in the subform itself in open event, but i change the criteria and i base it on a control on main report. right?

  6. #6
    diegomarino is offline Competent Performer
    Windows 10 Access 2016
    Join Date
    Feb 2018
    Posts
    409
    i'm trying to set every pieces of code in open event of the report
    i'm referring to my subform as "me.FormName.form.recordsource" or "forms!FormName.form.recordsource" but did not work

  7. #7
    diegomarino is offline Competent Performer
    Windows 10 Access 2016
    Join Date
    Feb 2018
    Posts
    409
    i've managed the whole thing using a global variable, not an open args. so if i open the form as form or as subform nothing changes...thanks however

Please reply to this thread with any new information or opinions.

Similar Threads

  1. Running VBA code in a form from a macro
    By Mister-B in forum Macros
    Replies: 3
    Last Post: 05-28-2018, 10:34 AM
  2. Replies: 1
    Last Post: 02-18-2016, 05:57 AM
  3. Replies: 6
    Last Post: 07-01-2015, 10:56 AM
  4. Replies: 3
    Last Post: 03-05-2015, 12:51 PM
  5. Replies: 3
    Last Post: 10-04-2010, 01:31 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