Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

error 459 object or class does not support the type of events

Posted on 2016-11-13
7
Medium Priority
?
85 Views
Last Modified: 2016-11-13
On my application, that was perfectly working, I am suddendly getting the above error.

 


ss1
ss2

my code is:

   
    Dim strSetSQL As String

    Set sireshDB = CurrentDb
   
    strSetSQL = "SELECT tabancasMarksGPSD.codigoTabanca, tabancasMarksGPSD.codigoPonto, tabancasMarksGPSD.LatGPS AS Lat2, tabancasMarksGPSD.LgtGPS AS Lgt2, tabancasMarksGPSD.TipoPonto,  "
    strSetSQL = strSetSQL & Me.fld_latitude & " AS Lat1, " & Me.fld_longitude & " AS Lgt1,  " & Me.fld_raioLimite & " AS MaxRad, 3.14159265358979 AS Pi, "
    strSetSQL = strSetSQL & " Cos([Pi]/180*(90-[Lat1]))*Cos([Pi]/180*(90-[Lat2]))+Sin([Pi]/180*(90-[Lat1]))*Sin([Pi]/180*(90-[Lat2]))*Cos([Pi]/180*([Lgt1]-[Lgt2])) AS X, (Atn(-[X]/Sqr(-[X]*[X]+1.00000000001))+2*Atn(1))*6371000 AS CalcD "
    strSetSQL = strSetSQL & "FROM tabancasMarksGPSD; "
    Set Q27_pontosDDef = sireshDB.QueryDefs("Q27_pontosD")
    Debug.Print strSetSQL
    Q27_pontosDDef.SQL = strSetSQL
    Set Q27_pontosDSet = sireshDB.OpenRecordset("Q27_pontosD", dbOpenDynaset)
    CurrentDb.QueryDefs.Refresh
    DoEvents
    strSetSQL = "SELECT Q27_pontosD.codigoTabanca, Q27_pontosD.codigoPonto, Q27_pontosD.TipoPonto, tabancasBase.NomeTabanca, sectoresGuineBissau.nomeSector, regioesGuineBissau.nomeRegia, Q27_pontosD.CalcD "
    strSetSQL = strSetSQL & "FROM (regioesGuineBissau INNER JOIN (Q27_pontosD INNER JOIN tabancasBase ON Q27_pontosD.codigoTabanca = tabancasBase.codigoTabanca) ON regioesGuineBissau.codigoRegiao = tabancasBase.codigoRegiao) INNER JOIN sectoresGuineBissau ON (sectoresGuineBissau.codigoSector = tabancasBase.codigoSector) AND (regioesGuineBissau.codigoRegiao = sectoresGuineBissau.codigoRegiao) "
    strSetSQL = strSetSQL & "WHERE (((Q27_pontosD.CalcD)< "
    strSetSQL = strSetSQL & Nz(Me.fld_raioLimite, 10) & " ));"
    Me.[sform_listaPontos].Form.RecordSource = strSetSQL
   
    'strSetSQL = "SELECT Q27_pontosD.codigoTabanca, Q27_pontosD.codigoPonto, Q27_pontosD.TipoPonto, tabancasBase.NomeTabanca, sectoresGuineBissau.nomeSector, regioesGuineBissau.nomeRegia, Q27_pontosD.CalcD "
    'strSetSQL = strSetSQL & "FROM (regioesGuineBissau INNER JOIN (Q27_pontosD INNER JOIN tabancasBase ON Q27_pontosD.codigoTabanca = tabancasBase.codigoTabanca) ON regioesGuineBissau.codigoRegiao = tabancasBase.codigoRegiao) INNER JOIN sectoresGuineBissau ON (sectoresGuineBissau.codigoSector = tabancasBase.codigoSector) AND (regioesGuineBissau.codigoRegiao = sectoresGuineBissau.codigoRegiao) "
    'strSetSQL = strSetSQL & "WHERE (((Q27_pontosD.CalcD)< "
    'strSetSQL = strSetSQL & Nz(Me.fld_raioLimite, 10) & " ));"
    'Set Q28_listaProximidadesDef = sireshDB.QueryDefs("Q28_listaProximidades")
    'Q28_listaProximidadesDef.SQL = strSetSQL
    Set Q28_listaProximidadesSet = sireshDB.OpenRecordset("Q28_listaProximidades", dbOpenDynaset)
   
    Set Q28_listaProximidadesDef = sireshDB.QueryDefs("Q28_listaProximidades")
    Q28_listaProximidadesDef.SQL = strSetSQL
    Set Q28_listaProximidadesSet = sireshDB.OpenRecordset("Q28_listaProximidades", dbOpenDynaset)
    Me.Recalc
    CurrentDb.QueryDefs.Refresh
    DoEvents
     Me.[sform_listaPontos].Form.Requery


can anyone help?
0
Comment
Question by:João serras-pereira
7 Comments
 
LVL 85
ID: 41885319
Does the form where this is running have a Subform CONTROL name "sform_listaPontos"? Note I said a Subform CONTROL, which is container object on a form. Depending on how you added the Subform, Access may or may not use the form name as the name of the Subform CONTROL.

Subforms are referred to with syntax like this:

ParentForm.NameOfTheSubformCONTROL.Form.SomePropertyOrMethod

The image below show a form with Subform controls. You can determine the Name of that SubformControl by highlighting the subform (i.e. clicking on the subform to select it) and then refer to the value in the section shown by the red arrow.

Subform Name
0
 

Author Comment

by:João serras-pereira
ID: 41885331
Yes... it does and I remember well the advice. It was perfectly working and I do no remember making  changes in that part of the code...


Screen-Shot-2016-11-13-at-12.58.22.png

my present code is:


Private Sub Form_Load()

DoCmd.Close acForm, "_00 base"

Dim earthRadius As Double  ' in meters

'Fórmula para calcular distâncias a partir de GPS (ignora altitude e rugosidade)
'ACOS(COS(RADIANS(90-Lat1)) *COS(RADIANS(90-Lat2)) +SIN(RADIANS(90-Lat1)) *SIN(RADIANS(90-Lat2)) *COS(RADIANS(Long1-Long2))) *6371
'ACOS(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)


    Dim sireshDB As DAO.Database
    Dim Q27_pontosDSet As DAO.Recordset
    Dim Q27_pontosDDef As QueryDef
    Dim Q28_listaProximidadesSet As DAO.Recordset
    Dim Q28_listaProximidadesDef As QueryDef
   
    ' coordenadas de MAQUE
   
    Me.fld_latitude = 12.29027777777
    Me.fld_longitude = -15.3863888888
   
    ' proximidade de 1000 metros
    Me.fld_raioLimite = 1000
   
    Forms![_commonVariables]![LatGPS] = Me.fld_latitude
    Forms![_commonVariables]![LgtGPS] = Me.fld_longitude
    Forms![_commonVariables]![raioLimite] = Me.fld_raioLimite
   
   
   
    Dim strSetSQL As String

    Set sireshDB = CurrentDb
   
    strSetSQL = "SELECT tabancasMarksGPSD.codigoTabanca, tabancasMarksGPSD.codigoPonto, tabancasMarksGPSD.LatGPS AS Lat2, tabancasMarksGPSD.LgtGPS AS Lgt2, tabancasMarksGPSD.TipoPonto,  "
    strSetSQL = strSetSQL & Me.fld_latitude & " AS Lat1, " & Me.fld_longitude & " AS Lgt1,  " & Me.fld_raioLimite & " AS MaxRad, 3.14159265358979 AS Pi, "
    strSetSQL = strSetSQL & " Cos([Pi]/180*(90-[Lat1]))*Cos([Pi]/180*(90-[Lat2]))+Sin([Pi]/180*(90-[Lat1]))*Sin([Pi]/180*(90-[Lat2]))*Cos([Pi]/180*([Lgt1]-[Lgt2])) AS X, (Atn(-[X]/Sqr(-[X]*[X]+1.00000000001))+2*Atn(1))*6371000 AS CalcD "
    strSetSQL = strSetSQL & "FROM tabancasMarksGPSD; "
    Set Q27_pontosDDef = sireshDB.QueryDefs("Q27_pontosD")
    Debug.Print strSetSQL
    Q27_pontosDDef.SQL = strSetSQL
    Set Q27_pontosDSet = sireshDB.OpenRecordset("Q27_pontosD", dbOpenDynaset)
    CurrentDb.QueryDefs.Refresh
    DoEvents
    strSetSQL = "SELECT Q27_pontosD.codigoTabanca, Q27_pontosD.codigoPonto, Q27_pontosD.TipoPonto, tabancasBase.NomeTabanca, sectoresGuineBissau.nomeSector, regioesGuineBissau.nomeRegia, Q27_pontosD.CalcD "
    strSetSQL = strSetSQL & "FROM (regioesGuineBissau INNER JOIN (Q27_pontosD INNER JOIN tabancasBase ON Q27_pontosD.codigoTabanca = tabancasBase.codigoTabanca) ON regioesGuineBissau.codigoRegiao = tabancasBase.codigoRegiao) INNER JOIN sectoresGuineBissau ON (sectoresGuineBissau.codigoSector = tabancasBase.codigoSector) AND (regioesGuineBissau.codigoRegiao = sectoresGuineBissau.codigoRegiao) "
    strSetSQL = strSetSQL & "WHERE (((Q27_pontosD.CalcD)< "
    strSetSQL = strSetSQL & Nz(Me.fld_raioLimite, 10) & " ));"
    Me.[sform_listaPontos].Form.RecordSource = strSetSQL
   
    'strSetSQL = "SELECT Q27_pontosD.codigoTabanca, Q27_pontosD.codigoPonto, Q27_pontosD.TipoPonto, tabancasBase.NomeTabanca, sectoresGuineBissau.nomeSector, regioesGuineBissau.nomeRegia, Q27_pontosD.CalcD "
    'strSetSQL = strSetSQL & "FROM (regioesGuineBissau INNER JOIN (Q27_pontosD INNER JOIN tabancasBase ON Q27_pontosD.codigoTabanca = tabancasBase.codigoTabanca) ON regioesGuineBissau.codigoRegiao = tabancasBase.codigoRegiao) INNER JOIN sectoresGuineBissau ON (sectoresGuineBissau.codigoSector = tabancasBase.codigoSector) AND (regioesGuineBissau.codigoRegiao = sectoresGuineBissau.codigoRegiao) "
    'strSetSQL = strSetSQL & "WHERE (((Q27_pontosD.CalcD)< "
    'strSetSQL = strSetSQL & Nz(Me.fld_raioLimite, 10) & " ));"
    'Set Q28_listaProximidadesDef = sireshDB.QueryDefs("Q28_listaProximidades")
    'Q28_listaProximidadesDef.SQL = strSetSQL
    Set Q28_listaProximidadesSet = sireshDB.OpenRecordset("Q28_listaProximidades", dbOpenDynaset)
   
    Set Q28_listaProximidadesDef = sireshDB.QueryDefs("Q28_listaProximidades")
    Q28_listaProximidadesDef.SQL = strSetSQL
    Set Q28_listaProximidadesSet = sireshDB.OpenRecordset("Q28_listaProximidades", dbOpenDynaset)
    Me.Recalc
    CurrentDb.QueryDefs.Refresh
    DoEvents
     Me.[sform_listaPontos].Form.Requery

End Sub


I just can't understand what is happening :(
0
 
LVL 52

Expert Comment

by:Gustav Brock
ID: 41885366
Try to call Compact and Repair of the database.

/gustav
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 22
ID: 41885399
I believe you need to change the SourceObject in order to change the RecordSource once the form is displayed. Better to change the query the subform uses, refresh querydefs, and requery
0
 

Author Comment

by:João serras-pereira
ID: 41885404
Hi...
now I am a bit confused.

Compact&Repair did not provide any results

what do you mean by change the source object?

my code is:

   Dim strSetSQL As String

    Set sireshDB = CurrentDb
   
    strSetSQL = "SELECT tabancasMarksGPSD.codigoTabanca, tabancasMarksGPSD.codigoPonto, tabancasMarksGPSD.LatGPS AS Lat2, tabancasMarksGPSD.LgtGPS AS Lgt2, tabancasMarksGPSD.TipoPonto,  "
    strSetSQL = strSetSQL & Me.fld_latitude & " AS Lat1, " & Me.fld_longitude & " AS Lgt1,  " & Me.fld_raioLimite & " AS MaxRad, 3.14159265358979 AS Pi, "
    strSetSQL = strSetSQL & " Cos([Pi]/180*(90-[Lat1]))*Cos([Pi]/180*(90-[Lat2]))+Sin([Pi]/180*(90-[Lat1]))*Sin([Pi]/180*(90-[Lat2]))*Cos([Pi]/180*([Lgt1]-[Lgt2])) AS X, (Atn(-[X]/Sqr(-[X]*[X]+1.00000000001))+2*Atn(1))*6371000 AS CalcD "
    strSetSQL = strSetSQL & "FROM tabancasMarksGPSD; "
    Set Q27_pontosDDef = sireshDB.QueryDefs("Q27_pontosD")
    Debug.Print strSetSQL
    Q27_pontosDDef.SQL = strSetSQL
    Set Q27_pontosDSet = sireshDB.OpenRecordset("Q27_pontosD", dbOpenDynaset)
    CurrentDb.QueryDefs.Refresh
    DoEvents
    strSetSQL = "SELECT Q27_pontosD.codigoTabanca, Q27_pontosD.codigoPonto, Q27_pontosD.TipoPonto, tabancasBase.NomeTabanca, sectoresGuineBissau.nomeSector, regioesGuineBissau.nomeRegia, Q27_pontosD.CalcD "
    strSetSQL = strSetSQL & "FROM (regioesGuineBissau INNER JOIN (Q27_pontosD INNER JOIN tabancasBase ON Q27_pontosD.codigoTabanca = tabancasBase.codigoTabanca) ON regioesGuineBissau.codigoRegiao = tabancasBase.codigoRegiao) INNER JOIN sectoresGuineBissau ON (sectoresGuineBissau.codigoSector = tabancasBase.codigoSector) AND (regioesGuineBissau.codigoRegiao = sectoresGuineBissau.codigoRegiao) "
    strSetSQL = strSetSQL & "WHERE (((Q27_pontosD.CalcD)< "
    strSetSQL = strSetSQL & Nz(Me.fld_raioLimite, 10) & " ));"
    Debug.Print "Q28 SQL:" & strSetSQL
    Me.[sfrm_listaPontos].Form.RecordSource = strSetSQL
    Set Q28_listaProximidadesSet = sireshDB.OpenRecordset("Q28_listaProximidades", dbOpenDynaset)
    Set Q28_listaProximidadesDef = sireshDB.QueryDefs("Q28_listaProximidades")
    Q28_listaProximidadesDef.SQL = strSetSQL
    Set Q28_listaProximidadesSet = sireshDB.OpenRecordset("Q28_listaProximidades", dbOpenDynaset)
    Me.Recalc
    CurrentDb.QueryDefs.Refresh
    DoEvents
     Me.[sform_listaPontos].Form.Requery


and when I independently run the queries they look alright..
0
 
LVL 85

Accepted Solution

by:
Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 2000 total points
ID: 41885421
If C&R did not work, you can try a Decompile. To do that:

1. Make a backup of your database
2. Create a shortcut with this as the Target:

"full path to msaccess.exe" /decompile

3. Run that Shortcut, and select your Access database. Access will decompile it when you open it.
4. Open the VBA Editor and click Debug - Compile.
5. Fix any errors found, and continue doing that until the Compile option is disabled
6. Compact the database again

If that does not help then create a new, blank database and import everything into that new database.

You also may have a corrupt form. If so then you'd have to recreate the form either from a known good backup or from scratch.
0
 

Author Closing Comment

by:João serras-pereira
ID: 41885454
it is working again! phew! (decompile worked out)
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Did you know that more than 4 billion data records have been recorded as lost or stolen since 2013? It was a staggering number brought to our attention during last week’s ManageEngine webinar, where attendees received a comprehensive look at the ma…
Code that checks the QuickBooks schema table for non-updateable fields and then disables those controls on a form so users don't try to update them.
In Microsoft Access, learn different ways of passing a string value within a string argument. Also learn what a “Type Mis-match” error is about.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

885 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question