Ciao, primo post!
Ho una applicazione Access/Vba che ha delle tabelle collegate con un server SQL...Più client che si collegano.
Da almeno due anni funziona tutto, più o meno , implementazione fatta di getto senza grandi elementi a supporto, tradotto: da praticone.
Oggi vorrei iniziare ad ottimizzare connessioni, intercettazione dei msg di errore di connessione e qualche query, per semplificare la manutenzione, ottimizzarne le prestazioni e non sfidare ulteriormente la sorte.
Inizio col il collegamento, attualmente gestito tramite ODBC
ODBC Driver 17 for SQL Server
DNS utente
Autenticazione SQL Server tramite ID e password
(Sarebbe ottimale utilizzare Autenticazione Windows integrata, da quello che ho capito serve win pro ed un dominio, io ho win home e pro sul server)
Dim connString As String
Dim db As DAO.Database
Dim tb As DAO.TableDef
Set db = CurrentDb
On Error GoTo RefreshODBCLinks_Err 'Se non c'è connessione mi arriva sempre prima la finestra di errore di connessione
' Ancora non ho capito se si può intercettare :(
'Leggo il nome del server per poter puntare il server di casa mia piuttosto che dal lavoro
Server_Name = ini_manager("r", "DATABASE", "nome_server")
'Connessione ODBC
connString = "DSN=ODBC_17_SQL;Trusted_Connection=No;APP=Microsoft Office 2016;DATABASE=Casale_Server;Network=DBMSSOCN;Address=" & Server_Name & ",1433;Uid=xxxx1;Pwd=Lamiapassword;"
' N.B. nel file ini ho inserito anche la stringa connString in chiaro, perchè se cambiassi parametri di connessione non sarei costretto
' a rimettere mano al programma e ricompilarlo...Magari dovrei criptare la stringa.
'Poi eseguo un refresh dei link delle tabelle collegate...Eccetera
For Each tb In db.TableDefs
Rivedendo la documentazione di MS a proposito di collegamento DB leggo che sarebbe più performante utilizzare OLE DB.
Vi risulta?
Devo implementare sempre preventivamente il drive e la connessione dal tool "Origini Dati"?
...Qualcuno ha qualche dritta per l'Autenticazione Windows integrata?
Per l'evoluzione del programma un bel contributo mi è stato dato da @Alex , Masterdrive
Se serve posto l'immagine dei componenti abilitati:
Grazie