Newsgroup: it.comp.appl.access
Titolo: Parametrizzare collegamento ODBC con MSSQL

Salve a tutti,
Prima di postare ho fatto tutte le ricerche possibili ma non ho trovato la soluzione al mio problema che vi espongo qui di seguito.
 
Ho creato una applicazione in access che vorrei "distribuire" tramite pacchetto. Tutte le tabelle dell'applicazione risiedono su db MSSQL che ho collegato utilizzando la procedura guidata e creazione di file dsn. Il mio problema e che cambiando server sono costretto ogni volta a "ricompilare" l'applicazione in loco. E' possibile in qualche modo salvare i parametri di connessione delle varie tabelle in un file che distribuirei insieme al DB (non so tipo un file ini) in modo che modificando quest'ultimo evito di ricompilare tutte le volte l'applicazione?
 
Grazie per le eventuali risposte.
Andrea

 ha scritto:

prendili da una tabella che inserisci nel FE, a cui associ una Form che
fai aprire solo la prima volta per inserire i parametri... dopo averli
verificati giusti, con un OK, salvi i dati in tab. e questi diverranno i
tuoi di connessione.
 
-- 
------------
Pablitomf
Napoli sempre nel "Q"uore!
"mammasantissima" si nasce, non si diventa.
 


Grazie per la risposta anche se sinceramente c'ho capito un po' poco... 
Saresti cosi' gentile da darmi qualche info in piu' o magari indicarmi dove posso trovare un'esempio o qualcosa di simile. 
 
Da quanto ho capito:
1) Creo una tabella in locale nel FE dove inserisco i dati di connessione. Deduco che questa tabella dovra' avere piu' campi (Es. Nome server, Nome DB, Utente, PSW, etc.)
2) Faccio in modo di modificare questi dati da una maschera.
 
I miei dubbi sono:
1) Come faccio a far aprile tale maschera solo la prima volta per inserire i parametri?
2) Come associo questi parametri a quelli di connessione della tabella?
 
Grazie,
Andrea

 ha scritto nel messaggio 
news:2ee07578-8f25-4623...@googlegroups.com...

Io non uso l'mdb esterno
Da dentro un mde  faccio sempre cosi:
 
Dim tdf As DAO.TableDef
Set tdf = CurrentDb.CreateTableDef(nome_tabella)
tdf.Connect = "ODBC;DSN=" & nome_dsn() & ";UID=GAMBA,PWD=DILEGNO"
tdf.Attributes = dbAttachSavePWD
tdf.SourceTableName = nome_tabella
CurrentDb.TableDefs.Append tdf
Set tdf = Nothing
 
Se lo ripeti per ogni tabella, colleghi il tuo applicativo a qualsiasi fonte 
dati
Ciao
RobertoA
 
 
 


Ciao grazie per la risposta.
Alla fine ho utilizzato questo codice:
 
Dim strServer As String
strServer = Me!txtServer
 
Dim strDatabase As String
strDatabase = Me!txtDatabase
 
Dim strUid As String
strUid = Me!txtUid
 
Dim strPassword As String
strPassword = Me!txtPassword
 
Dim connString As String
    connString = "ODBC;DRIVER=SQL Server Native Client 10.0;" & _
             "SERVER=" & strServer & ";UID=" & strUid & ";" & _
             ";PASSWORD=" & strPassword & ";" & _
             "Trusted_Connection=Yes;" & _
             "APP=Microsoft Office 2010;DATABASE=" & strDatabase _
 
 
    Dim db As DAO.Database
    Dim tb As DAO.TableDef
    Set db = CurrentDb
    For Each tb In db.TableDefs
    If Left(tb.Connect, 4) = "ODBC" Then
        tb.Connect = connString
        tb.RefreshLink
    End If
    Next tb
    Set db = Nothing
 
Mi prendo, come puoi vedere, i dati da una maschera e tramite tasto lancio l'aggiornamento. Mi piacerebbe fare qualcosa di piu' elegante del tipo prendere questi dati da un file esterno o, fare in modo, di eseguire come mi ha consigliato PablitoMF la maschera solo la prima volta.
Per ambo i casi non ho assolutamente idea di come fare :)
 
Idee?


Metti un txt con la connessione nelle dir del programma, lo leggi all'avvio dell'applicazione. Se c'è qualche problema usi la connessione di default (tutto impostato da codice). Se vuoi ancoira più 'eleganza' salvi la stringa di connessione nel registro di sistema, in una dir creata apposta per il tuo programma. L'applicazione non la dovrai più toccare. Basta cambiare il txt a seconda della macchina in cui sei


Il txt nella directory del programma che viene letto in apertura e imposta i parametri per me sarebbe il max solo che non ho idea di come dovrebbe essere il codice da scrivere....

> Il txt nella directory del programma che viene letto in apertura e imposta i parametri per me sarebbe il max solo che non ho idea di come dovrebbe essere il codice da scrivere....
 
una cosa del genere
 
Public Function TrovaConnessione() As String
 
    Dim FilePath As String
    Dim Str As String
 
    FilePath = Application.CurrentProject.path & "\Connessione.txt"
 
    Open FilePath For Input As #1
 
    Line Input #1, Str
 
    Close #1
 
    TrovaConnessione = Str
 
End Function
 
Questo legge la connessione dal txt
Se vai su sitocomune o su accessgroup ci sono tutte le routine per il relink delle tabelle mdb o ODBC
 

 ha scritto nel messaggio 
news:56b6d1c1-f064-4752...@googlegroups.com...

Oltre alla lettura della conessione da usare serve ovviamente il re-link di 
tutte le tabelle
 
 


come in effetti ho scritto....


Ora provo e vi faccio sapere.
Grazie per l'aiuto


Risolto utilizzando il codice postato sopra e ovviamente, come avete detto entrambi, le tabelle vanno relinkate.
Grazie a tutti per l'aiuto