Front-end e back-end Access - SqlServer

di il
10 risposte

Front-end e back-end Access - SqlServer

Buongiorno a tutti, da qualche giorno mi frullava quest'idea. Poichè sono più pratico nella realizzazione di applicazioni in access (con modalità FE - BE), ero intenzionato ad utilizzare Sql Server come back-end ed access come Front-end in modo tale da giovare della velocità/capienza del server.

La mia domanda era questa, è possibile fare quest'operazione?

Perchè ho fatto una prova con un accdb (BE), l'ho salvato nel formato mdb ed ho provato ad importare alcune tabelle. Quindi:
Loggato nel server, creato database vuoto "prova"/tasto dx tasks/import data/data source: Microsoft Access e come destinazione: Sql server native client 10.0.
Importo la tabella flaggando "Enable identity intert" e lancio la procedura guidata, fin qui tt ok.
Ho collegato la tabella importata nel server nell'accdb (FE), Aperto una maschera relative all'anagrafica, provo a creare una nuova anagrafica, (già l'IDAnagrafica non si incrementa in automatico come succedeva cn la tabella dell'accdb BE) ed in fase di chiusura maschera access mi da un avviso:
ODBC: chiamata non riuscita.
e mi segnala che: Cannot insert the value Null into column "Attiva", riferimento db/tabella; column does not allow nulls. Insert fails.
Il campo "Attiva" è di tipo bit. Durante l'importazione della tabella, se lo seleziono mi porta Attiva(2) NOT NULL, voglio modificare il not null, clicco su edit sql... e modifico la voce [Attiva] bit NOT NULL, in [Attiva] bit ma nulla, continua ad importarlo come not null.
Ho convertito il campo in numerico/importato la tabella/creo nuovo record ma ora mi restituisce lo stesso errore con:
Cannot insert the value NULL into column 'Pred1'...

Come posso risolvere?
Vi sono altre tipologie di campi da convertire?
Questa soluzione la consigliate o potete consigliarmi altro? Perchè la mia preoccupazione e che l'app col tempo possa appesantirsi e rallentare...

10 Risposte

  • Re: Front-end e back-end Access - SqlServer

    Quello che in access è un campo contatore in sql server è identity e devi reimpostarlo dopo l'importazione.
    Riguardo alla tabella "Attiva" che valore passi?
  • Re: Front-end e back-end Access - SqlServer

    MaxMag64 ha scritto:


    Quello che in access è un campo contatore in sql server è identity e devi reimpostarlo dopo l'importazione.
    Riguardo alla tabella "Attiva" che valore passi?
    Ciao Max, ho provato a reimportare la tabella ma non mi da la tipologia "identity" mentre, ho provato ad aprire la tabella con il design/table designer voce identity Column ho messo il campo IDAnagrafica presente nella tabella, se provo a salvare mi dice che devo impostarla come identity con una nuova reimportazione. Se riprovo a reimportare e modifico l'sql in
    CREATE TABLE [tblAnagrafiche] (
    [IDAnagrafica] NOT NULL IDENTITY(1) PRIMARY KEY,
    mi da comunque errore
    cmq il campo "Attiva" è un attributo della tabella Anagrafiche ed è di tipo int e passo i valori 0/1

    EDIT: avevo scritto campo identity al posto di tipologia identity
    Sono rientrato nel design ed ho esploso, relativamente all'IDAnagrafiche la proprietà Identity Specification, impostando ad Is identity: yes, Identity increment: 1, identity Seed:1 ma mi dice ancora che non posso salvarla ma reimportarla..
  • Re: Front-end e back-end Access - SqlServer

    Il Seed dovrebbe essere impostato all'ultimo valore inserito nella tabella, in modo che inizi ad incrementare da lì, altrimenti tenta di duplicare la chiave primaria...
  • Re: Front-end e back-end Access - SqlServer

    Quando devo importare da zero un database access in SQL Server, mantenendo tutto correttamente (anche i contatori come identity) io uso sempre il tool gratuito: MS Access to MsSQL della Bullzip.
  • Re: Front-end e back-end Access - SqlServer

    MaxMag64 ha scritto:


    Il Seed dovrebbe essere impostato all'ultimo valore inserito nella tabella, in modo che inizi ad incrementare da lì, altrimenti tenta di duplicare la chiave primaria...
    ho fatto una prova ma nulla, non mi permette di fare modifiche...forse erro qualcosa?

  • Re: Front-end e back-end Access - SqlServer

    gibra ha scritto:


    Quando devo importare da zero un database access in SQL Server, mantenendo tutto correttamente (anche i contatori come identity) io uso sempre il tool gratuito: MS Access to MsSQL della Bullzip.
    Perfetto, scaricato ed importato le tabelle svuotate, alcune mi davano errore ma voglio capire prima come funziona
    quando colleghi le tabelle, importi anche tutte le altre che si trovano nella lista o solo quelle create da utente? Nel senso quelle di sistema vanno importate?
  • Re: Front-end e back-end Access - SqlServer

    Quando si importano tabelle in sql server di default non ti fa effettuare modifiche.
    In Managment Studio ad esempio devi andare in Strumenti/Opzioni/Finestre di Progettazione e defleggare l'opzione "impedisci il salvataggio delle modifiche per cui è necessario ricreare la tabella"
  • Re: Front-end e back-end Access - SqlServer

    zio Ken ha scritto:


    Perfetto, scaricato ed importato le tabelle svuotate, alcune mi davano errore ma voglio capire prima come funziona
    Bene.

    zio Ken ha scritto:


    quando colleghi le tabelle, importi anche tutte le altre che si trovano nella lista o solo quelle create da utente? Nel senso quelle di sistema vanno importate?
    Scusa ma a cosa ti riferisci di preciso?:
    Per quanto ne so io, le tabelle o le importi o le colleghi (non puoi fare entrambe le cose), quindi la tua domanda non è per nulla chiara...

    Le tabelle di sistema, sono di sistema relative al database. Chiaramente quelle di access sono inutili in SQL Server (e viceversa).
  • Re: Front-end e back-end Access - SqlServer

    gibra ha scritto:


    zio Ken ha scritto:


    Perfetto, scaricato ed importato le tabelle svuotate, alcune mi davano errore ma voglio capire prima come funziona
    Bene.

    zio Ken ha scritto:


    quando colleghi le tabelle, importi anche tutte le altre che si trovano nella lista o solo quelle create da utente? Nel senso quelle di sistema vanno importate?
    Scusa ma a cosa ti riferisci di preciso?:
    Per quanto ne so io, le tabelle o le importi o le colleghi (non puoi fare entrambe le cose), quindi la tua domanda non è per nulla chiara...

    Le tabelle di sistema, sono di sistema relative al database. Chiaramente quelle di access sono inutili in SQL Server (e viceversa).
    Relativamente al post, si parla espressamente di un back-end quindi sottinteso che si collegasse, avevo riformulato la domanda ma non avevo cancellato tutto il periodo...cmq mi riferivo alle tabelle con il prefisso "sys" quindi mi hai risposto...
    Però mi sono alcuni campi/impostazioni che danno "fastidio" in fase di scrittura...ad esempio, nella tabella delle Anagrafiche ho inserito il CodiceFornitore con le impostazioni:richiesto no; indicizzato si duplicati non ammessi...questo pechè si attiva solo se l'utente seleziona che l'anagrafica è di tipo fornitore sbloccando il campo...dopo l'import con il tool, quando provo l'inserimento di un anagrafica, anche se non fornitore, mi da il seguente avviso...

    Relativamente alle relazioni tra le tabelle, devo definirle nel FE?
  • Re: Front-end e back-end Access - SqlServer

    zio Ken ha scritto:


    nella tabella delle Anagrafiche ho inserito il CodiceFornitore con le impostazioni:richiesto no; indicizzato si duplicati non ammessi...questo pechè si attiva solo se l'utente seleziona che l'anagrafica è di tipo fornitore sbloccando il campo...dopo l'import con il tool, quando provo l'inserimento di un anagrafica, anche se non fornitore, mi da il seguente avviso...
    Mi pare ovvio! Cosa ti aspettavi?
    Mettere non richiesto insieme a no duplicati è una contraddizione.
    Devi gestire il controllo nell'applicazione.

    zio Ken ha scritto:


    Relativamente alle relazioni tra le tabelle, devo definirle nel FE?
    Le relazioni vanno sempre nel database.
Devi accedere o registrarti per scrivere nel forum
10 risposte