Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Esportare dati da Access in file txt

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Esportare dati da Access in file txt

Postdi fabietto81 » 10/10/12 21:11

Ciao a tutti Ragazzi...vi spiego la mia necessita':

in un database Access, chiamato NEGOZIO.MDB, ho una tabella (TArticoli) con dentro una serie di prodotti.
Dovrei:
- Selezionare tutti i prodotti da NEGOZIO.MDB che hanno NomeCategoria=FRUTTA
- A quelli selezionati dovrei:
1. Variare il CodArticolo con codice da 4 a 3 cifre (es: 0004 diventa 004)
2. Troncare la Desc (descrizione prodotto) a 12 caratteri (es: PESCHE GIALLE diventa PESCHE GIALL)
3. Variare il PrezzoNetto1 togliendo la virgola e il simbolo dell'euro (es: € 1,30 diventa 000130)

- Il risultato dovrebbe essere esportato in un file chiamato PLU.txt con il seguente formato (come da figura) a spazi fissi:
Primi tre spazi -> CodArticolo (a 3 cifre)
Dal 4 al 15 -> Desc (troncata)
Dal 16 al 21 -> PrezzoNetto1 (ridotto a sei cifre)
Il 22esimo -> 1
Dal 23 al 35 -> 13 zeri di fila

Il risultato pertanto e' il file PLU.txt, come da figura. E' fattibile? Mi potete dare una mano? Grazie mille a chi potra' aiutarmi!!!!

Immagine
fabietto81
Utente Junior
 
Post: 11
Iscritto il: 10/10/12 20:00

Sponsor
 

Re: Esportare dati da Access in file txt

Postdi Flash30005 » 10/10/12 23:47

Ciao Fabietto81 e benvenuto nel Forum

Si può fare con una macro all'interno del Db ma dovresti inviare il tuo Db perché qualsiasi cosa faccia poi sarà ben difficile adattarlo alle tue esigenze.
Occorre pertanto il fiel originale con tutti i nomi campo etc etc

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Esportare dati da Access in file txt

Postdi fabietto81 » 11/10/12 08:35

Innanzitutto ti ringrazio per la risposta.
Allego pertanto il file del database completo che si chiama NEGOZIO.eft (è realizzato con Access97 ma si riesce ad aprire anche con le altre versioni).
Ecco il link dal quale poterlo scaricare:

http://www.morinasnc.it/download/NEGOZIO.eft

Grazie ancora!!!
fabietto81
Utente Junior
 
Post: 11
Iscritto il: 10/10/12 20:00

Re: Esportare dati da Access in file txt

Postdi Flash30005 » 11/10/12 11:41

Sono riuscito ad importare la tabella articoli in un database per access 2003
e ora potrei lavorarci ma...
se non avrai la possibilità di aprire un db in questo formato penso che tutto il lavoro andrebbe perso
quindi attendo una risposta
(il tuo database non è da me utilizzabile)

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Esportare dati da Access in file txt

Postdi fabietto81 » 11/10/12 12:35

Rieccomi...il file .eft e' creato da un sw gestionale, per il quale probabilmente hanno utilizzato Access97; io sul mio pc lo sto aprendo con Access2003 (infatti ogni volta che lo apro mi dice che c'e' la possibilita' di convertirlo nella nuova versione).

Se dovesse servire ho creato la copia del db in formato Access2003 ed e' disponibile qui:
http://www.morinasnc.it/download/NEGOZIO.mdb

Grazie ancora!!!
fabietto81
Utente Junior
 
Post: 11
Iscritto il: 10/10/12 20:00

Re: Esportare dati da Access in file txt

Postdi wallace&gromit » 11/10/12 13:18

come alternativa alla macro prova a creare una nuova query con un unico campo strutturato così:
Codice: Seleziona tutto
Unisci: Right([CodArticolo];3) & Left([Desc];11) & Left("           ";11-Len(Left([Desc];11))) & Right("000000";6-Len([PrezzoNetto1]*100)) & [PrezzoNetto1]*100 & "10000000000000"
l'ho testata su un mio file ma non ho ancora potuto scaricare il tuo per provare.
Poi dovrai copiare e incollare tutto il risultato della query in blocco note e avrai il file txt.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21

Re: Esportare dati da Access in file txt

Postdi fabietto81 » 11/10/12 19:27

Grazie Wallace, il problema e' che questa esportazione la devo far fare ad un cliente quotidianamente :eeh: e devo cercare di semplificargliela il piu' possibile.
Con una macro dovrebbe essere un po' meno macchinoso il procedimento, vero?
fabietto81
Utente Junior
 
Post: 11
Iscritto il: 10/10/12 20:00

Re: Esportare dati da Access in file txt

Postdi wallace&gromit » 11/10/12 20:57

il VBA per access è la mia prossima frontiera... sicuramente ci arriverò presto o tardi.
Intanto che aspettiamo cosa prepara Flash puoi però provare a vedere se ti soddisfa il risultato che ottieni usando l'icona "output sul Blocco note" che trovi in "personalizza/strumenti".
Lo stesso risultato, con in più la definizione del nome del file e del percorso, lo si può ottenere con il semplice generatore di macro
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21

Re: Esportare dati da Access in file txt

Postdi Flash30005 » 12/10/12 01:56

Inutile pubblicare il solo codice perché è gestito da una maschera con casella combinata e pulsante
quindi Allego il File

Non ho capito alcune modifiche da fare ai campi (ho sistemato codice articolo, descrizione e prezzo come da te richiesto)
per gli altri campi usando gli stessi esempi che trovi all'interno potrai arrivarci da solo (codice intuitivo).

Potrai scegliere la categoria tramite combox e otterrai un file testo con separatore ; (punto e virgola)
se vuoi cambiare il separatore non devi far altro che modificare la variabile
"Tuastringa" ora composta da (concatenata)
Codice: Seleziona tutto
Tuastringa = C01 & ";" & C02 & ";" & C03 & ";" & C04 & ";" & C05 & ";" & C06 & .......


al posto del punto e virgola potrai mettere uno spazio o una virgola o, come sembra dal tuo esempio, nulla
in quest'ultimo caso avrai una strina così composta
Codice: Seleziona tutto
Tuastringa = C01 & C02 & C03 & C04 & C05 & C06 & .......


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Esportare dati da Access in file txt

Postdi fabietto81 » 12/10/12 21:18

Beh... :o che dire...Flash sei davvero un grande! :P

Ora provo il tutto e provo ad apportare le varie modifiche, ma direi che sei stato veramente gentile, grazie mille ancora.
fabietto81
Utente Junior
 
Post: 11
Iscritto il: 10/10/12 20:00

Re: Esportare dati da Access in file txt

Postdi fabietto81 » 12/10/12 22:26

Flash... ho fatto tutte le modifiche per il salvataggio del file TXT e funziona tutto alla grande.
L'unica cosa che non sono riuscito a fare e' creare il txt con il campo descrizione fisso a 12 caratteri.
Guarda l'immagine qui sotto, dovrebbe farti capire come e' ora e come dovrebbe essere...credo sia una cavolata, ma non riesco a capire cosa modificare. Me lo daresti solo + questo piccolo aiuto?

Immagine


Grazie 1000!!!
fabietto81
Utente Junior
 
Post: 11
Iscritto il: 10/10/12 20:00

Re: Esportare dati da Access in file txt

Postdi Flash30005 » 13/10/12 00:50

Beh potrei fare meglio se mi dici quali sono i campi da normalizzare
comunque visto che te la cavi da solo ti dò solo un input
prendi in considerazione la variabile C02 realtivo a "Desc" (vedi elenco Do Until),
Codice: Seleziona tutto
C02 = Left(Tabella("Desc"), 12) '<<<< esistente
Spazi = ""                                              '<<<<< aggiungere
For LL = 1 To 12 - Len(C02)                   '<<<< aggiungere
Spazi = Spazi & " "                                '<<<<< aggiungere
Next LL                                               '<<<<< aggiungere
C02 = C02 & Spazi                                '<<<<< aggiungere

se ne hai altre potrai ripetere la routine anche se opterei, in caso di più variabili da normalizzare, con un ciclo For Next riferito a vettori

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Esportare dati da Access in file txt

Postdi fabietto81 » 13/10/12 10:00

Molto bene! :lol: Sono riuscito a "normalizzare" il file TXT che viene creato grazie alla tua routine.

Ora la domanda e': :?: sarebbe possibile far eseguire tutte le operazioni che sono state fatte fino ad ora su un file MDB esterno?
Esempio:
- Lancio la maschera
- Seleziono il file MDB che contiene il DB che voglio trasformare in TXT (quindi database esterno che magari trovo in un'altra cartella)
- Clicco sul PULSANTE e mi crea il file nella stessa cartella

Grazie ancora!
fabietto81
Utente Junior
 
Post: 11
Iscritto il: 10/10/12 20:00

Re: Esportare dati da Access in file txt

Postdi Flash30005 » 14/10/12 09:21

Cosa intendi per "Seleziono il file .mdb"?
Non è sempre lo stesso file e/o hai sempre percorsi diversi?
Se il file ha sempre lo stesso nome e si trova in un percorso prestabilito lo puoi fare in maniera molto semplice:
File1: Db con la tabella dati
File2: Db con la macro e maschera e senza tabella propria
apri il file2 e colleghi la tabella (con importa) al file1

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Esportare dati da Access in file txt

Postdi fabietto81 » 14/10/12 19:45

Ciao Flash...
ci ho lavorato un po' oggi e ci sono riuscito semplicemente collegando le tabelle tra loro...ora direi che funziona tutto alla perfezione.
Dato che il file lavorera' con circa 3000 record, per dare riscontro al cliente che lo usera', mi piacerebbe mettere un contatore visivo nella maschera che aumenti di uno ad ogni record migrato (record 1 di 3000...2 di 3000 3 di 3000...) e alla fine di tutto dia un messaggio tipo 'MIGRAZIONE CONCLUSA CON SUCCESSO'. E' possibile farlo secondo te?

Grazie ancora!
fabietto81
Utente Junior
 
Post: 11
Iscritto il: 10/10/12 20:00

Re: Esportare dati da Access in file txt

Postdi Flash30005 » 14/10/12 21:49

:roll:

Il dubbio non è per la realizzazione del contatore ma che, per 3000 record, non riusciresti nemmeno a leggere i numeri
Per il messaggio alla fine sono d'accordo quindi vai nel codice del comando
e inserisci la riga evidenziata prima dell'End sub della macro
Codice: Seleziona tutto
Tabella.Close  '<<<<<<<<< esistente
db.Close                   '<<<<<<<<< esistente
MsgBox "Tranfer avvenuto con successo"  '<<<<<<<<<<<<<<<< Aggiungere
End Sub  '<<<<<<<<<<<<<<<<< esistente, fine macro


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "Esportare dati da Access in file txt":


Chi c’è in linea

Visitano il forum: Nessuno e 19 ospiti