Importare Access DB su SQL DB

di il
15 risposte

Importare Access DB su SQL DB

Ciao,

come consigliato qui sul forum, per aumentare la velocita del mio Acess DB quando sono connessi piu utenti, devo importare il mio BE in sql server.

Il wizard sql import 64 bit non mi mostra il contenuto del db (cioè tabelle e queries sulla preview sono vuote);

mentre il wizard 32 bit le vede correttamente; quindi procedo con questo.

Importo solo le tabelle (non le queries giusto?)

Importando il tutto poi appare questo:

mandando avanti appare questo:

che password dovrei mettere? quella del pc non va....appare questo:

Grazie!

15 Risposte

  • Re: Importare Access DB su SQL DB

    Perchè prima di partire a razzo senza nemmeno sapere con che Sistema Operativo stai lavorando non leggi e studi qualche documento...? Non è lo SmartPhone che con 4 click installi l'APP...!!!!

    Ho impiegato 3 secondi a trovare questi LINK, chiaro che serve aver voglia di leggere mettersi a provare e capire cosa si sta facendo.


    https://www.sormanistudio.it/blog/sql-server/importare-una-tabella-di-ms-access-in-sql-server/

    https://www.sabrinacosolo.com/importare-un-mdb-access-in-sql-server/

    https://support.microsoft.com/it-it/topic/eseguire-la-migrazione-di-un-database-di-access-a-sql-server-7bac0438-498a-4f53-b17b-cc22fc42c979

    https://support.microsoft.com/it-it/topic/importare-o-collegare-dati-in-un-database-di-sql-server-a5a3b4eb-57b9-45a0-b732-77bc6089b84e

    https://it.accessrepairnrecovery.com/blog/convertire-o-migrare-il-database-di-accesso-al-server-sql

  • Re: Importare Access DB su SQL DB

    Grazie Alex,

    adesso le leggo con calma.... vediamo cosa riesco a capire.

    ho omesso di dire che ho visto ci sono vari modi per importare dati da access a sql.... io stavo provando l'import da access a sql con questo: 

    Microsoft SQL Server Migration Assistant for Access

    https://www.microsoft.com/en-us/download/details.aspx?id=54255

  • Re: Importare Access DB su SQL DB

    Ok allora ho importato il tutto;

    Con il sql service management studio sono diventato matto 1 ora per connetermi al database perche mi dava errore -2146893019 su youtube c'era la soluzione flaggando "aggiungi ai trusted" o una cosa del genere ma l'ultima versione di management studio hanno pensato bene di togliere quell'opzione cosi l'unica alternativa è stata scaricarmi la versione vecchia di SSMS. Poco male la vecchia versione si è infatti connessa subito; questo il DB importato:

    Avevo visto questo video su youtube dove importava il database completo access (quindi non diviso in FE and BE):

    https://www.youtube.com/watch?v=YJeS7nr365M&t=527s

    e una volta fatto questo, l'utente youtube faceva doppio click sullo stesso db access e stando a quello che diceva si sarebbe collegato al sql, ma in realta' se apro il file acccess ovviamente si apre l'intero database access come prima....

    in realta non so se bisogna fare come il video, oppure se bisogna avere il database access gia diviso e importare tramite il wizard il BE e poi reindirizzare il FE verso il database sql ?

  • Re: Importare Access DB su SQL DB

    Allora seguendo questo video:

    https://www.youtube.com/watch?v=JyzrpBC5PAg

    sono riuscito ad importare il database su sql; usando il primo metodo quindi con il db access in unico file: importato in sql; 

    da access cambiata origine dati scegliendo database OCBD (come mostrato sul video) e aprendo il database access ho quindi eliminato tutte le tabelle (che erano quelle che pesavano)  ricompattato il file ora pesa sui 7mb,

    Il file access funziona senza erorri, con tutte le maschere ma.......  E' LENTISSIMO!!!!  

    Ad aprire e chiudere le maschere ci mette 30 secondi (sotto appare la scritta esecuzione query…) …ma tutto molto molto lento!!

    Pensavo diventasse fulmine invece :(. ….Molto meglio l'access di prima diviso tra BE e FE

    Sbaglio io qualcosa?

  • Re: Importare Access DB su SQL DB

    23/01/2025 - 823 ha scritto:

    Sbaglio io qualcosa?

    Ciao, mi sembra che @Alex ti abbia già risposto in modo esaustivo.

    Non basta fare dei click e per magia, o per puro caso, tutto funziona.

    Occorre avere delle competenze che si acquisiscono solo con lo studio, professionalità ed esperienze. 
    Queste consentono di analizzare correttamente tutti gli aspetti di un progetto. 

    Senza offesa, è evidente che da parte tua esistono carenze come sopra descritto. 
    Questo è normale ed è difficile in questo contesto portare avanti certe tematiche là dove non ci sono  le basi minime necessarie atte a comprendere di cosa si stia parlando.

    Ciò detto non deve risultare come una critica nei tuoi confronti, lungi da me tale intenzione e onore al merito per gli sforzi che stai producendo , bensì un modo per farti capire che dietro alla realizzazione di un progetto esistono dei prerequisiti minimi a partire dalla realizzazione di una attenta analisi che traccia le linee guida alla costruzione corretta di un database relazionale.

    Sono tanti gli aspetti tecnici da affrontare come gli indici, relazioni, tabelle e tipi di fields, storedprocedure e tanti altri aspetti e argomenti che rappresentano l'abc.

    Fatta tale premessa, se vuoi affrontare tali aspetti dove studiare ed approfondire i tanti argomenti del caso, ti consiglio di crearti un piccolo progetto dove:

    • creare un database SqlServer Express con tre o quattro tabelle
    • nelle tabelle creare le fields in modo appropriato e razionalmente sulla base del loro utilizzo
    • creare gli indici e le relazioni là dove è necessario
    • inserisci un numero elevato di records nelle tabelle


    Successivamente crea un progetto in MsAccess :

    • crea un file accdb
    • esegui i collegamenti alle tabelle creando per esempio una connessione :
      • per esempio una connessione ODBC: DRIVER=ODBC Driver 17 for SQL Server
      • per esempio una connessione SqlServer: DRIVER=SQL Server
      • oppure ciò che ritieni più opportuno secondo i S.O. in uso
    • testare la bontà della connessione messa in essere:
      • realizza delle interrogazioni con delle semplici query di interrogazione
      • realizza lettura/scrittura/aggiornamento da Vba con le connessioni di cui sopra
        • usa metodi di aggiornamento/inserimento records tramite :
          • stringhe Sql
          • storedprocedure
          • etc etc etc...


    Seguire questa semplice traccia ti permette di entrare in "connessione" con degli argomenti e tecniche da approfondire e da studiare. 
    Fatte queste esperienze vedrai che ti troverai un passo più avanti rispetto ad oggi e capirai come taluni aspetti sono vasti e studiati appositamente secondo vari scenari e campi applicativi.

    Ci sono tante altre cose da considerare e tanti argomenti ancora... Ho solo cercato di semplificare al massimo alcuni concetti per farti capire che nulla viene lasciato al caso o ad un semplice "click". 

    Detto questo capirai benissimo come sia poco probabile trovare certe risposte in certi forum, come per esempio questo che affronta specifiche tematiche tecniche e non "tutorial" ad uso e consumo generici.

    Adesso venendo al tuo quesito.... 

    23/01/2025 - 823 ha scritto:

    Il file access funziona senza erorri, con tutte le maschere ma.......  E' LENTISSIMO!!!!  

    sappiamo tutti bene come mai riscontri questi problemi e banalmente ci sono soluzioni appropriate e semplici da applicare come sopra e in altri post già descritto... (mica avrai collegato le tabelle del front end al database access che a loro volta sono collegate a SqlServer?)

    Per approfondire e iniziare a studiarsi SqlServer puoi fare riferimento e questa guida: 
    https://learn.microsoft.com/it-it/sql/sql-server/editions-and-components-of-sql-server-2022?view=sql-server-ver16

    Per quanto riguarda MsAccess puoi fare riferimento a questa guida: 
    https://support.microsoft.com/it-it/access

  • Re: Importare Access DB su SQL DB

    23/01/2025 - 823 ha scritto:

    Ad aprire e chiudere le maschere ci mette 30 secondi

    Prova a verificare il traffico di rete da quando apri la form (quella che ci mette 30 secondi ad aprirsi)  a quando appare con i dati

    Se vedi che la rete va a 100 Mbit/sec dopo circa 30 secondi saranno passati grossomodo 300 Mbyte in tutto

    Ti torna come occupazione dati delle informazioni restituite da quella sola tabella/query?

    Se fosse cosi vuol dire che stai tirando su troppa roba, dovresti paginare o roba del genere

    Viceversa, se i primi 2 secondi vedi traffico di rete e poi smette ed inizia a lavorare disco e cpu allora forse sta 'incastrando' i dati ed ordinandoli

    In questo caso devi lavorare sulle chiavi/indici per consentire alla query di andare alla velocita' massima

    Voglio dire, se hai la tabella DOCUMENTITESTATE collegata alla tabella DOCUMENTIRIGHE tramite il campo ID_DOCUMENTITESTATE, sulla tabella DOCUMENTIRIGHE il campo ID_DOCUMENTITESTATE deve essere definito come indice altrimenti la query deve scorrere TUTTE le righe della DOCUMENTIRIGHE per trovare quelle da usare per il documento corrente, e questa e' una cosa da non fare 

    Prima ancora di preoccuparsi delle dimensioni db, che anche nel caso di molti Gigabyte con Sql Server non dovrebbe essere un problema, verifica se le query grezze usate siano al fulmicotone o peggio di una lumaca

    A parte operazioni particolari, l'apertura di una form deve essere contenuta in qualche secondo, altrimenti l'operatore non vedendo niente inizia a pestare sui tasti ed aumenta esponenzialmente la probabilita' che qualcuno si spazientisca e non ti paghi i lavori consegnati

  • Re: Importare Access DB su SQL DB

    Prima di passare ad aprire maschere, cerca di capire se la lentezza è nell'aprire una Tabella o meno...!

    Se la Tabella si apre normalmente, allora devi studiare bene la differenza tra una gestione LOCALE e CLIENT-SERVER... purtroppo Access-Jet-SQLServer per chi non ha esperienza è un imbuto ed un problema come già dissi.

    Se hai Maschere basate su Query Parametriche che non vengono eseguite SERVER-SIDE hai fatto un buco nell'acqua... e per questo devi imparare ad usare lo strumento che hai installato ed i suoi programmi di Managment per fare diagnostica.

    Se scrivi male le Query obblighi il server a restituirti tutti i dati e l'applicazione di Criteri e condizioni verrà effettuata in LOCALE da JET, a quel punto cosa serve un SERVER SQL ...? Tutto sarà molto lento e capita a 10 utenti non esperti su 10.

    Come ti ha detto Franco serve prima studiare, il tuo approccio da installatore di APP sul cellulare non è quello giusto, se non hai competenze, farai come la pallina nel Flipper senza capire nulla ed onestamente diventa anche complesso capire se e come darti indicazioni intelligenti.

  • Re: Importare Access DB su SQL DB

    Per scrupolo ho rifatto ora l'importazione, questa volta ho importato solo il be in sql, e il FE l'ho collegato al server sql cosi come spiegato passo passo in questo video di un pakistano:

    https://www.youtube.com/watch?v=JyzrpBC5PAg

    tutto funziona ma sempre lenteissimo!

    Grazie per le Vs. risposte!  diciamo che non avendo le competenze per destreggiarmi in questo ambiente, ci ho provato!

    ....se funzionava tutto velocemente come speravo, ok, ma cosi non è stato perche gira molto peggio di prima.... e ora mi mancano proprio le competenze e l'esprienza per mettere le mani e cercare di risolvere quelli che possono essere i problemi che generano il lag....anche perche non mi va di toccare piu di tanto cio che ha fatto il mio mio amcio in access che cmq va molto bene ed è veloce fintanto non si loggano piu utenti.....  e non conoscendo nessuno che anche a pagamento mi provi a sistemare la cosa, devo abbandonare l'idea del db in sql con front end access.

    Devo dire che ho provato questo stesso database access sulla mia stessa rete cancellando circa il 60% dei dati (cioè da 78 mb a 30 mb) e tutto va bene anche quando ci sono piu utenti collegati !!!!! è comunque molto veloce!  ma quando il db è di 78 mb rallenta molto in caso di multiutenza.

    Quindi l'unica cosa che vorrei provare è splittare il BE da 78mb in due file BE da circa 38MB ciascuno,  per vedere se le prestazioni migliorano quando ci sono piu utenti collegati....

    E' una cosa difficile da provare a fare?

    grazie!

  • Re: Importare Access DB su SQL DB

    24/01/2025 - 823 ha scritto:

    ....

    Quindi l'unica cosa che vorrei provare è splittare il BE da 78mb in due file BE da circa 38MB ciascuno,  per vedere se le prestazioni migliorano quando ci sono piu utenti collegati....

    E' una cosa difficile da provare a fare?

    grazie!

    Tai parlando di dimensioni ridicole... 70MB non possono generare quel carico, un db del genere ben strutturato, nemmeno fossero 2GB creerebbe quel problema... direi che sei fuori strada.

  • Re: Importare Access DB su SQL DB

    24/01/2025 - 823 ha scritto:

    E' una cosa difficile da provare a fare?

    grazie!

    Non fare lo spezzatino... non solo puoi creare altri problemi e non ha proprio senso... come ben detto da @Alex

    Sinceramente non vedo scorciatoie e personalmente le odio. ;-)

    1. Attualmente che versione di MsAccess usi?
    2. Quali connessioni vengono utilizzate nel Vba per accedere alle tabelle?
    3. Hai verificato che siano impostati gli indici nelle tabelle per fields utilizzate nelle Where Condition , Filter Maschera, etc etc?
    4. Nelle Form i recordset in origine dati come vengono impostati o passati?

    In generale il sintomo che descrivi sembra provenire proprio da una brutta gestione del database e da tecniche di programmazione non "appropriate".
    Fai le verifiche di cui sopra e vediamo se riesci ad ottimizzare correttamente il database. 

  • Re: Importare Access DB su SQL DB

    Franco l’unica risposta che ti so dare alle 4 domande è la prima: access 2016 installato sia su server che sui client.

    So dirti che su analizza prestazioni non mi sembrava mancassero indici alle tabelle…ma prendilo con le pinze…

    Bisognerebbe che riuscissi a trovare qualcuno che abbia voglia di darci un okkio….  Se conoscete qualcuno …segnalatemelo grazie.


    Dimemticavo la prova in sql l’ho fatta eseguendo il FE sul server e non sul client… ma penso avrebbe dovuto funzionare anche meglio!

  • Re: Importare Access DB su SQL DB

    Comunque se puo essere utile a qualche impedito come il sottoscritto, segnalo questa guida per creare due o piu backends:

    https://stackoverflow.com/questions/77633348/splitting-ms-access-database-to-multiple-backend

    Ho provato al volo e funziona, domani provo sul vero db con due o piu BE splittati.  Vediamo come si comporta sulla mia lan, se migliora o meno!

    Vorrei essere fiducioso perche c'è una tabella tra tutte molto pesante.... e senza di quella il db vola anche con piu utenti connessi,  quando c'è lei pero le cose rallentano....magari splittata in un altro BE...chissà!  non mi resta che provare!

  • Re: Importare Access DB su SQL DB

    Ciao,

    peccato.... purtroppo dal forum, come diceva anche @Alex, così è difficile darti degli aiuti.

    Prova a provare a trovare qlc che abbia le competenze per mettere direttamente le mani nel database.

  • Re: Importare Access DB su SQL DB

    Allora provato lo split in piu file BE.... mmmm diciamo che non ho visto miglioramenti...

    eh Franco il problema è trovarla la persona che abbia le competenze per darci un okkiata.

    Diciamo che il lavoro fatto dal mio amcio su access è ottimo,

    quando parlo di "lentezza" parlo di 1/2 secondi perche si chiuda o apra una maschera, soprattutto se ci sono piu utenti connessi......insomma non è fulmineo come vorrei !

     da qui penso servirebbe una persona con un po di esperienza su come possa interfacciarsi un certo codice su una lan. Ovviamente sono disposto a pagare il lavoro, ma non saprei a chi chiedere.

    lascio il mio contatto se qualcuno dovesse avere l'ispirazione di darci un okkiata:  info823@-gmail-com

    In ogni caso stavo pensando che nel 2025 con streaming dati arrivati a oltre 200mb/s, sui database invece siamo ancora presi come gli anni 90 con latenze varie, per riuscire a visualizzare pochi elementi di testo.....strana sta cosa

Devi accedere o registrarti per scrivere nel forum
15 risposte