Trasferire dati tra due db Access o Access/SQL EXp

mercoledì 10 ottobre 2007 - 07.24

bluland Profilo | Guru

Salve,

ho 1 db access vorrei fare in modo che ogni volta che viene inserito un nuovo record in un specifica tabella di questo db mi venga aggiornata anche una tabella gemella in un altro db Access o magari SQL 2005 Express (nel caso possa utilizzarlo).

qualche idea su come procedere?

saluti
--------------------
Vincenzo PESANTE
System Engineer

iltexano Profilo | Newbie

dal basso della mia pochissima esperienza lo farei in vba.

inserisci il dato e fai l'add in tutte e 2 le tabelle!

se non ci sono soluzioni piu efficaci (da parte di altri sicuramente piu esperti) provo a scriverti 2 righe di codice! ;)

bluland Profilo | Guru

forse ho omesso una cosa,
al momento che installero' l'applicazione io non avro' il db access a disposizione ma solo i file .mdb.
--------------------
Vincenzo PESANTE
System Engineer

lbenaglia Profilo | Guru

>forse ho omesso una cosa,
>al momento che installero' l'applicazione io non avro' il db
>access a disposizione ma solo i file .mdb.

Ciao Vincenzo,

dato che Jet non supporta i triggers temo che una soluzione in realtime non sia possibile.
L'unica alternativa che mi viene in mente è quella di schedulare una sincronizzazione asincrona ogni x tempo.
Se la sincronizzazione è monodirezionale, te la puoi cavare aggiungendo una colonna bit che terrà traccia delle righe da esportare, altrimenti sarebbe opportuno implementare un sistema di replica in modo da gestire eventuali conflitti.

Le repliche con Access le ho studiate nel 1998 e sinceramente non le ricordo più
Probabilmente serve tutto il pacchetto Microsoft Access, ma ti suggerisco di documentarti...

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

alx_81 Profilo | Guru

>Salve,
Ciao!
>
>ho 1 db access vorrei fare in modo che ogni volta che viene inserito
>un nuovo record in un specifica tabella di questo db mi venga
>aggiornata anche una tabella gemella in un altro db Access o
>magari SQL 2005 Express (nel caso possa utilizzarlo).
>
>qualche idea su come procedere?
Direi che spostarsi da Access a SQL Server Express ti porta sicuramente dei vantaggi. Quindi tenderei a passare ad un motore più RDBMS ..
>
>saluti
>--------------------
>Vincenzo PESANTE
>System Engineer

Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluland Profilo | Guru

>Probabilmente serve tutto il pacchetto Microsoft Access, ma ti
>suggerisco di documentarti...
>



Allora faccio il punto della situazione,

ho un applicazione1 che scrive in un db Access in particolare in una tabella Anagrafica, (sul pc non c'e Access),
io sto scrivendo un altra applicazione (con db Access o Sql 2005 Express) che avra' una tabella che dovra' essere gemella della tabella Anagrafica, e dovrei fare in modo che quando l'applicazione1 inserira' un nuovo record questo venga immesso automaticamente anche nella mia tabella + o - in real time.
Poiche non installero' il pacchetto Access sul Pc, a questo punto mi vengono in mente 2 soluzioni,

1. Usare Sql express 2005 sulla nuova applicazione e magari creare un JOB o altro che mi interroghi il db Access e la tabella anagrafica ogni X tempo (dove cio sia possibile);

2. Creare nella nuova applicazione una nuova procedura che all'apertura cerchi degli aggiornamenti collegandosi al db Access;

3. Ricreare l'applicazione1 in modo da integrarla nella mia.


beh non mi viene altro, voi che ne dite?

saluti

EDIT:

4. Potrei creare il mio Db sempre in Access estendendo quello attualmente utilizzato dall'applicazione1 sfruttando cosi la tabella Anagrafica.

--------------------
Vincenzo PESANTE
System Engineer

lbenaglia Profilo | Guru

>1. Usare Sql express 2005 sulla nuova applicazione e magari
>creare un JOB o altro che mi interroghi il db Access e la tabella
>anagrafica ogni X tempo (dove cio sia possibile);
SQL Server 2005 Express non dispone del SQL Server Agent, quindi non puoi creare job e schedularli.
In alternativa puoi definire Task che andrai a schedulare con lo scheduler di sistema.

>2. Creare nella nuova applicazione una nuova procedura che all'apertura
>cerchi degli aggiornamenti collegandosi al db Access;
E gli aggiornamenti successivi? Inoltre lo startup durerebbe una vita.

>3. Ricreare l'applicazione1 in modo da integrarla nella mia.
Non puoi banalmente interrogare la tabella remota?!
Se utilizzi SQL Server 2005 Express puoi farlo tramite linked server, con Jet invece linkando la tabella.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

bluland Profilo | Guru

>>1. Usare Sql express 2005 sulla nuova applicazione e magari
>>creare un JOB o altro che mi interroghi il db Access e la tabella
>>anagrafica ogni X tempo (dove cio sia possibile);
>SQL Server 2005 Express non dispone del SQL Server Agent, quindi
>non puoi creare job e schedularli.
>In alternativa puoi definire Task che andrai a schedulare con
>lo scheduler di sistema.
>
>>2. Creare nella nuova applicazione una nuova procedura che all'apertura
>>cerchi degli aggiornamenti collegandosi al db Access;
>E gli aggiornamenti successivi? Inoltre lo startup durerebbe
>una vita.
>
>>3. Ricreare l'applicazione1 in modo da integrarla nella mia.
>Non puoi banalmente interrogare la tabella remota?!
>Se utilizzi SQL Server 2005 Express puoi farlo tramite linked
>server, con Jet invece linkando la tabella.

giusto il Linked server !!! Che stupido come ho fatto a non pensarci!!



>
>Ciao!
>--
>Lorenzo Benaglia
>Microsoft MVP - SQL Server
>http://blogs.dotnethell.it/lorenzo/
>http://italy.mvps.org

--------------------
Vincenzo PESANTE
System Engineer
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5