Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Chiedo scusa per il lungo tempo di attesa ........ :) .......
Forse il problema sta nel mio PC/sistema perche mi sembra troppo strano che si tratti di un problema generalizzato .....
Ho fatto un rapido esperimento concentrandomi solamente sul problema esposto,
(che avrei individuato, ma che non so come risolvere, quindi lo ho aggirato cambiando approccio )
Vengo al dettaglio dell'esperimento ....
Ho 2 DB rigorosamente identici su un server remoto (xxx.xxx.xxx.xxx) e su PC locale (I90C)
Ho generato 3 tabelle con la classica procedura guidata di Microsoft (GUI)
T1ManRemSa (GenerataManualmente - Connessa in Remoto a xxx.xxx.xxx.xxx - Utente sa e Pass )
T1ManLocSa (GenerataManualmente - Connessa in Locale a I90C - Utente sa e Pass )
T1ManLocTr (GenerataManualmente - Connessa in Locale a I90C - Trusted )
Poi ho generato altre 3 tabelle identiche MA USANDO IL CODICE
T1CodRemSa (GenerataDaCodice - Connessa in Remoto a xxx.xxx.xxx.xxx - Utente sa e Pass )
T1CodLocSa (GenerataDaCodice - Connessa in Locale a I90C - Utente sa e Pass )
T1CodLocTr (GenerataDaCodice - Connessa in Locale a I90C - Trusted )
il codice utilizzato è stato questo: (Ho omesso gestione errori e tutto il resto per concentrarmi solo sul problema)
Private Sub createConnectTable()
Dim Tdf As DAO.TableDef
Dim dbs As DAO.Database
Set dbs = CurrentDb
Const strConnCodRemSa As String = "ODBC;DRIVER=SQL Server;SERVER=xxx.xxx.xxx.xxx;UID=sa;PWD=xxxx;DATABASE=Test01"
Set Tdf = dbs.CreateTableDef("T1CodRemSa")
Tdf.Connect = strConnCodRemSa
Tdf.SourceTableName = "dbo.T1"
CurrentDb.TableDefs.Append Tdf
Application.RefreshDatabaseWindow
Const strConnCodLocSa As String = "ODBC;DRIVER=SQL Server;SERVER=I90C;UID=sa;PWD=xxxx;DATABASE=Test01"
Set Tdf = dbs.CreateTableDef("T1CodLocSa")
Tdf.Connect = strConnCodLocSa
Tdf.SourceTableName = "dbo.T1"
CurrentDb.TableDefs.Append Tdf
Application.RefreshDatabaseWindow
Const strConnCodLocTr As String = "ODBC;DRIVER=SQL Server;SERVER=I90C;UID=I90U;Trusted_Connection=Yes;DATABASE=Test01"
Set Tdf = dbs.CreateTableDef("T1CodLocTr")
Tdf.Connect = strConnCodLocTr
Tdf.SourceTableName = "dbo.T1"
CurrentDb.TableDefs.Append Tdf
Application.RefreshDatabaseWindow
End Sub
Poi da codice ho letto sulla finestra immediata le "connect" delle 6 tabelle incriminate
Private Sub LeggiConnessione()
Dim Tdf As DAO.TableDef
Dim dbs As DAO.Database
Set dbs = CurrentDb
For Each Tdf In dbs.TableDefs
If InStr(Tdf.Connect, "ODBC") Then
Debug.Print Tdf.Name & " " & Tdf.Connect
End If
Next Tdf
End Sub
Il risultato alla finestra immediata è ststo questo: (Lo ho riordinato e spaziato per renderlo leggibile)
T1ManLocSa ODBC;DRIVER=SQL Server;SERVER=I90C; UID=sa;PWD=xxxx; APP=Microsoft Office 2013; DATABASE=Test01
T1CodLocSa ODBC;DRIVER=SQL Server;SERVER=I90C; ???? APP=Microsoft Office 2013; DATABASE=Test01
T1ManRemSa ODBC;DRIVER=SQL Server;SERVER=xxx.xxx.xxx.xxx; UID=sa;PWD=xxxx; APP=Microsoft Office 2013; DATABASE=Test01
T1CodRemSa ODBC;DRIVER=SQL Server;SERVER=xxx.xxx.xxx.xxx; ???? APP=Microsoft Office 2013; DATABASE=Test01
T1ManLocTr ODBC;DRIVER=SQL Server;SERVER=I90C; UID=I90U;Trusted_Connection=Yes; APP=Microsoft Office 2013; DATABASE=Test01
T1CodLocTr ODBC;DRIVER=SQL Server;SERVER=I90C; APP=Microsoft Office 2013; DATABASE=Test01
Risulta che le 3 tabelle generate da codice (di cui 2 dovevano avere connessione con "sa") sono in effetti tutte con connessione "Trusted"
Ho aggiunto per la leggibilita degli spazi e dei punti di domanda dove mancherebbero le cresdenziali
pertanto in locale mi funzionano, ma se tento di connettermi a un Server remoto mi chiede sempre la pass
(per chiarezza ricordo che le 3 tabelle generate da codice sono quelle che nel 3° 4° 5° carattere hanno "Cod"
Ripeto, ormai ho "aggirato" il problema, pero sarei curioso di scoprire dove sta il problema,
Grazie
Scusatemi, sto rileggendo il tutto e mi rendo conto che è lungo e incasinato,
quindi riepilogo in 4 righe:
La tabella T1CodRemSa generata da codice con questa stringa
"ODBC;DRIVER=SQL Server;SERVER=xxx.xxx.xxx.xxx;UID=sa;PWD=xxxx;DATABASE=Test01"
mi risulta alla finestra immediata che poi abbia quest' altra stringa (manca utente e pass)
"ODBC;DRIVER=SQL Server;SERVER=xxx.xxx.xxx.xxx; APP=Microsoft Office 2013; DATABASE=Test01"
.