Newsgroup: it.comp.appl.access
Titolo: Oggetto non valido o non impostato

Public Sub Trova(ID As String)
Dim rs As DAO.Recordset
    Set rs = Me.RecordsetClone
    rs.FindFirst "IDProg=" & ID
    If Not (rs.NoMatch) Then
        Me.Bookmark = rs.Bookmark
    End If
    rs.Close
    Set rs = Nothing
End Sub
 
Un codice piuttosto semplice che però all'istruzione Set rs=Me.RecordsetClone restituisce l'errore "oggetto non valido o non impostato"
 
Il problema si verifica quando la maschera riprende il focus.
Ho controllato se ci fossero istruzioni strane che chiudevano il recordsetclone, ma apparentemente sembra a posto.
 
Ciao

Il giorno venerdì 17 novembre 2017 01:09:33 UTC+1, Davide La Mantia ha scritto:
[Cut]
 
Buon giorno,
la proprietà recordsource del form cosa contiene nel momento in cui viene eseguita la procedura TrovaID?
 
Ciao
Matteo


Sì, è la proprietà Recordsource che non risulta impostata, tuttavia la maschera è carica e mostra i record.
 
Ciao

 ...
 
aggiungendo all'ultima frase per me inchiara e alla domanda di Matteo:
 
Quando e (da) dove viene chiamata questa Sub?
 
-- 
Ciao
Karl
*********
http://www.AccessDevCon.com
 
Access FAQ: 
http://www.donkarl.com/it
 


Il codice viene richiamato dalla maschera padre (chiamiamola maschera1) rispetto alla maschera (chiamiamola maschera2) che contiene il codice per selezionare un record specifico dopo un requery.
Normalmente funziona benissimo, ma ogni tanto smette di funzionare.
La maschera1 consente di aprire un'altra maschera per registrare delle lavorazioni (chiamiamola maschera3), la maschera3 esegue operazioni varie sulla tabella di origine della maschera2 che contiene il codice, per questo quando si torna alla maschera1 viene eseguito un requery della maschera2, questo requery funziona perfettamente ma naturalmente riporta la selezione sul primo record della maschera2, perciò viene richiamata la funzione in questione per andare a selezionare il record per la lavorazione successiva.
 
Ecco, ora spero si sia capito perché avevo difficoltà a spiegare il funzionamento del tutto...
 
La cosa bella è che normalmente funziona, ma arrivato a un certo punto smette di funzionare e comincia a dare l'errore in questione.
 
Ciao

 Ciao
Grazie per le delucidazioni.
Nel codice vba dei 3 form a cui hai fatto riferimento viene mai impostata direttamente la proprietà Recordsource?
Mi viene da pensare che se all'interno di quella procedura, in un dato momento dell'esecuzione la proprietà si trova senza valore significa che in una fase precedente il valore è stato rimosso.
 
Domanda di rito: hai già provato a decompilare/compattare/reimportare tutti gli oggetti... le solite cose per risolvere i db corrotti?
 
Ciao
Mat.


Grazie degli spunti, mi hanno aiutato a focalizzare il problema.
 
A quanto pare il recordsource che conteneva l'istruzione SQL di origine per qualche strano motivo se ne perdeva un pezzo, come se fosse troppo lunga, tanto che aprendo il generatore dopo che la maschera andava in errore la query era troncata. Ho verificato attentamente e non ci sono istruzioni che modificano il recordsource.
Il problema si è rislto creando una query col codice SQL e impostando il nome della query come origine recordsource.
 
Ciao
 
PS: compattazione e tutto il resto già fatte, ma non cambiava.

 PS: compattazione e tutto il resto già fatte, ma non cambiava.
Perfetto,
ciao
Mat.