Rinominare tabella

di il
15 risposte

Rinominare tabella

Ciao a tutti,
sono nuovo nel forum e premetto che con Access non sono proprio una cima, ma ultimamente mi ci sto dedicando un pochino per automatizzare dei processi lavorativi.
Adesso mi trovo in questa situazione, ho un db nel quale nelle varie tbl inserisco attraverso delle maschere i versamenti da fare all'erario ed al termine dell'elaborazione vorrei creare 2 tabelle di backup una destinata al recupero "immediato" che viene sovrascritta ogni volta, e l'altra per avere uno storico. Il codice che ho usato è il seguente:
Function Genera_F24()
Dim check As String
check = MsgBox("Una volta generato l'F24 per poterlo modificare sarà necessario prima avviare la Macro ""XXX - Elimina per Generare nuovamente F24 COMPLETO"" VUOI CONTINUARE?", vbYesNo)
If check = vbYes Then

    DoCmd.SetWarnings False
    DoCmd.OpenQuery "Elimina Dati", acViewNormal, acEdit
    DoCmd.OpenQuery "Crea AdE 1", acViewNormal, acEdit
    DoCmd.OpenQuery "Crea AdE 2", acViewNormal, acEdit
    DoCmd.OpenQuery "Crea AdE 3", acViewNormal, acEdit
    DoCmd.OpenQuery "Contropartita AdE", acViewNormal, acEdit
    DoCmd.OpenQuery "Codice tributo AdE 1", acViewNormal, acEdit
    DoCmd.OpenQuery "Codice tributo AdE 2", acViewNormal, acEdit
    DoCmd.OpenQuery "Codice tributo AdE 3", acViewNormal, acEdit
    DoCmd.OpenQuery "Creazione 1 Sintetico", acViewNormal, acEdit
    DoCmd.OpenQuery "Creazione 2 Sintetico", acViewNormal, acEdit
    DoCmd.OpenQuery "Creazione 3 Sintetico", acViewNormal, acEdit
    DoCmd.OpenQuery "Creazione 4 Sintetico", acViewNormal, acEdit
    DoCmd.OpenQuery "Creazione 5 Sintetico", acViewNormal, acEdit
    DoCmd.OpenQuery "Accoda Recupero 1 Sintetico", acViewNormal, acEdit
    DoCmd.OpenQuery "Accoda Recupero 2 Sintetico", acViewNormal, acEdit
    DoCmd.OpenQuery "Accoda Recupero 3  Sintetico", acViewNormal, acEdit
    DoCmd.OpenQuery "Cambio segno AdE", acViewNormal, acEdit
    DoCmd.OpenQuery "Accoda AdE 1 Totale", acViewNormal, acEdit
    DoCmd.OpenQuery "Accoda AdE 2 Totale", acViewNormal, acEdit
    DoCmd.OpenQuery "Accoda AdE 3 Totale", acViewNormal, acEdit
    DoCmd.OpenQuery "Accoda 1 Totale", acViewNormal, acEdit
    DoCmd.OpenQuery "Accoda 2 Totale", acViewNormal, acEdit
    DoCmd.OpenQuery "Accoda 3 Totale", acViewNormal, acEdit
    DoCmd.OpenQuery "Accoda 4 Totale", acViewNormal, acEdit
    DoCmd.OpenQuery "Aggiorna Dati Totale", acViewNormal, acEdit
    DoCmd.CopyObject "", "Totale_backup", acTable, "4 - Totale"
    DoCmd.CopyObject "", "Totale_backup_1", acTable, "4 - Totale"
    Beep
    MsgBox "F24 Generato CORRETTAMENTE", vbOKOnly, ""
    
Else
MsgBox "F24 non generato"
Exit Function
End If
End Function
successivamente ho fatto un'alta funzione per rinominare la tbl "Totale_backup_1", quella che serve per lo storico, con il seguente codice:
Function Rinomina()
Dim check As Date

DoCmd.Rename "Totale[check]", acTable, "Totale_backup_1"
End Function
la mia idea era quella di rinominarla con la data, ma non funziona.

Come posso risolvere?

Grazie

15 Risposte

  • Re: Rinominare tabella

    Temo che il tuo approccio sia passibile di "necessari ritocchi" diciamo che disorienta molto.

    Le query non si aprono per EDITARE, MAI...!!!!
    Le query Action non si devono proprio mai aprire, vanno eseguite in BackGround... si deve essere certi che vengano eseguite in modo SINCRONO, non diano errori ecc...!

    Anche le Tabelle non si Creano in corso, nè si rinominano... quindi, chi ha qualche base di conoscenza in più, trova tutto questo "strano".

    Partendo dalla tua premessa di "non completa conoscenza del mezzo", la considerazione immediata è che il tuo approccio sia completamente sbagliato..., magari non è così, ma sicuramente questo complica tutto, sia nella comprensione che nella possibile soluzione da suggerire.

    Io non so darti risposta sensata, in quanto le premesse sono fuorvianti.
  • Re: Rinominare tabella

    @Alex ha scritto:


    Temo che il tuo approccio sia passibile di "necessari ritocchi" diciamo che disorienta molto.

    Le query non si aprono per EDITARE, MAI...!!!!
    Le query Action non si devono proprio mai aprire, vanno eseguite in BackGround... si deve essere certi che vengano eseguite in modo SINCRONO, non diano errori ecc...!

    Anche le Tabelle non si Creano in corso, nè si rinominano... quindi, chi ha qualche base di conoscenza in più, trova tutto questo "strano".

    Partendo dalla tua premessa di "non completa conoscenza del mezzo", la considerazione immediata è che il tuo approccio sia completamente sbagliato..., magari non è così, ma sicuramente questo complica tutto, sia nella comprensione che nella possibile soluzione da suggerire.

    Io non so darti risposta sensata, in quanto le premesse sono fuorvianti.
    ed io da nabbo che pensavo avessi fatto un lavorone
    a questo punto ne approfitto e ti chiedo quale sarebbe il comando corretto per lanciare tutte le query?
  • Re: Rinominare tabella

    Siamo certi siano da lanciare...?

    Non posso darti una risposta, sarebbe banale ed inutile.
    Non so come hai strutturato il tuo lavoro, se è normalizzato e coerente con un Datanase, nè che esigenze hai...
    So di certo che chi non ha una conoscenza concreta sufficiente ma si butta su un Nuovo progetto con i Database Relazionali, 9 volte su 10 introduce metodi di lavoro e ragionamenti strutturali validi solo per EXCEL... ma che purtroppo per i Database non devono essere applicati perchè errati (vedi a titolo di esempio, la tua esigenza di NOMINARE una TABELLA con la data).
  • Re: Rinominare tabella

    Sulla scia di tutte le osservazioni sollevate da @Alex, consiglio di fare un reset mentale. Occorre:
    1. Conoscere i concetti base di Access: requisito minimo richiesto dal forum.
    2. Fare una attenta analisi preventiva del proprio progetto, quindi esplicitare tabelle, campi, relazioni.
    3. Se, dopo i primi 2 punti dovessi riscontrare ulteriori difficoltà, prova ad aprire una nuova discussione nella sezione "Progettazione database".
  • Re: Rinominare tabella

    Concordo in toto con Alex e premesso questo ti chiedo di spiegare da 0 la tua esigenza e di lasciare perdere per un momento la questione delle query che fanno cose e tabelle che sono da rinominare perchè con quasi certezza assoluta so già che non è il metodo giusto. Spiega da quale/i tabella/e si parte, che dati ci sono, cosa vuoi ottenere dalla tua elaborazione
    (es: ho una tabella contenente questo, voglio produrre una stampa che evidenzi quest'altro e alla fine storicizzi i dati appena elaborati)

    EDIT: mi sono sovrapposto con Osvaldo
  • Re: Rinominare tabella

    muttley005 ha scritto:


    Concordo in toto con Alex e premesso questo ti chiedo di spiegare da 0 la tua esigenza e di lasciare perdere per un momento la questione delle query che fanno cose e tabelle che sono da rinominare perchè con quasi certezza assoluta so già che non è il metodo giusto. Spiega da quale/i tabella/e si parte, che dati ci sono, cosa vuoi ottenere dalla tua elaborazione
    (es: ho una tabella contenente questo, voglio produrre una stampa che evidenzi quest'altro e alla fine storicizzi i dati appena elaborati)

    EDIT: mi sono sovrapposto con Osvaldo
    L'esigenza di tutto quello che ho fatto (detta in modo breve) nasce dal fatto che ricevo i dati relativi ai versamenti da effettuare da diversi uffici/sistemi. Questi versamenti poi li devo dividere tra quelli a debito e a credito (che vanno a sottrarsi a quelli a debito).
    In pratica ho 5 tabelle nelle quali inserisco gli importi debito/credito che mi arrivano dagli uffci in relazione con 2 tabelle (1 che attribuisce la "dicitura" al codice versamento, e l'altra che attribuscie la data versamento in base alla data di inserimento).
    Successivamente, attraverso tutte le query che sono nel codice sopra, raggruppo tutti i versamenti con lo stesso codice(sempre suddivisi per la tabella che li ho inseriti) e scorporo gli importi a credito da un deterinato codice per farli uscire su un'altra tabella (questo perchè vanno comunicati ad altri enti).Successivamente, inserico tutti i versamenti debito e credito nella tabella "Totale" (quella che poi vorrei rinominare) che serve per le elaborazioni delle dichiarazioni annuali.

    Non metto in dubbio che ci sia un modo più giusto e snello di quello che ho fatto, cmq nel caso sono disposto ad allegare il db
    Spero di essermi spiegato
  • Re: Rinominare tabella

    Since1900 ha scritto:


    In pratica ho 5 tabelle nelle quali inserisco gli importi debito/credito che mi arrivano dagli uffici
    Puoi fornire nomi propri di queste 5 tabelle? Anche i nomi propri dei loro campi?
  • Re: Rinominare tabella

    Credo/Temo di aver capito ...
    ... In pratica ho 5 tabelle nelle quali inserisco gli importi debito/credito che mi arrivano dagli uffici ...
    prima cosa allarmante: hai 5 tabelle per lo stesso scopo (?!)
    ... in relazione con 2 tabelle (1 che attribuisce la "dicitura" al codice versamento, e l'altra che attribuisce la data versamento in base alla data di inserimento).
    non sto capendo... la prima credo di capire sia una anagrafica e che tu vada a mettere la descrizione di un codice? nel caso non si fa se non per scopi di "restituzione" (report/export/...) la seconda mi sembra un calcolo ... come mai è tabellata?! ma forse nn sto capendo

    (andiamo avanti)
    Successivamente, attraverso tutte le query che sono nel codice sopra, raggruppo tutti i versamenti con lo stesso codice(sempre suddivisi per la tabella che li ho inseriti) e scorporo gli importi a credito da un deterinato codice per farli uscire su un'altra tabella (questo perchè vanno comunicati ad altri enti).Successivamente, inserico tutti i versamenti debito e credito nella tabella "Totale" (quella che poi vorrei rinominare) che serve per le elaborazioni delle dichiarazioni annuali.
    di solito i "movimenti" (a credito o debito) si mettono in un'unica tabella, chiaramente distinti per tipologia (segno, in/out) e attribuzione (es: per centro di costo, nel tuo caso mi pare di capire "codice") e solo per elaborazioni si aggregano e filtrano in modo da produrre un report e/o un export (es: esportazione CSV per commercialista, piuttosto che un report per la direzione)
  • Re: Rinominare tabella

    OsvaldoLaviosa ha scritto:


    Since1900 ha scritto:


    In pratica ho 5 tabelle nelle quali inserisco gli importi debito/credito che mi arrivano dagli uffici
    Puoi fornire nomi propri di queste 5 tabelle? Anche i nomi propri dei loro campi?
    Certo.
    Le tabelle si chiamano "Altro","Stipendi", "Rendite", "ISOS" e "AdE" (l'ultima in realtà si compila con gli importi a credito)

    i campi sono gli stessi per tutte le tabelle

    Causale, Codice tributo, Importo, Mese competenza
  • Re: Rinominare tabella

    Appunto ...
  • Re: Rinominare tabella

    muttley005 ha scritto:


    prima cosa allarmante: hai 5 tabelle per lo stesso scopo (?!)

    Since1900 ha scritto:


    Le tabelle si chiamano "Altro","Stipendi", "Rendite", "ISOS" e "AdE" (l'ultima in realtà si compila con gli importi a credito)

    i campi sono gli stessi per tutte le tabelle

    Causale, Codice tributo, Importo, Mese competenza

    muttley005 ha scritto:


    Appunto ...
    Avevo posto quella domanda per essere sicuro di ottenere tali risposte. Since1900, devi fermarti, fare un lungo respiro e progettare tutto da zero.
  • Re: Rinominare tabella

    prima cosa allarmante: hai 5 tabelle per lo stesso scopo (?!)
    sono i quattro sistemi dai quali ricevo i dati, si nel caso potrei aggregarli in un unica tabella
    non sto capendo... la prima credo di capire sia una anagrafica e che tu vada a mettere la descrizione di un codice? nel caso non si fa se non per scopi di "restituzione" (report/export/...) la seconda mi sembra un calcolo ... come mai è tabellata?! ma forse nn sto capendo
    si la prima serve per il report in base al codice inserisce l'anagrafica del codice, la seconda fa lo stesso solo mettendo la data di versamento, serve allo stesso scopo.
    di solito i "movimenti" (a credito o debito) si mettono in un'unica tabella, chiaramente distinti per tipologia (segno, in/out) e attribuzione (es: per centro di costo, nel tuo caso mi pare di capire "codice") e solo per elaborazioni si aggregano e filtrano in modo da produrre un report e/o un export (es: esportazione CSV per commercialista, piuttosto che un report per la direzione)
    ovviamente nelle tabelle i versamenti sono messi con il segno +/- ma ho bisogno di un report che evidenzi solo quelli negativi, mettendo in contrapposizione (fino ad arrivare a saldo 0) quelli positivi.
  • Re: Rinominare tabella

    Since1900 capisco che ti sembri eccessivamente radicale rifare tutto ma ...
    hai 2 strade:
    1) rifare tutto partendo da basi valide che ti faciliteranno la vita una volta acquisite
    2) proseguire sulla tua strada ed arrivare comunque a destinazione, perchè non è che non si può fare quello che chiedi anche partendo dalla tua struttura ... ma è un "accrocchio" ed il forum serve per ottenere aiuti tecnici.

    ad esempio il rename di una tabella non è che non si possa fare tecnicamente, anche mettendogli la data nel nome, figurati basta concatenare il nome con la data trasformata con un format ... è che non si fa in un programma.
  • Re: Rinominare tabella

    Non c'è bisogno di creare tabelle per ciò che vuoi, basta una query parametrizzata in base alle esigenze.
    Ad esempio una cosa classica è avere una form con vari campi di filtro da applicare ai dati, tu selezioni i valori di filtro / ordinamento / raggruppamento e "lui" ti presenta e/o esporta i dati come hai chiesto, ma serve conoscere un minimo di programmazione vba (poi forse anche da autocomposizione si fa qualcosa ma non ti so dire, non ne faccio uso)
Devi accedere o registrarti per scrivere nel forum
15 risposte