Newsgroup: it.comp.appl.access
Titolo: variabile del blocco With

Ho una maschera in cui viene calcolato il codice fiscale... ma succede 
questo, nel momento in cui la richiamo e vado a cercare di inserire il luogo 
di nascita a cui è collegato il seguente evento:
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
    Dim S As String
    Dim T As String
    Dim Colore As Long
    On Error GoTo ErrFas
    Colore = 0
    T = Trim(Text1.Text)
    If T = "" Then
        Text1.Tag = T
        Exit Sub
    End If
    If Len(T) = 1 Then S = T
    COMUNI.Seek ">=", T
    If Not COMUNI.EOF And Not COMUNI.NoMatch Then
      If UCase(T) = UCase(Mid(COMUNI!Comune, 1, Len(T))) Then
        If Len(T) > Len(Text1.Tag) Then
            Text1 = COMUNI!Comune
            Text1.SelStart = Len(T)
            Text1.SelLength = Len(Text1) - (Len(T))
            Text2 = COMUNI!siglaprov
            Text3 = COMUNI!coderariale
        End If
      Else
        If Text1.ForeColor = 0 Then MsgBox "Comune non in elenco"
        Colore = &H80&
        Text2 = "?"
        Text3 = "?"
        Text1.SetFocus
      End If
    End If
    If Text1.ForeColor <> Colore Then Text1.ForeColor = Colore
    Text1.Tag = T
Exit Sub
ErrFas:
    MsgBox ("FasMsg: " & Err.Number & " " & Err.Description)
    Err.Clear
End Sub
mi compare il seguente messaggio:FasMsg:91 Variabile oggetto o variabile del 
blocco With non impostata
alla digitazione di ogni lettera... allora apro la maschera in 
visualizzazione struttura, e, senza nulla fare, la rivisualizzo come 
maschera TUTTO FUNZIONA! QUALCUNO SA DIRMI PERCHE'?! questa cosa mi fa 
impazzire!
saluti a tutti 

 del blocco With non impostata
Il messaggio e' abbastanza esplicativo, per chi lo sa. ;<)
L'unico punto in cui mi sembra tu possa incorrere nell'errore e' in 
comuni.seek
Il messaggio indica che c'e' un oggetto a cui accedi o direttamente o 
all'interno di un blocco with che non e' referenziato. Nel tuo caso 
l'accesso  avviene direttamente.
COMUNI sembra essere un recordset che da qualche parte deve essere 
inizializzato. Se non lo e' incorri nell'errore succitato. Questo 
comportamento e' tipico quando si ha un oggetto "public" e si prende un 
errore. A fronte dell'errore la variabile pubblica viene annullata e 
quindi qualsiasi riferimento a quell'oggetto-variabile provoca l'errore 
da te citato.
--
ac

 ha scritto nel messaggio 
news:nrJEk.14929$Uo5....@tornado.fastwebnet.it...

Dunque dovrei inizializzare COMUNI.... sai spiegarmi come mai se visualizzo 
la struttura tutto va a posto... al caricamento della maschera ho questo 
codice:
Private Sub Form_Load()
 On Error GoTo ErrFas
    Set db = CurrentDb
    Set COMUNI = db.OpenRecordset("Comuni1999")
    COMUNI.Index = "Comune" ' "COMUNI2L"        'key=COMUNI!COMU_DESCR
    Me.txtCognome.SetFocus


 ha scritto nel messaggio 
news:48e373ab$0$14488$5fc...@news.tiscali.it...

Pare che il problema si verifichi nel momento in cui richiamo la maschera 
con questo codice:
On Error GoTo Err_Comando13_Click
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "SchedaPaziente"
    stLinkCriteria = "[ID]=" & Me![ID]
    DoCmd.Close acForm, "Dati generali"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
se la apro normalmente va tutto ok 

> se la apro normalmente va tutto ok
uhmmm.......COMUNI dove e' definito?
--
ac

 ha scritto nel messaggio 
news:k1NEk.15355$Uo5....@tornado.fastwebnet.it...

credo nell'evento load della maschera perchè c'è questo codice:


    Err.Clear
Ok e' importante ma non e' li che e' definito, li e' referenziato 
(inizializzato). Comunque dovresti dire qual'e' esattamente la riga 
sorgente che provoca l'errore. E dire anche se usi "option explicit" o 
meno. Se ti prende l'errore lo dovrebbe fare in routines in cui non c'e' 
la clausola "on error" che lo intercetta,quindi la routine sull'onclick 
e eligibile per l'errore mentre non lo e' la routine di load.
P.S. Non capisco la tua difficolta' a capire qual'e' la riga che da 
errore. E sufficiente fare click sul bottone "debug" o ancora meglio 
seguire il codice tramite il medesimo debug.
--
ac