Dato che l'ho scritta per il mio forum interno la riporto anche qui, spero possa essere utile a qualcuno..
Questa guida spiega come creare i driver ODBC e come utilizzarli all'interno delle query Access per comunicare con SQL Server 2008 R2
INDICE:
Creazione di un driver ODBC su File
Utilizzo del driver ODBC per collegare una tabella SQL Server in Access
Utilizzo driver ODBC su query di Accodamento, Modifica, Eliminazione
CREAZIONE DI UN DRIVER ODBC SU FILE
***********************************
Per poter leggere e collegare le tabelle di SSMS in Access è necessario creare un driver ODBC.
Di seguito trovate la guida su come creare un Driver ODBC su FILE, questo perchè una volta creato basterà condividere il file con tutti gli utenti interessati (per leggere i dati non sarà quindi necessario crearlo su ogni postazione..)
Guida ceazione Driver ODBC su File:
- Accediamo a: Pannello di Controllo => Strumenti di amministrazione => Origine Dati (ODBC)
- Spostiamoci nella scheda DNS su File e premiamo il tasto "Aggiungi"
- Scorriamo fino in fondo la lista che ci verrà presentata e selezioniamo il driver "SQL Server"
- Decidiamo un nome da dare al driver, se premiamo su sfoglia ci permette di selezionare la cartella in cui salvare il file.
Se non premiamo su sfoglia il file si salverà correttamente e in automatico nella cartella di sistema.
Per prassi gli diamo un nome parlante, che ci permetta di capire in quale db ci collegheremo.
- Ora premiamo "Avanti" e poi "Fine", si aprirà una nuova finestra.
- Sulla casella ti testo "Server" inseriamo questa stringa: NomeServer\SQLEXPRESS
Questa stringa ci permette di collegarci a NomeServer e al servizio SQL Server
- Premiamo "Avanti", nella videata successiva lasciamo tutto com'è, in SSMS devono essere stati inserite le utenze windows con il permesso di leggere i database, quindi accederemo con Autentificazione di Windows (così facendo sarà tutto automatico e ristretto agli utenti gestiti in SSMS)
- Premiamo "Avanti", (se ci esce errore avete sbagliato uno dei due passi precedenti)
- Facciamo una spunta sulla casella "Usa il seguente Database Predefinito"
- Premiamo nell'elenco dei database e selezioniamo il database in cui il driver andrà a puntare.
N.B. Non è possibile fare un driver generico che punti a tutti i database.
- Lasciamo invariate le altre voci e premiamo "Avanti" e successivamente su "Fine"
Ok, se avete seguito correttamente i passi descritti il driver è stato creato e si trova nella cartella di sistema pronto ad essere utilizzato.
UTILIZZO DEL DRIVER ODBC PER COLLEGARE UNA TABELLA SQL SERVER IN ACCESS
************************************************** *********************
Per collegare una tabella di SSMS in Access dobbiamo utilizzare il driver ODBC che abbiamo appena creato.
Esso ci permetterà di accedere alle tabelle del database di SSMS che abbiamo impostato sul driver ODBC.
- Nel menu di Access andare nella voce Dati Esterni => Database ODBC
- Selezionare la voce "Collega all'origine..." e premiamo su "OK"
- Sulla finestra che appare cerchiamo il driver che abbiamo precedentemente creato, lo selezioniamo e premiamo su "OK"
- Apparirà ora una finestra con un elenco di tabelle.
Le tabelle create da noi sono individuabili dal prefisso DBO.nometabella.
Tutte le altre tabelle sono di sistema e non vanno toccate.
- Selezioniamo la tabella che vogliamo collegare e prima di premere OK facciamo una spunta su "Salva Password"
Questo ci permetterà di accedere alla tabella senza che venga richiesto il Login.
UTILIZZO DRIVER ODBC SU QUERY DI ACCODAMENTO, MODIFICA, ELIMINAZIONE
************************************************** *******************
Query di Selezione, Accodamento e Modifica:
- Se dobbiamo leggere con una query di SELEZIONE i dati presenti in una tabella di SSMS utiliziamo una query standard di Access.
- Se dobbiamo ACCODARE dati in una tabella di SSMS utiliziamo una query di Accodamento di Access.
- Se dobbiamo MODIFICARE dati in una tabella di SSMS utiliziamo una query di Modifica di Access.
Al momento non ho ancora individuato il modo per leggere o scrivere i dati tramite Pass-Through.
Query di Eliminazione:
Se dobbiamo Eliminare un set di record da una tabella di SSMS non possiamo farlo tramite query di Access, l'unico sistema è fare una Pass-Through.
- Per creare una Query Pass-Through andiamo nel menu CREA => Struttura Query
- Chiudiamo la finestra che permette di inserire le tabelle sulla query.
- Dal menu Progettazione (è un menu contestuale) premiamo la voce Pass-through
- Ora che siamo nella query Pass-through sempre nel menu contestuale premiamo su "Finestra delle Proprietà"
- Nel campo "Restituisci Record" mettiamo NO
- Nel campo "Stringa conness. ODBC" dobbiamo utilizzare questa stringa:
ODBC;DRIVER=SQL Server;SERVER=NomeServer\SQLEXPRESS;UID=Utente;Pwd=Password;Trusted_Connection=Yes; DATABASE=Database;Network=DBMSSOCN;Address=NomeServer\SQLEXPRESS,60 462
Dove:
Utente è l'utente che vogliamo utilizzare per eseguire la query (Usiamo Applrep)
Password è la pw dell'utente che abbiamo utilizzato
Database è il nome del database a cui vogliamo accedere su SSMS
Significato degli altri parametri:
ODBC indica che stiamo accedendo a un driver
DRIVER=SQL Server indica che stiamo utilizzando un driver di tipo SQL Server (questo significa che non ci stiamo collegando a nessun ODBC di sistena ne di File ma lo stiamo creando direttamente sulla query)
SERVER=NomeServer\SQLEXPRESS indica il Server SQL a cui ci vogliamo connettere
Trusted_Connection penso si riferisca al fatto che nell'esecuzione deve mantenere una connessione sicura
Network=DBMSSOCN penso indichi il tipo di network utilizzato
Address=NomeServer\SQLEXPRESS,60462 indica Il server e la porta di accesso "che deve essere aperta nel firewall di windows"
La sintassi SQL per creare una query di eliminazione è la seguente:
codice:DELETE FROM [dbo].[tabella] Where condizioni

Rispondi quotando