Newsgroup: it.comp.appl.access
Titolo: Nomi degli insiemi di sistema con iniziale minuscola

Buongiorno a tutti/e,
Chiedo aiuto per questo incomprensibile problema con Access 97: sto
sviluppando una applicazione, per ora dotata di una unica maschera con
vari controlli, e fino a venerdì funzionava correttamente.
Oggi la riapro per proseguire il lavoro e... amara sorpresa,
all'apertura della maschera ottengo errore "40036: Metodo Item
dell'oggetto Forms non riuscito."
Guardando poi le varie funzioni nel codice, noto questa anomalia:
Function riun_predef(nomemaschera, nomecontrollo) As Integer
Dim ctl As Access.Control, msc As Access.Form
Set msc = forms(nomemaschera)
Set ctl = msc(nomecontrollo)
[...snip...]
End Function
l'insieme Forms viene scritto con l'iniziale MINUSCOLA. E difatti il
debugger si ferma alla riga dove deve essere istanziato l'oggetto msc,
restituendo l'errore 40036.
E' come se Intellisense, o chi per lui, aprendo il codice in fase di
debug non riconoscesse l'insieme Forms() facendolo apparire come un
omonimo insieme da me definito con l'iniziale minuscola.
Ho controllato di avere i riferimenti giusti, mi sembrano OK:
Visual Basic For Applications
Microsoft Access 8.0 Object Library
Microsoft DAO 3.51 Object Library
Microsoft Calendar Control 10.0
Microsoft Excel 8.0 Library
Ho anche ri-registrato, come tentativo, le librerie qui sopra tramite
regsvr32 ma la situazione rimane la stessa.
Credo che il problema riguardi due caselle di riepilogo, dove una di
esse fa da filtro per l'altra (sostanzialmente, in una compare il
numero di giorno della settimana, nell'altra le righe di una tabella
che usa quel valore come filtro).
Il "valore predefinito" della casella di riepilogo "filtro" l'ho
impostato mediante una funzione, togliendo la quale mi viene chiesto
il valore dall'altra casella.
Bene: digitando un numero opportuno, compare un errore "L'espressione
su apertura immessa come impostazione della proprietà di evento non
corrisponde alla descrizione dell'evento con lo stesso nome".
Sapessi QUALE evento... ho tentato di impostare un punto di
interruzione su Form_Load, ma viene ignorato.
Eppure l'evento Form_Load() non dovrebbe essere il primo ad attivarsi
all'apertura della maschera? Qui le caselle di riepilogo dovrebbero
essere ancora 'vuote', in teoria (e quindi se il problema lo danno
loro, dovrei avere l'interruzione di codice PRIMA dell'errore)
... per sbrogliare questa matassa mi sarebbe utile perlomeno capire in
quali casi l'insieme Forms non viene istanziato correttamente, e
scritto in minuscolo nel codice... cari guru del VB, avete qualche
idea o suggerimento?
Grazie,
Panathos

 restituendo l'errore 40036.
Allora: non so per quale motivo persista questo comportamento, ma ho
risolto il problema dell'apertura maschera cancellando un controllo
calendario, al quale avevo assegnato un evento AfterUpdate().
Cancellando questo evento, e il relativo controllo calendario, la
maschera non restituisce più alcun errore.
Però l'anomalia sulla scrittura di forms() con l'iniziale minuscola
permane, e vorrei capire per quale motivo il controllo calendario ha
presentato questo problema... la richiesta rimane aperta.
grazie,
Panathos

 ha scritto nel messaggio 
news:1194365417.2...@o3g2000hsb.googlegroups.com...




grazie,
Panathos
-------------------------------
Prova ad usare il calendario che trovi in c:\windows\system\ MSCAL.ocx
con riferimento a Microsoft Calendar Control 8 e dovrebbe tornare tutto a 
posto.
Ciao, Carlo

 posto.
Grazie Carlo per il suggerimento; non ho ancora provato poiché il
calendario era uno "sfizio" non necessario per l'applicazione.
Per ora ho tolto il controllo, controllato che non ci fosse più il
riferimento, e vedrò poi se usarlo o meno...
ciao,
Panathos