[Risolto] ODBC: con office 365 non vedo il DSN

di il
13 risposte

[Risolto] ODBC: con office 365 non vedo il DSN

Ciao a tutti.
É la prima volta che scrivo in questo forum, non sono un programmatore ma ormai da circa 15 anni uso access in azienda per vari motivi. Cerco il più possibile di usare VBA in quanto ai miei primi passi con access e le macro ho avuto non pochi problemi.

Nel corso degli anni ho creato una quindicina di database che tuttora usiamo in azienda per vari scopi, alcuni di questi si collegano delle tabelle via ODBC al gestionale (base oracle) solo in lettura.

Ora ho un problema proprio con gli odbc. Su alcune macchine nuove, con office 365 (e la relativa versione di access di cui ho perso il conto ...) , aprendo il tool degli odbc (quello a 32 bit) di windows riesco a creare le connessioni e testarle, ma quando apro access non le vedo, di conseguenza i DB precedentemente creati non riescono a connettersi alle tabelle del gestionale.
In rete ho trovato qualcosa su come creare la stringa di connessione, ma nulla che somigli al mio problema.

Ci sto perdendo gli occhi, ma non riesco a capire cosa devo fare.
Grazie in anticipo per ogni aiuto/ suggerimento che possiate darmi.
---
oierpa

13 Risposte

  • Re: [Risolto] ODBC: con office 365 non vedo il DSN

    oierpa ha scritto:


    ... Su alcune macchine nuove, con office 365 (e la relativa versione di access di cui ho perso il conto ...) , aprendo il tool degli odbc (quello a 32 bit) di windows riesco a creare le connessioni e testarle, ma quando apro access non le vedo
    Si tratta forse di Access/Office/Microsoft 365 a 64bit? Da un po' di tempo a questa parte Microsoft propone di default lo scarico ed installazione della versione a 64bit.
  • Re: [Risolto] ODBC: con office 365 non vedo il DSN

    Ciao e grazie per la risposta.
    Si Office è a 64 bit, ho proprio dimenticato di dirlo ...
  • Re: [Risolto] ODBC: con office 365 non vedo il DSN

    oierpa ha scritto:


    Si Office è a 64 bit, ho proprio dimenticato di dirlo ...
    indi per cui devi agire dalle origini dati ODBC a 64bit, mentre tu eri andato su quello a 32bit.
  • Re: [Risolto] ODBC: con office 365 non vedo il DSN

    Comiciavo a sospettarlo dal tuo messaggio precedente...
    Solo che ora non trovo l'ODBC 64 bit per oracle.
  • Re: [Risolto] ODBC: con office 365 non vedo il DSN

    oierpa ha scritto:


    Solo che ora non trovo l'ODBC 64 bit per oracle.
    Un motore di ricerca può essere di grande utilità.
    Forse qui trovo quello che ti serve.
    https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html
    NB: non ho mai usato un database Oracle quindi non ho la più pallida idea di come funziona e se quello è il link giusto.
  • Re: [Risolto] ODBC: con office 365 non vedo il DSN

    Sto provando ad usare proprio alcuni dei driver trovati su questa pagina, ma senza successo purtroppo.
    Mi pare, ma non ne ho la certezza, che il driver non renda disponibile l'odbc a 64 bit, ma giri su macchina x64.
  • Re: [Risolto] ODBC: con office 365 non vedo il DSN

    Ciao a tutti.
    Alla fine ho risolto disinstallando la versione 64 bit e mettendo su quella a 32 bit.
    Ho dovuto fare così perchè nonostante diversi tentativi con i driver ODBC trovati in rete, non ho trovato le versioni a 64 bit. Quindi nel tool di windows che apre la gestione degli ODBC non vedo mai il driver (se sullo stesso pc apro il tool per gli odbc a 32 bit invece compare).
    Grazie 1000 per l'aiuto!
  • Re: [Risolto] ODBC: con office 365 non vedo il DSN

    oierpa ha scritto:


    Grazie 1000 per l'aiuto!
    Se hai Access/Office/Microsoft365 (continua a cambiar nome) a 64 bit come fai ad usare le origini dati ODBC a 32 bit? Forse si può, non l'ho mai visto, ma suona strano.
    Non posso provare un database Oracle, sono riuscito però ad installare Oracle Instant Client basic (che poi è uno zip da estrarre) e l'ODBC package 21.3 a 64bit e dopo aver lanciato odbc_install.exe nell'origine dati ODBC a 64 bit è comparsa la voce relativa ad Oracle. Ovviamente non ho potuto provarlo con nulla non avendo né un database Oracle a cui collegarmi né Access a 64bit.
    Con odbc_uninstall.exe quella nuova voce è sparita dall'origine dati ODBC a 64bit di Oracle.
    Però a te funziona ed è quello che conta.
  • Re: [Risolto] ODBC: con office 365 non vedo il DSN

    Philcattivocarattere ha scritto:


    oierpa ha scritto:


    Grazie 1000 per l'aiuto!
    Se hai Access/Office/Microsoft365 (continua a cambiar nome) a 64 bit come fai ad usare le origini dati ODBC a 32 bit? Forse si può, non l'ho mai visto, ma suona strano.
    Infatti non ho potuto usarlo, nel mio ultimo messaggio (forse non mi sono spiegato bene), indicavo che ho disinstallato Office 64 bit e reinstallato il 32 bit (la licenza di Office 365 o come caspita si chiama me lo ha consentito). Dopo questa operazione ho potuto vedere il driver installato e collegare correttamente le tabelle, ora mi resta solo lavorare un po' in VBA per testare le connessioni ed evitare che gli utenti debbano ricollegarsi le tabelle a mano in caso di problemi.

    Installando il pacchetto di oracle però non vedo il driver odbc 64 bit. Ho lanciato manualmente il tool di windows sia nella versione 32 che 64 bit (che stranamente si trovano in directory con nomi controintuitivi) e nella versione 32 vedo l'odbc, nella versione 64 non vedo il driver per poter creare un DSN.
    Tu che versione hai scaricato dal sito oracle?

    Saluti!
  • Re: [Risolto] ODBC: con office 365 non vedo il DSN

    oierpa ha scritto:


    Infatti non ho potuto usarlo, nel mio ultimo messaggio (forse non mi sono spiegato bene), indicavo che ho disinstallato Office 64 bit e reinstallato il 32 bit
    Ah, ok, quando avevi scritto
    disinstallando la versione 64 bit e mettendo su quella a 32 bit.
    pensavo ti riferissi ai tool/ODBC di Oracle invece tu parlavi di Office.

    oierpa ha scritto:


    Tu che versione hai scaricato dal sito oracle?
    instantclient-basic-windows.x64-21.3.0.0.0.zip
    instantclient-odbc-windows.x64-21.3.0.0.0.zip
    Estratto il primo zip, s'è creado da solo la cartella "instantclient_21_3" nel percorso in cui mi trovavo (non C:\ ma una directory di prova un po' complicata che comunque potrebbe essere del tipo D:\prove\varie\)
    Estratto il secondo zip, che da solo è andato ad aggiungere i file alla medesima cartella "instantclient_21_3"
    Ho aperto la riga comandi come amministratore, spostato in quella cartella e scritto
    odbc_install.exe
    INVIO. Riposta a video
    Oracle ODBC Driver is installed successfully.
    Aperta l'origine dati ODBC 64 bit, provando ad aggiungere una nuova origine DSN, compare una nuova voce: "Oracle in instantclient_21_3" (trattini bassi compresi) Versione 21.00.00.00
    Doppio clic e compare la finestra Oracle ODBC Driver configuration. Di più non ho fatto, quindi non posso garantirti che andando avanti funzioni tutto.
  • Re: [Risolto] ODBC: con office 365 non vedo il DSN

    Ciao di nuovo.
    Per il momento ho accantonato la versione 64 bit, ma ci voglio tornare sopra. La procedura che ho seguito è identica alla tua, ma aprendo il tool odbc di windows non mi proponeva i driver a 64 bit ... vedremo.

    Ora sto cercando di preaprare un DB di prova da distribuire agli utenti, vorrei creare la connessione ad oracle in modalità DNS-less e ho accrochiato il codice qui di seguito:
    
    Sub MakeConnection_R2()
    On Error GoTo Err_MakeConnection_R2
    Dim db As Database
    Dim td As TableDef
    Dim count As Integer
    Dim tabOr As String
    Dim tabDe As String
    Dim strSQL As String
    Dim contTot As Integer
    Dim cont As Integer
    Set db = CurrentDb
    cont = 0 'inizializzo il contatore
    strSQL = "SELECT tabOrigine, TabDestinazione, flag FROM elencoTab WHERE (((flag)=True))"
    
    Set rst = CurrentDb.OpenRecordset(strSQL)
    contTot = rst.RecordCount
    Debug.Print "totale tabelle da collegare: " & contTot
    Forms![maschera1].Testo3.Value = "Tabelle: " & contTot
    
        rst.MoveFirst
        
        Do Until rst.EOF
        cont = cont + 1
            strsourcename = rst.Fields("tabOrigine")
            strlocalname = rst.Fields("TabDestinazione")
    
    
    Set tdf = db.CreateTableDef(strlocalname)
    tdf.Connect = "ODBC;DRIVER={Oracle in OraClient11g_home1};DBQ=nomedb;UID=nomeutente;PWD=password"
    
    tdf.SourceTableName = strsourcename
    
    Forms![maschera1].Testo1.Value = "Sto collegando la tabella: " & strsourcename & " in -> " & strlocalname & " - " & cont & "/" & contTot
    
    
    db.TableDefs.Append tdf
    rst.MoveNext
    
    Loop
    
    Forms![maschera1].Testo1.Value = "Tutte le tabelle sono state collegate"
    
    db.Close
    Set db = Nothing
    
    Exit_MakeConnection_R2:
       Exit Sub
    Err_MakeConnection_R2:
       If Err.Number = 3010 Then
          Forms![maschera1].Testo1.Value = "Tabella già collegata"
       End If
       Resume Exit_MakeConnection_R2
    
    End Sub
    
    sostanzialmente ho:
    • creato una tabella di appoggio in cui elenco le tabelle da collegare, scelgo se la tabella è da collegare o meno con un campo "flag", come si vede da strSQL;
    • ho creato una maschera con un pulsante che richiama la sub Make_connection_R2;
    • cliccando sul pulsante le tabelle vengono connesse e in un controllo della maschera "dovrei" vedere il progresso dell'operazione.
    Il tutto essenzialmente funziona, ma ho i seguenti problemi:
    • anche quando la procedura di collegamento è terminata, non vedo le tabelle nel pannello laterale (lo sto tenendo aperto per controllo, il db per gli utenti non lo avrà visibile);
    • ho impostato la variabile contTot per contare quante tabelle devono essere collegate, ma restituisce sempre il numero 1 (ho inserito per prova 7 tabelle, quindi mi aspetterei questo numero nel contatore). Problema di poco conto visto che poi le tabelle sono realmente collegate;
    • nel controllo non riesco a vedere la scritta: "collegamento della tabella x su y" ed il relativo contatore cont/contTot (anche questo è un problema di poco conto);
    • nel controllo riesco a vedere il messaggio "tutte le tabelle sono collegate". Anche questo mi pare strano perché non riesco a vedere il progresso dell'operazione ma questo messaggio si ... (anche qui poco male).
    Come dicevo il problema principale è dovuto al fatto che le tabelle si collegano ma non le vedo per un bel po'. Infatti se chiudo il db e lo riapro le tabelle sono lì. Dopo che la sub ha collegato le tabelle ho provato a creare a mano una query e le tabelle non mi comparivano quando cercavo di selezionarle, quindi temo che se costruisco con questa logica il db, gli utenti non riescano a usufruire dei report, maschere ... e in generale tutti gli oggetti che hanno come base dati le tabelle collegate, se non dopo diversi minuti.
    É un problema che altri hanno già avuto?

    Come dicevo, le tabelle alla fine ci sono. Il comportamento è simile su diversi sistemi operativi (ho provato win 7 pro 64 bit e win 10 pro 64 bit), con win 10 il tempo di "ritardo" è ancora più lungo.

    Spero di essermi spiegato bene.
    Grazie in anticipo a tutti per l'aiuto.
  • Re: [Risolto] ODBC: con office 365 non vedo il DSN

    oierpa ha scritto:


    Per il momento ho accantonato la versione 64 bit,
    ...
    Ora sto cercando di preaprare un DB di prova da distribuire agli utenti, vorrei creare la connessione ad oracle in modalità DNS-less...
    Non ho letto con attenzione il resto del post. Si tratta di un nuovo argomento? Se sì: apri un thread nuovo.
  • Re: [Risolto] ODBC: con office 365 non vedo il DSN

    Philcattivocarattere ha scritto:


    Non ho letto con attenzione il resto del post. Si tratta di un nuovo argomento? Se sì: apri un thread nuovo.
    mmmh ... per me è la prosecuzione di quello precedente, ma io sono di parte
    Se visto da fuori è un altro argomento, chiudo questo e riapro con un nuovo thread.
    Thanks!
Devi accedere o registrarti per scrivere nel forum
13 risposte