Newsgroup: it.comp.appl.access
Titolo: Stringa Connessione ADP

Scusate se ritorno sull'argomento da poco dibattuto, ma senza successo.
Si tratta di effettuare la connessione di un progetto Access adp verso un
server, da codice.
Sulla KB MS ho trovato il seguente riferimento:
http://support.microsoft.com/default.aspx?scid=kb;en-us;306881
 che è
esattamente quello che serve: peccato che NON funziona!
Ho seguito le indicazioni, ma ciò che non va è che non funziona la chiusura
della connessione corrente, pertanto non si riesce ad aprirne un'altra!
Se qualcuno c'è già riuscito, ci dica come.
Grazie a tutti.
Alb

 ha scritto nel messaggio
news:b7modn$lpu$1...@lacerta.tiscalinet.it...

Ciao Al ti posto un esempio che in sostanza è uguale alla Kb 306881 e a me
funziona .
Per chiudere la connessione utilizza il metodo CurrentProject.OpenConnection
"", noterai che spariscono le tabelle le viste ecc dal form di
access.
Dim StrCon As String
'Stringa di connessione con autendita di Sql server
'---------------------------------------------
 StrCon = "PROVIDER=SQLOLEDB.1;" & _
               "Data Source=TuoServer;" & _
               "Initial Catalog=TuoDatabase;" & _
               "User Id=NomeUtente;" & _
               "Password=PasswordUtente;"
CurrentProject.OpenConnection StrCon
'Stringa di connessione con autentica di Windows
-----------------------------------------------
 StrCon = "PROVIDER=SQLOLEDB.1;" & _
               "Data Source=TuoServer;" & _
               "Initial Catalog=TuoDatabase;" & _
               "Integrated Security=SSPI;"
CurrentProject.OpenConnection ""             'Chiudo la vecchia connessione
CurrentProject.OpenConnection StrCon    'Riapro la nuova
-------------------------------------------------
Ciao Giorgio

 > Se qualcuno c'è già riuscito, ci dica come.
Per curiosità ho provato l'esempio della Kb  e a me funziona benissimo
quindi avrai problemi anche con l'esempio da me postato, evidentemente il
problema è di altra natura.
L'esecuzione della funzione ti ritorna qualche errore ?
Ciao Giorgio.

Ciao Giorgio,
grazie per la risposta!
Purtroppo però non mi funziona niente!!!
Ti invio la routeine che utilizzo: a partire da un file di testo (con lo
stesso nome dell'applicazione) contenente i riferimenti del server a cui
puntare, cerca di rifare la connessione:
Public Sub ApriConnessioneSQL()
' Acquisisce le specifiche per la connessione a SQL
    Dim DataS As String, InitialC As String, NomeFile As String, Connessione
As String, p1 As Byte, p2 As Byte, fs As Object, a As Object
    NomeFile = CurrentProject.Path & "\" & Left(CurrentProject.Name,
InStr(1, CurrentProject.Name, ".adp")) & "TXT"
    If Dir(NomeFile) = "" Then
        MsgBox "Non è presente il file per collegare gli archivi!",
vbCritical, "Collegamento Archivi"
        Exit Sub
    End If
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set a = fs.openTextFile(NomeFile, 1, False)
    DataS = a.readline
    If DataS = "" Then
        MsgBox "Nel file del percorso non è indicato correttamente il
percorso per collegare gli archivi!", vbCritical, "Collegamento Archivi"
        Exit Sub
    End If
    Connessione = CurrentProject.Connection.ConnectionString
    DataS = Mid(DataS, InStr(1, DataS, "=") + 1)
    p1 = InStr(1, Connessione, "Data Source")
    p2 = InStr(p1, Connessione, ";")
    Connessione = Replace(Connessione, Mid(Connessione, p1, p2 - p1 + 1),
"Data Source=" & DataS & ";")
    InitialC = a.readline
    If InitialC = "" Then
        MsgBox "Nel file del percorso non è indicato correttamente il
percorso per collegare gli archivi!", vbCritical, "Collegamento Archivi"
        Exit Sub
    End If
    InitialC = Mid(InitialC, InStr(1, InitialC, "=") + 1)
    p1 = InStr(1, Connessione, "Initial Catalog")
    p2 = InStr(p1, Connessione, ";")
    Connessione = Replace(Connessione, Mid(Connessione, p1, p2 - p1 + 1),
"Initial Catalog=" & InitialC & ";")
'    Application.CurrentProject.CloseConnection
    Application.CurrentProject.OpenConnection ""
    Application.CurrentProject.OpenConnection Connessione
    MsgBox "Collegamento al Catalogo su server SQL riuscito!",
vbInformation, "Collegamento DataBase"
End Sub
In realtà, se utilizzo il metodo CloseConnection, non succede NIENTE! la
stringa di connessione del currentproject rimane identica!
Se utilizzo il metodo che mi hai suggerito, dopo l'esecuzione va in errore!!
Dov'è l'errore che commetto?
Grazie comunque


Ciao Al
Da quello che ho potuto capire senza provare la tua sub utilizzi la stringa
di connessione originale del progetto quindi ne vari le parti e cerchi di
connetterti.
La stringa originale del progetto contiene informazioni sulla connessione ma
non può essere utilizzata per eseguire la connessione stessa.
Prova questo semplice esempio
Dim StrCon As String
StrCon = CurrentProject.Connection.ConnectionString
CurrentProject.Connection.Close
CurrentProject.OpenConnection ""
CurrentProject.OpenConnection StrCon
Vedrai che genera errore.
Devi creare la stringa di connessione secondo l'esempio della M$ oppure
copia quello da me postato che in sostanza è uguale.
Ciao Giorgio.

Ok Giorgio,
funziona!
Non riesco però a capire perchè leggendo la stringa di connessione attuale e
modificandone solo alcuni parametri per riutilizzarla nella nuova
connessione, questa genera errore!
In ogni caso funziona.
Grazie.
Al