Query creazione tabella da maschera

di il
18 risposte

Query creazione tabella da maschera

Ciao a tutti,
ho un nuovo quesito...
Devo azzerare ia tabella "fatture" a fine anno e, si spera, per i prossimi anni.
La soluzione più ovvia è creare una "query di creazione tabella" impostando immediatamente il nome della nuova tabella che verrà creata.
Volendo automatizzare questa funzionalità per gli utenti che dovranno usarla, ho creato una maschera che contiene solo un campo per indicare l'anno da trasferire e un pulsante di esecuzione query.
Il mio quesito è il seguente:
come faccio a far creare il nome della nuova tabella prendendo il nome dal campo che ho creato nella maschera?
Riporto di seguito il codice SQL della query
SELECT Fatture.IDFattura, Fatture.DataFattura, Fatture.NumFatt, Fatture.Agente, Fatture.CondizioniPagamento, Fatture.IDPagamamento, Fatture.IDPagamento, Fatture.Stampata, Fatture.IVA, Fatture.IDCliente, Fatture.Sconto INTO fatture16 IN 'C:\mio\db.mdb'
FROM Fatture;
Grazie a tutti in anticipo

18 Risposte

  • Re: Query creazione tabella da maschera

    Perchè devi fare una cosa simile...?
    Le tabelle non si TOCCANO PIU' una volta strutturato il DB, se ti viene in mente di fare azioni che modificano il DB significa che stai sbagliando COMPLETAMENTE.
  • Re: Query creazione tabella da maschera

    Scusa Alex ma forse ho forti problematiche nel farmi comprenderee...
    C'è una tabella, nel mio db, che ogni anno deve essere NECESSARIAMENTE azzerata, e si chiama "fatture".
    Naturalmente questi dati riferiti all'anno corrente NON possono andare persi e devono pertanto essere trasferiti su una nuova tabella chiamata, ad esempio, "fatture2016".
    L'operazione più semplice, che ho già praticato, è di creare preventivamente tante tabelle pronte a ricevere i dati riferiti all'anno che andrà azzerato. Con una query di accodamento trasferisco i dati dall'anno in corso all'anno archivio di competenza, poi un'altra query elimina tutto il contenuto dell'anno in corso, il successivo compattamento del db mi riporta la tabella "fatture" al numeratore 1, pronto per essere usato nel nuovo anno (come saprai i numeratori delle fatture devono essere azzerati ad ogni inizio anno).
    La mia domanda era pertanto molto banale, ma non ho trovato nulla in rete al riguardo, e cioè: invece di creare tante tabelle preventivamente vorrei che la query di creazione tabella mi desse la possibilità di decidere, nel momento in cui faccio il passaggio al nuovo anno, come denominare la tabella che conterrà gli archivi.
    Spero di essere stato più chiaro adesso e ti ringrazio per tutto
  • Re: Query creazione tabella da maschera

    Mi chiedevo perché tu hai l'esigenza di azzerare tutto..?
    Questo lo sento dire spesso da chi è abituato ad usare Excel... chi usa un database relazionale non farà MAI una cosa come quella che tu stai valutando di fare... quindi volevo farti capire che sei sulla strada più sbagliata in assoluto.
    Poi vedi tu, capisco anche che se non hai basi di struttura relazionale tu abbia difficoltà a capire... ciò nonostante ti invito a provare ad approfondire la teoria dei dati per evitare in modo cosciente un approccio errato.

    Valuta ad esempio di aggiungere alla tabella originale un campo che ne definisce l'anno contabile... e questo invece di cancellare, spostare e rifare... non pensi possa rappresentare un a soluzione..?
    Ovviamente poi le varie estrazioni terranno conto dell'anno...
    Questo non solo eviterà di cancellare o spostare i dati contabili, ma ti consentirà in modo veloce e performante di poter accedere ai dati contabili anni precedenti per fare grafici e tendenze o confronti...
    Insomma il modo giusto di gestire i dati è questo.
  • Re: Query creazione tabella da maschera

    Perfetto,
    questa potrebbe rappresentare un'ottima soluzione sulla quale mi metto al lavoro.
    Ma nel frattempo, con tutti le raccomandazioni del caso, esiste una risposta alla mia domanda?
    Grazie
  • Re: Query creazione tabella da maschera

    Si certo... con Queies di creazione tabella e successive queries di eliminazione dati... ma avrai GRANDI problemi in caso di dati relazionati ad altre tabelle... e se non ne hai in una gestione contabile sarei preoccupato.
    Mi fermo qui... non essendo buona tecnica... mettiti al lavoro studiando meglio come usare un database relazionale e non perdere tempo con concetti errati... oppure usa Excel come probabilmente hai fatto fino a ieri.
  • Re: Query creazione tabella da maschera

    Concordo con Alex.

    Premetto che non sono fatti miei, ovviamente, e tu hai il sacrosanto diritto di fare quello che meglio credi, ma quello che non comprendiamo è del perché tu debba NECESSARIAMENTE azzerare le tabella fatture.
    Tra l'altro, poi, ciò dovrebbe valere anche per le altre tabelle come DDT, Preventivi, ecc. ?
    Inoltre, visto che non ne hai fatto cenno, immagino che ciò dovresti farlo anche con le tabelle dei Dettagli... o no?

    Nei gestionali le tabelle dei documenti come Fatture, DDT, Preventivi, ecc. non vanno mai azzerate.
    Sono i numeratori che vanno (se così vogliamo dire) azzerati, nel senso che il numeratore deve essere calcolato insieme all'anno dell'esercizio fiscale (che dovrebbe essere presente in tabella).
    Tra l'altro, per legge è possibile utilizzare più numeratori riferiti a registri di genere diverso, quindi di opzioni se ne hanno più che a sufficienza.

    Ad esempio, a me un cliente ha chiesto di poter numerare le fatture accompagnatorie con un numeratore differente (richiesta pervenuta del suo commercialista). Cosa faresti tu? Crei una ulteriore tabella FattureAccompagnatorie?

    Per quanto riguarda la tua richiesta se esiste una risposta alla tua domanda, la mia risposta è 'dipende'.
    Dipende da come hai strutturato il database in particolar modo dalle tabelle Articoli, pagamenti, Anagrafica C/F, dalla business logic, dalle regole che l'azienda si è posta, ecc.

    In ogni caso, a parte il 'dipende', occorrerebbe poi vedere se il tuo programma è stato concepito per questa 'modalità' d'uso alquanto complicata.
  • Re: Query creazione tabella da maschera

    Mi sembra la barzelletta di colui che va ad acquistare la carta igienica e gli viene chiesto dal negoziante di mostrare il sedere e il wc per potergliela vendere...
    Io vi ringrazio per il tempo che state perdendo con me e per i PREZIOSISSIMI consigli che mi state dando.
    Questo DB, che non gestisce contabilità ma è fondamentalmente un CRM, l'ho creato ed è operativo dal 1998. All'inizio gestiva la fatturazione poi fu tolta questa funzionalità a favore di un gestionale contabile vero e proprio (naturalemte il DB CRM ha continuato ad operare per tutto quanto concerne la gestione dei clienti (è per un centro assistenza tecnica).
    Quest'anno si è deciso di riprendere la fatturazione perché la gestione contabile è stata data in gestione al commercialista, quindi basta che la fattura sia emessa ai sensi di legge e basta.
    Non sono previsti DdT, ordini, gestione magazzino... Insomma è un modulo a se stante che viene richiamato dall'anagrafica clienti.
    Naturalmente è presente anche la tabella "dettagli fatture" che dovrebbe avere la stessa sorte della tabella "fatture", non l'ho citata perché a me basterebbe sapere se a quella benedetta istruzione SQL che ho inserito nel primo post è possibile far fare quello che dico io o no, per ribaltare la stessa tecnica a tutti gli altri casi che mi interessano.
    Capisco che per i guru questa mia metodologia sia orripilante, e farò tesoro dei vostri consigli per i prossimi sviluppi, ma adesso l'urgenza è di risolvere questa problematica.
    Se non è possibile ditemi chiaro e tondo NON ESISTE SOLUZIONE A QUELLO CHE CHIEDI (e mi metto l'anima in pace), oppure PER PRINCIPIO, VISTO CHE STAI SBAGLIANDO, NON TE LO DICO (e mi rimetto in cerca su internet), oppure modificatemi banalmente l'istruzione che ho inserito nel primo post affinché possa utilizzarla per sbagliata che sia.
    GRazie ancora a tutti
  • Re: Query creazione tabella da maschera

    Se tu fossi stato chiaro da SUBITO (come avresti dovuto essere) e spiegare in dettaglio come stanno le cose, non avremmo perso tempo nel cercare di aiutarti nel darti saggi consigli.
    A questo punto, non mi sento di proseguire oltre perché non saprei proprio cosa consigliarti in quanto non ho la minima idea di che impatto possa avere sul tuo database, non conoscendolo.

    Ti posso dire che, probabilmente, aprendo il database con MSAccess, ti basterebbe fare una banale copia della tabella, poi azzeri la tabella 'reale'.
  • Re: Query creazione tabella da maschera

    Grazie Gibra,
    forse non sono stato chiaro, ma nel mio primo post la domanda era semplice e cioè come far dare il nome ad una nuova tabella usando il campo di una maschera e facendo girare una query di creazione tabella precedentemente creata.
    Vediamo se con un passo-passo di quello che voglio fare riesco ad essere più chiaro:
    - apro una maschera che contiene solo un campo ("casella di testo") non associato;
    - digito un nome in quel campo;
    - premo pulsante "esegui query" che crea una nuova tabella prendendo il nome dalla "casella di testo" della maschera di cui sopra;
    Le implicazione a livello di db me le gestisco io tranquillamente, quello che mi sta bloccando è questo semplice passaggio che, sicuramente, per voi guru sarà un gioco da ragazzi.
  • Re: Query creazione tabella da maschera

    Segnalo:
    http://forum.masterdrive.it/access-79/creare-tabella-maschera-97300/
    http://forum.ialweb.it/forum_posts.asp?TID=16466703&PID=3386158
  • Re: Query creazione tabella da maschera

    Per giudemar. Stai sbagliando l'approccio sui database e su Access. Per questo motivo non ha senso alcun tipo di suggerimento al tuo caso. Tu devi avere UNA tabella "cronologica" che parte dalla data della prima fattura e tende all'infinito. Per conoscere dati entro un determinato periodo di tempo (esempio un Anno), si usano le QUERY.
  • Re: Query creazione tabella da maschera

    Grazie anche a te OsvaldoLaviosa,
    vogliamo provare un attimo a resettare tutto? Non voglio aprire un altro post altrimenti vengo nuovamente tacciato di crosspost.
    Supponiamo che io voglia semplicemente fare quello che ho descritto nel mio ultimo post, e cioè:
    - apro una maschera che contiene solo un campo ("casella di testo") non associato;
    - digito un nome in quel campo;
    - premo pulsante "esegui query" che crea una nuova tabella prendendo il nome dalla "casella di testo" della maschera di cui sopra;
    è cosa fattibile? posso modificare in qualche modo il codice SQL (quello generato nella "query di creazione tabella") o creare del codice Visual Basic che mi faccia creare una nuova tabella dando un nome che decido in quella maschera?
    Se poi quella tabella conterrà fatture, clienti, amanti... è del tutto indifferente.
    Spero di aver spiegato bene di cosa ho bisogno, e grazie ancora per la pazienza
  • Re: Query creazione tabella da maschera

    giudemar ha scritto:


    Grazie anche a te OsvaldoLaviosa,
    vogliamo provare un attimo a resettare tutto? Non voglio aprire un altro post altrimenti vengo nuovamente tacciato di crosspost.
    Non sei stato "TACCIATO" di nulla, hai contravvenuto al regolamento in vari FORUM, facendo CROSSPOST... la colpa non è nostra.

    P.S. la risposta di come fare l'hai avuta nel mio precedente intervento, quindi mettici un po del tuo...!

    A mio avviso il 3D andrà chiuso.
  • Re: Query creazione tabella da maschera

    Alex,
    io continuo a parlare di aglio e tu continui a parlare di cipolle, evidentemente parliamno sempre di ortaggi ma diversi...
    Mi hai dato un suggerimento su come strutturare diversamente un db già esistente, io invece avrei bisogno di inetgrare nel modo che ho spiegato nell'ultimo post.
    Se ritenete che l'argomento sia esaurito chiudete pure il 3D, non sono certo io l'arbitro della situazione
Devi accedere o registrarti per scrivere nel forum
18 risposte