Newsgroup: it.comp.lang.visual-basic
Titolo: Problema con ADO

Tempo fa ho avuto un problema con una applicazione (non ancora risolto).
Sono riuscito ad isolare il form che mi da l'errore.
Tale form ha come controlli una MsFlexGrid ed un Controllo DATA ed il
seguente codice:
VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
Public Sub Form_Activate()
'controllo se il database è vuoto
'e se lo è...faccio emettere un messaggio e rendo invisibili
'tutti i controlli ad eccezione del bottone NUOVO
If Data1.Recordset.EOF Then
    For Each Control In VisualizzazioneAnaEsami
        Control.Visible = False
    Next
    Nuovo.Visible = True
    MsgBox ("Attenzione! Nel DataBase non è presente alcun record." &
vbNewLine & "Premere il bottone NUOVO!")
    GoTo giu:
End If
If Data1.Recordset.EOF Then
    Data1.Recordset.AddNew
    GoTo giu
End If
Data1.Recordset.MoveFirst
If trasferimento = False Then GoTo giu
Do
    If Matricola = xMatricola Then GoTo giu
    Data1.Recordset.MoveNext
Loop
giu:
trasferimento = False
Set ele = OpenDatabase(App.Path & "\esa.mdb")
Set ana = ele.OpenRecordset("richieste", dbOpenDynaset)
AnaRichieste.ColWidth(0) = 350
AnaRichieste.ColWidth(1) = 500
AnaRichieste.ColWidth(2) = 700
AnaRichieste.ColWidth(3) = 800
AnaRichieste.ColWidth(4) = 1000
AnaRichieste.ColWidth(5) = 3500
AnaRichieste.ColWidth(6) = 1600
AnaRichieste.ColWidth(8) = 1600
AnaRichieste.ColWidth(9) = 3500
AnaRichieste.TextMatrix(0, 1) = "Matr."
AnaRichieste.TextMatrix(0, 2) = "ID"
AnaRichieste.TextMatrix(0, 3) = "A.A."
AnaRichieste.TextMatrix(0, 4) = "Sessione"
AnaRichieste.TextMatrix(0, 5) = "Materia"
AnaRichieste.TextMatrix(0, 6) = "Tipo"
AnaRichieste.TextMatrix(0, 7) = "Voto"
AnaRichieste.TextMatrix(0, 8) = "Insegnante"
AnaRichieste.TextMatrix(0, 9) = "Risultato"
AnaRichieste.Rows = 1
If Not ana.EOF Then ana.MoveFirst
    While Not ana.EOF
        If ana!Matricola = Matricola.Text Then
            x = x + 1
            AnaRichieste.Rows = AnaRichieste.Rows + 1
            AnaRichieste.TextMatrix(x, 0) = x
            If ana!Matricola > "" Then AnaRichieste.TextMatrix(x, 1) =
ana!Matricola
            If ana!Id > "" Then AnaRichieste.TextMatrix(x, 2) = ana!Id
            If ana![Anno Accademico] > "" Then AnaRichieste.TextMatrix(x, 3)
= ana![Anno Accademico]
            If ana!Sessione > "" Then AnaRichieste.TextMatrix(x, 4) =
ana!Sessione
            If ana!Materia > "" Then AnaRichieste.TextMatrix(x, 5) =
ana!Materia
            If ana![Tipo Esame] > "" Then AnaRichieste.TextMatrix(x, 6) =
ana![Tipo Esame]
            If ana!voto > "" Then AnaRichieste.TextMatrix(x, 7) = ana!voto
            If ana!Insegnante > "" Then AnaRichieste.TextMatrix(x, 8) =
ana!Insegnante
            If ana!Risultato > "" Then AnaRichieste.TextMatrix(x, 9) =
ana!Risultato
        End If
        ana.MoveNext
    Wend
x = 0
End Sub
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Nel form load non c'è nulla (solo la dichiarazione dell'altezza e larghezza
del form
tra i riferimenti di tutto il progetto ho:
Visual Basic For Applications
Visual Basic Runtime Object and Procedures
Visual Basic Object and Procedures
OLE Automation
Microsoft DAO 3.6  Object Library
Microsoft Data Formatting Object Library
Microsoft Access 10.0 Object Library
Microsoft ActiveX Data Objects 2.5 Library
Quando installo il programma...a fine installazione ho il seguente avviso:
Errore durante la registrazione del file 'C:\Windows\System32\msado25.tlb'
Mi chiede Interrompi-Riprova-Ignora ed io rispondo Ignora
Quando avvio tutto il resto del programma va perfettamente bene ma quando
lancio il form in questione mi da:
Classe non registrata.
Si sta cercando l'oggetto con CLSID{00000010-0000-0010-00AA006D2EA4}
compare soltanto il bottone OK e lo premo
altro messaggio di errore:
Errore di runtime '91':
Variabile Oggetto o Variabile del Blocco With non impostata
Cosa posso fare?
La scadenza per la consegna del software si avvicina e con la mia
modestissima esperienza non riesco a venirne fuori.
Mi aiutate per favore?
Inoltre... il controllo DATA... di quali riferimenti necessita? Di quali
componenti?
Salvatore Paci

Errore durante la registrazione del file 'C:\Windows\System32\msado25.tlb'
Prova a togliere msado25.tlb dal pacchetto di installazione, e
installa Ado a parte, prima del tuo programma.
Ciao!

ho tolto anche quel controllo ma non è cambiato nulla.
adesso ho isolato la riga che mi da l'errore:
If data1.Recordset.EOF Then
leggendola NON CAPISCE che si tratta di un DATA ma crede che sia una WITH
non dichiarata.
Cosa posso fare?
"ErPotenza" <no....@thank.you> ha scritto nel messaggio
news:tn9eb09ofnof4ofp7...@4ax.com...


 WITH non dichiarata.
non esattamente, vuol dire che data1.recordset non punta ad una istanza
valida di un oggetto.
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

non dichiarata.
Non penso che questo sia il problema, piuttosto il Recordset č
impostato? Se vai a controllare la proprietą Recordset di Data1 con
"Finestra espressioni di controllo" lo vedi a Nothing? Se lo vedi a
Nothing significa che non hai un recordset su cui controllare EOF.
Ciao! 

"ErPotenza" <no....@thank.you> ha scritto nel messaggio
news:fnfmb0lc5vjpiqc8a...@4ax.com...

------------
Ma in tutti i Sistemi operativi funziona. Solo su W2000 non funziona. Se non
fosse definito...dovrebbe non esserlo per nessun SO o no?

fosse definito...dovrebbe non esserlo per nessun SO o no?
1) Non ricordo il nome dell'OCX per Data1 (forse MSADODC.OXC), cmq; è
installato sulla macchina con W2000?
2)
Come prova, giusto per essere certi, aggiungi un test:
Public Sub Form_Activate()
'controllo se il database è vuoto
'e se lo è...faccio emettere un messaggio e rendo invisibili
'tutti i controlli ad eccezione del bottone NUOVO
If Data1 Is Nothing Then
	MsgBox "Data1 is Nothing"
End If
If Data1.Recordset Is Nothing Then
	MsgBox "Recordset is Nothing!"
End If
Ciao!