Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6+Access] Errore di connessione al database

Buongiorno ragazzi, sono nuova quindi mi scuso se ci sono degli errori
in questo topic :D
Ho un progetto scritto interamente con VB6, che utilizza ADO_2.7 per
connettersi ad un database Access2000 protetto da password.
Le istruzioni per la connessione al db sono queste:
-------------------------------------
Dim Conn As ADODB.Connection
Set Conn = New ADODB.Connection
 
Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
     & "Data Source=" & percDB & ";Persist Security Info=False"
Conn.Properties("Jet OLEDB: Database Password") = "prova"
Conn.Open
-------------------------------------
l'esecuzione si blocca sull'istruzione di assegnazione delle password,
riportando questo errore: "Metodo 'Item' dell'oggetto 'Properties' non
riuscito"
Ho verificato lo stato della variabile Conn tramite il controllo
immediato e ho visto che la proprietà "Conn.Properties.Count" da'
questo errore: "Errore definito dall'applicazione o dall'oggetto"
Ho quindi aperto un nuovo prg e creato un nuovo database di access con
password; ho riportato sul nuovo prg le istruzioni di connessione e
tutto funziona alla perfezione... non ho nemmeno l'errore che
riscontro sulla proprietà "Conn.Properties.Count" ma anzi ho tutte e
14 le proprietà della connessione elencate nella finestra.
Ho fatto un ulteriore tentativo: ho inserito una per una tutte le
librerie che utilizza il prg su cui si genera l'errore, ma non ho
ottenuto alcun risultato in quanto il mio nuovo prg continua a
funzionare benissimo.
Ora non ho più idea di dove possa essere il problema. 
Che suggerimenti potete darmi?
Grazie a tutti
lady

 lady
ciaociao

 il pc dove ha fatto questa prova è lo stesso?
Tu ovviamente usi ADO_2.7 vero?
si, il pc è lo stesso.
ho fatto la stessa prova sul pc di una collega e mi si genera lo
stesso errore, mentre su un altro pc tutto funziona correttamente.
La cosa strana è che tutte e 3 le macchine sono configurate allo
stesso modo, quindi non riesco a capire cosa possa esserci di diverso.
Non hai qualche idea?
Grazie, buona giornata

 Grazie, buona giornata     
A te...
-- 
Rivolterò il mondo per trovarlo, e anche se andasse in Indocina uno dei 
nostri starà nascosto in una ciotola di riso pronto a sparargli nel culo.
(Pulp Fiction)

 A te...
Si ho provato a fare di tutto con la stringa di connessione, ma non c'č
verso di farla funzionare.
E' plausibile a questo punto che si tratti di qualche dll vecchia o
rovinata. 
Tra l'altro ho fatto il test su 3 pc configurati allo stesso modo, e su
due genera l'errore mentre su 1 parte e funziona tutto correttamente.
Non ho proprio idea di cosa possa essere.
Grazie per l'aiuto ;-)
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 correttamente. Non ho proprio idea di cosa possa essere.
                stringa_connessione = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA
SOURCE=" & nome_database & ";USER ID=;"
                If password <> "" Then
                    stringa_connessione = stringa_connessione & "Jet
OLEDB:Database Password=" & password & ";"
                Else
                    stringa_connessione = stringa_connessione & "PASSWORD=;"
                End If
Con questa sopra (ADO 2.7 refresh) va. Nella tua noto uno spazio dopo : e un
; assente...

 ; assente...
Niente da fare Lupo, non funziona.
Ripeto, il discorso è che ho fatto il test su 3 pc e 2 mi generano questo
errore mentre 1 funziona. Non capisco cosa possa essere diverso, i 3 pc
sono identici.
Grazie :-D


 diverso, i 3 pc sono identici.
Ora si va a pappa, ma tu pubblica le esatte istruzioni, meglio se non usi le
Properties...
Oggi ci si guarda.

 Oggi ci si guarda.
Buon pranzo e grazie ancora :-D
Ho fatto una prova ulteriore: ho eliminato dal progetto tutti i form, le
classi e i moduli .bas, oltre che il report; ho tolto tutti i riferimenti
e in componenti aggiuntivi.
In pratica ora ho un progetto che contiene un modulo .bas e il rif. alla
libreria di ado 2.7, e nel modulo ho scritto questo:
---------------------------------------
Option Explicit
Public Sub Main()
 
    Dim adoConn As New ADODB.Connection
    Dim strConn As String, strDatabase As String
    Dim adoRs As New ADODB.Recordset
 
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
             & strDatabase & ";Persist Security Info=False;" _
             & "Jet OLEDB:Database Password=prova"
 
    adoConn.ConnectionString = strConnCla
    adoConn.Open
    strConn = "SELECT * FROM tbOggetti"
    adoRs.Open strConn, adoConn, 1, 3
    MsgBox adoRs.RecordCount
 
End Sub
---------------------------------------
continua a bloccarsi sulla Open della connessione.
allora ho creato un nuovo progetto e ci ho copiato il modulo... tutto
funziona.
Rimane però un mistero perchè il prg "rotto" sul pc del mio capo funziona
perfettamente.


 funziona.
sul precedente c'è un errore di sintassi :-)
ora è corretto


> funziona perfettamente.
Sistemi operativi? Famiglia NT o non NT? (quel Persist Security mi sa che
vale solo per i primi).
Comunque sia, quelli di ADO hanno bevuto l'intero oceano e non era acqua...

 Comunque sia, quelli di ADO hanno bevuto l'intero oceano e non era acqua...
Win2000Pro SP4 ;)
E quel "Persist..." l'ho usato mille volte senza alcun problema.
In ogni caso, il mio collega mi ha ripassato il progetto aggiornato con le
ultime modifiche e ora ho provato a farlo partire... funziona
perfettamente. Francamente non so cosa sia cambiato dalla versione
precendente, anzi, il mio collega dice che non hanno cambiato nulla a
livello di componenti e riferimenti.
Lupo ti ringrazio di cuore, sei stato davvero gentile.
Spero di poter ricambiare il favore ;-)
a presto
lady


 Spero di poter ricambiare il favore ;-)
Fallo al più presto, un po' per me, un po' per te (che magari domani smette
di funzionare):
Ribadisco: Da me (XP Pro) le tue istruzioni NON funzionano. Vedi il mio post
sopra.