Newsgroup: it.comp.appl.access
Titolo: ciclare e zippare------------------

salve a tutti... Vi sottopongo veloce veloce il mio problemino:
ho una tabella che contiene dati relativi a più venditori, ciascuno
identificato da un codice numerico.
da questa tabella ho la necessità di ottenere tanti dbase per quanti sono i
venditori (una decina).
Per questo ho impostato una semplice query di creazione tabella avente come
origine dati la tabella principale ed ho impostato nei criteri il codice del
venditore.
Ma in questo modo sono costretto ogni volta che ripeto la procedura a
modificare sia il codice del venditore (2, 3, ecc) che il nome della tabella
di destinazione (es vend1, vend2, ecc).
ovviamente il problema rimane anche se compilo un codice nel quale
ricopiol'istruzione sql della query. In questo caso potrei risolverlo
riscrivendo tante volte quante sono i venditori...ma non c'è modo di ciclare
il tutto?
non ho però idea di come si riscriva in codice una query di creazione
tabella senza usare il codice sql che leggo direttamente nella qauery.
risolto questo per me enorme problema, eccone un altro.
i vari database così formati devono essere esportati in altrettanti file di
excel (e fin qui non ho problemi), ma questi file dovrebbero essere
compressi con winzip e collocati in una certa directory..........
lo so che voglio troppo, ma non c'è un modo per automatizzare la procedura
facendo in modo che access istruisca winzip su quali file comprimere e in
quale unità?
Scusate se ho esagerato e sempre grazie.
Antonio

 risolto questo per me enorme problema, eccone un altro.
Per l'altro problema, non so che dirti. In merito al primo, invece ....  :
Mai sentito parlare di variabili e di concatenazione di stringhe ?
:-)
Dunque, a grandi linee l'idea e' questa :
Creati un recordset che abbia come fonte di dati una SELECT basata sul campo
che identifica il codice del venditore con il predicato DISTINCT per
escludere automaticamente tutti i codici ripetuti. A questo punto, il tuo
recordset conterra' l'elenco di tutti i venditori che hanno effettuato delle
vendite.
Utilizzando il metodo RecordCount sul recordset che hai creato, otterai il
totale dei venditori e, quindi, il numero di database che dovrai creare.
Metti questo valore in una variabile.
Ora, puoi impostare un ciclo che si ripetera' tante volte quanto il valore
contenuto in quella variabile.
Metti in una variabile stringa la query sql che si occupera' di creare i
database preoccupandoti, pero', di aggiungere al nome della tabella che
assegnerai anche il valore della variabile contatore del ciclo oppure, se
preferisci, il valore del campo "codice venditore". Per fare questo, usa il
metodo della concatenazione di stringa "&".
In questo modo , ogni nuova tabella avra' un nome diverso  : Venditore 1,
Venditore 2, Venditore 3 etc.etc...
Se ho capito bene il tuo problema, credo che potrai risolvera la cosa in
questo modo.
Ciao
Aldo

 quale unità?
Intanto di direi di usare PowerArchiver che è gratis (ed è identico a winzip
:-).
Dal sito ti scarichi PowerArchiver ed il modulo per avere i comandi da linea
di comando.
E poi vai di Shell("powerarc  *.xls  xlsCompressi.zip") e comandi simili.
Dovrai guardarti la documentazione pere vedere quali sono i parametri da
usare
ciao, max

 ha scritto nel messaggio
news:35k57.1130$VO5....@news.infostrada.it...

Se i venditori sono, come numero, sempre lo stesso; potresti crearti già i
database con la tabella e allegarti tutte le tabelle risultanti nel tuo
database principale. Con un DoCmd.RunSql esegui l'esportazioni dei dati per
ogni tabella per ogni venditore.
Es.
'------------
Dim MaxVenditori as Integer, tabVenditore as String, numeroVenditore as
Integer
MaxVenditori = 6
tabVenditore = ""
For numeroVenditore = 1 to MaxVenditori
    tabVenditore = "vend" & a
    DoCmd.RunSql "Insert Into " & tabVenditore & " Select * From
tabellaDeiVenditori Where CodiceVenditore=" & numeroVenditore & ";"
Next
'------------
Per zippare gli mdb dei venditori puoi utilizzare il suggerimento preso dal
sito comune: 
http://www.sitocomune.com/general/general016.htm
Ciao.