PDA

View Full Version : ACCESS - SQLSERVER con ADO


tutancamel
25-07-2008, 08:58
Ciao Ragazzi avrei bisogno di un aiuto con il codice VBA.

io ho un database in ACCESS chiamato SCDATA_AC con 1 tabella chiamata "GIORNO" vuota ed ho un database in SQLSERVER chiamato SCDATA_SQ con all'interno la stessa tabella "GIORNO" piena.

Io ho bisogno di creare un modulo all'interno del database Access che si colleghi a SQLSERVER tramite ADO e con una insert - select inserisca questi dati all'interno della tabella GIORNO di ACCESS.

Qualcuno sa dirmi come fare??
scusatemi ma sono i miei primi passi in questo linguaggio e devo finire al più presto un lavoro.... :muro:

vi ringrazio per un eventuale risposta....

Marco :help:

akyra
25-07-2008, 13:17
il fine è portare tutti i dati nella tabella "giorno" di access o usare ADO per fare ciò?

la prima cosa che mi viene in mente è quella di creare una tabella collegata in access alla tabella "giorno" di sql server, quindi creare una "SELECT INTO" che legge i record dalla tabella in sql server e li riversa in quella di access

banryu79
25-07-2008, 13:21
Scusate l'OT ma non resisto: tutancamel, hai un nick fantastico! :D

tutancamel
28-07-2008, 14:26
Ciao Akyra!

ti ringrazio per la risposta ma purtroppo non posso fare cosi perchè devo per forza farlo da codice, sto facendo la modifica di un applicazione e devo sottostare alle decisioni dei miei capi :read:
quindi devo per forza fare la modifica da codice VBA tramite ADO


x Banryu79

grazie, ho questo nik perchè a scuola mi chiamavano cosi causa mio cognome ;)

akyra
28-07-2008, 16:20
Ciao Akyra!

ti ringrazio per la risposta ma purtroppo non posso fare cosi perchè devo per forza farlo da codice, sto facendo la modifica di un applicazione e devo sottostare alle decisioni dei miei capi :read:
quindi devo per forza fare la modifica da codice VBA tramite ADO


x Banryu79

grazie, ho questo nik perchè a scuola mi chiamavano cosi causa mio cognome ;)


il problema qui può essere molto semplice o anche abbastanza complesso...

assumendo che la struttura della tabella sia sempre la stessa nel tempo, quello che puoi fare è connetterti all'sql server tramite ADO


dim rst as ADODB.recordset
dim conn as ADODB.connection

set rst = new ADODB.recordset
set conn = new ADODB.connection
conn.connectionstring = "blablablabla"
rst.Open "SELECT * FROM GIORNO", conn


naturalmente bisogna inserire la stringa di connessione giusta per il tuo sql server...

a quel punto potresti fare un classico ciclo for che cicla tra i vari record del recordset e chiama una "INSERT INTO" prendendo come dati quelli letti dal record corrente...

il limite di questa tecnica è che se per caso la tabella nell'sql server cambia, tutto il codice non serve più a una mazza...