Risultati da 1 a 2 di 2

Discussione: Esportazione problematica tabella access in csv.

  1. #1
    Account disattivato
    Data Registrazione
    Sep 2009
    Messaggi
    1

    Esportazione problematica tabella access in csv.

    Salve a tutti,
    ho necessità di esportare una tabella creata con una query in un formato .csv ma il procedimento che adotto,pur se banale, non mi restituisce quanto mi aspetterei di ottenere.
    Ho fatto diversi tentativi ed ora non ho più idea di cosa ancora tentare,confido nel vostro aiuto per risolvere questo problema.
    Cerco di spiegare il tutto per bene.
    La query che faccio girare (make table query) crea una tabella che ha come prime due colonne il campo Iterazione e Periodo che funzionano come segue
    Iterazione Periodo
    1 0
    1 1
    1 2
    .. ..
    1 360
    2 0
    2 1
    2 2
    .. ..
    2 360
    3 0
    3 1
    .. ..

    e così via fino a

    1000 360

    Ora,si tratta evidentemente di un db di 361000 righe con 35 colonne totali.
    E' mia necessità che la tabella esportata mantenga l'ordinamente riportato nelle prime due colonne (ed ovviamente le celle associate a queste nelle altre).
    La tabella creata dalla query mantiene l'ordinamento,tuttavia una volta esportata in csv (per farlo uso il procedimento :tasto destro- sulla tabella in access ->esporta --> etc. ) perde l'ordinamento e così quando vado ad aprire il file csv,importandolo nuovamente in access,mi trovo ad avere per le prime due colonne,un ordinamento che non è più quello della tavola che ho creato. Così mi capita di avere ad esempio:
    Iterazione Periodo
    430 33
    430 34
    1 25
    1 26
    etc etc

    Riporto di seguito il tipo di quey che vado ad utilizzare:
    SELECT [Database].ID, [Database].["iterazione"] AS iterazione, [Database].["periodo"] AS periodo, [Database].["Value_a"] AS Value_b, [Database].["VALUE_C"], 1 AS 0y, [Database].["1yr"] AS 1y, [Database].[“2yr"] AS 2y, [Database].[“3yr"] AS 3y, [Database].[“4yr"] AS 4y, [Database].[“5yr"] AS 5y, [Database].[“6yr"] AS 6y, [Database].[“7yr"] AS 7y, [Database].[“8yr"] AS 8y, [Database].[“9yr"] AS 9y, [Database].[“10yr"] AS 10y, [Database].[“11yr"] AS 11y, [Database].[“12yr"] AS 12y, [Database].[“13yr"] AS 13y, [Database].[“14yr"] AS 14y, [Database].[“15yr"] AS 15y, [Database].[“16yr"] AS 16y, [Database].[“17yr"] AS 17y, [Database].[“18yr"] AS 18y, [Database].[“19yr"] AS 19y, [Database].[“20yr"] AS 20y, [Database].[“21yr"] AS 21y, [Database].[“22yr"] AS 22y, [Database].[“23yr"] AS 23y, [Database].[“24yr"] AS 24y, [Database].[“25yr"] AS 25y, [Database].[“26yr"] AS 26y, [Database].[“27yr"] AS 27y, [Database].[“28yr"] AS 28y, [Database].[“29yr"] AS 29y, [Database].[“30yr"] AS 30y, (1+[Database]!["VALUE1"]/100)^(1/12)-1 AS value2 INTO [TAVOLA 1000]
    FROM [Database]
    WHERE ((([Database].["periodo"])<361))
    ORDER BY [Database].ID;


    La procedura in sè mi sembra banale,tuttavia non riesco a venirne a capo.Qualcuno avrebbe qualche consiglio?

    Grazie infinte per ogni eventuale contributo.

  2. #2
    Borg L'avatar di y2ksw
    Data Registrazione
    Nov 2004
    Località
    Bologna, Italia
    Età
    64
    Messaggi
    9,035
    Per quanto vedo, l'ordinamento è per ID e quindi non è mai ordinato come vuoi, a meno che ID non sia un campo contatore che parte da 1 nel momento che inserisci i record nell'ordine desiderato.

    Cerca prima di semplificare e debuggare la query. I nomi dei campi non vanno messo fra doppie virgolette. Ti conviene inoltre lavorare a tappe, i trasferimenti con calcoli sono difficili da gestire.

    INSERT nomicampi1 INTO destinazione SELECT nomicampi2 FROM sorgente ORDER BY iterazione, periodo

    Dove:
    nomecampi1 è la lista dei campi in destinazione
    nomecampi2 è la lista dei campi in sorgente

    Ad esempio:

    INSERT [1y], [2y] INTO destinazione SELECT [1yr], [2yr] FROM sorgente ORDER BY iterazione, periodo

    In ogni caso eviterei usare nomi di campi che richiedono [], perché nella norma sono problematici. In più, dati in parallelo non si mettono nel database in un'unica tabella. Si crea una colonna aggiuntiva dove si indica l'anno. La tabella risultante ha quindi una colonna dell'anno e una che contiene i dati. E' più lunga ma di gran misura più veloce e flessibile. La struttura parallela è lenta e inaffidabile, oltre a presentare più svariati problemi di manipolazione dati.
    Giovanni
    http://www.trimelli.com/

    Per favore non mandatemi PM, ma scrivete sul forum. Vi sarà risposto prima.

Discussioni Simili

  1. Access e Database forum
    Di Frankysdc nel forum Agorà di vBulletin
    Risposte: 0
    Ultimo Messaggio: 27-01-2009, 11:20
  2. Manipolare i Campi in Access
    Di pippo2008 nel forum Agorà di vBulletin
    Risposte: 6
    Ultimo Messaggio: 24-05-2008, 20:32
  3. Access MySQL
    Di GuidoM nel forum Agorà di vBulletin
    Risposte: 5
    Ultimo Messaggio: 19-06-2007, 09:43
  4. Problemi con PHP e ACCESS
    Di paopie nel forum Agorà di vBulletin
    Risposte: 4
    Ultimo Messaggio: 14-04-2007, 02:47
  5. Mysql e Access
    Di rupert.giles nel forum Agorà di vBulletin
    Risposte: 1
    Ultimo Messaggio: 09-02-2007, 10:17

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •