Newsgroup: it.comp.appl.access
Titolo: Un aiuto serio!

Scusate ma il sabato e domenica spesso lavoro per la revisione del mio
database.
Avrei bisogno di un consiglio serio!
Premessa.
Ho un database dove sono inserite varie decine di migliaia di articoli. Tali
articoli hanno, fra loro, caratteristiche totalmente diverse.Per gestire
articoli totalmente diversi, alcuni anni fai, ideai e progettai un metodo
ove succede che i "campi" delle tabelle sono formati dai records dei campi
stessi.
E' chiaro che la manipolazione dei dati al di fuori di quanto predefinito è
particolarmente complessa.
Vorrei solo un consiglio.
Ho una maschera che per mezzo di controlli vari mi filtra e individua i
records di mia necessità, in una sottomaschera collegata.  Ad ogni scelta
nei controlli corrisponde un set di records.
Dopo varie scelte non riesco più a gestire l'SQL di origine dei records.
Vorrei semplificarmi la vita ma non riesco a trovare il metodo per farlo.
Vorrei definire il set di records iniziale (creato con SQL) chiamato MioSet,
al quale è collegato
MF!MElenco.RowSource = MioSet. (fino qui tutto OK)
Successivamente vorrei applicare i vari filtri al MioSet, facendo in modo
però che MioSet sia sempre aggiornato e contenga solo ed esclusivamente i
records richiesti.
Questo metodo mi dovrà consentire di continuare a filtrare i dati
all'infinito, fino a quando non ottengo un record solo.
Vi sarei grato se poteste darmi un consiglio preciso.
Vi ringrazio molto per l'attenzione
ciao a tutto il NG
Paolo Mazzanti
ph...@mazzanti.it

 all'infinito, fino a quando non ottengo un record solo.
E' possibile?
Voglio dire, non e' un problema di programmazione, e' un problema di logica,
esiste una condizione alla quale risponde un record solo?
Puo' essere che non esista, ma se esiste, qual'e' il problema a porre quella
come condizione?
Scusami, ti aiuterei volentieri ma ci son troppe cose che non capisco, prova
a essere pratico e dire di cosa si tratta che magari aiuta.

 > stessi.
Quando parlo di articoli con caratteristiche diverse, intendo articoli che
non possono essere gestiti con gli stessi campi.
Ho articoli definibili con 3 o 4 campi ed altri che necessiterebbero di
20/30 campi.
Il problema diventa ancora più ampio per il fatto che vengono aggiunti
continuamente articoli nuovi, che richiedeno campi nuovi.
Per cui il problema in fase di ricerca è di ricreare, supponiamo una tabella
con campi che vengono passati di volta in volta prelevati dai valori dei
records stessi.
Ma fino qui è tutto OK.
Devo solo capire come posso fare a riferirmi ad un set di records che vorrei
utilizzare come rowsource.
Esempio:
MF!MElenco.RowSource = MioSet.
-scelgo nel controllo Provincia la stringa "MI"
immediatamente vorrei che la variabile oggetto "Mioset" contenesse solo i
dati dove la provincia=MI
Questo è il punto che non riesco a fare.
Ciao
Paolo Mazzanti

 Questo è il punto che non riesco a fare.
Non puoi fare una requery?

Il database è un database cresciuto dalla versione 2 di MSAccess ad oggi.
Le tabelle sono un centinaio che si intersecano fra loro.
NON ci sono dei campi prefissati!
NON ci sono tabelle contenenti Campi che rimangono vuoti!
Dimentica una logica normale di gestione di un database!
Il database gestisce un'azienda che offre consulenza. Di cosa non si sa,
ogni volta si tratta di una cosa diversa!
Per cui un giorno trovi un articolo di scarpe da tennis, di cui gestisci la
marca, il numero, il colore
e il giorno dopo gestisci la pubblicazione di una brochure di cui ti serve:
Formato chiuso, formato aperto, marca della carta, pesantezza in grammi/mq,
numero di colori in bianca, numero di colori in volta, lucidatura tipo in
bianca, lucidatura tipo in volta, plastificazione tipo, plastificazione in
bianca, plastificazione in volta, plastificazione sola copertina, rilegatura
tipo, tipo di retinatura, fascia quantità, ecc. ecc. ecc.
Per cui il database è strutturato in maniera tale che un "NON
programmatore", possa inserire in QUALSIASI momento, una qualsiasi
caratteristica del prodotto che da quel momento in poi viene "visto" come se
fosse il nostro campo.
Anch'io che l'ho ideato e realizzato, a volte faccio fatica a gestirlo;
proprio perchè nemmeno io so quali e quanti saranno i campi che ogni volta
vengono gestiti in forma dinamica.
Non ti voglio complicare la vita! Se hai altro da fare fallo pure. Troverò
il modo si risolvere il problema, magari fra qualche mese.
Ti ringrazio ugualmente per l'interessamento.
Cordialmente, ciao
Paolo Mazzanti

 Vorrei semplificarmi la vita ma non riesco a trovare il metodo per farlo.
Sei stato molto vago.
Non hai detto come filtri i dati allo stato attuale, non hai detto cosa ci
devi fare dopo, non hai spiegato bene come e' strutturata la tabella/e su
cui devi operare.
Riprova.
Sib
--
----------------------------------------------------
la mia home:
http://digilander.iol.it/syb
----------------------------------------------------
il sito comune di it.comp.database.access:
http://www.sitocomune.com
----------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente

 ha scritto nel
messaggio

Ehila', manteniamo la calma.
Se francesco ti risponde e' perche' sta cercando di capire per aiutarti,
mica per passarsi il tempo.
Non crederai di avere scoperto l'acqua calda normalizzando il tuo db,
francesco te lo aveva chiesto come lo avevi normalizzato, ma non glie lo hai
mica detto.
Prima di pensare di sapere come lo avrebbe strutturato un programmatore, hai
provato a chiederlo a un programmatore?
Tu devi spiegare come sono strutturate le tabelle su cui devi intervenire
altrimenti non ti si puo' aiutare, non e' che francesco volesse sapere cosa
ci fai, o se ci vendi Mercedes o pomodori.


 Sib
Non volevo essere nella maniera piů assoluta sortese, e mi scuso con
Francesco se lo sono sembrato.
Cercavo di essere sintetico e deciso per non annoiarVi.
Vi ricordo che NON sono un programmatore, quindi le domande sono un po' piů
banali!! E la cosa va presa un po' cosě com'č.
Ritorniamo al messaggio riginale:
    .........
    Premessa.
    ........
    Vorrei definire il set di records iniziale (creato con SQL) chiamato
MioSet,
    al quale č collegato
    MF!MElenco.RowSource = MioSet. (fino qui tutto OK)
    Successivamente vorrei applicare i vari filtri al MioSet, facendo in
modo
    perň che MioSet sia sempre aggiornato e contenga solo ed esclusivamente
i
    records richiesti.
Chiedevo solo come fare per avere un set di records, senza crearlo con SQL
perchč non ho gli elemnti per farlo.
In sostanza vorrei rifarmi al "MioSet" al quale riferire i controlli di una
maschera.
Un esempio banale per capire:
    Provincia=MI,  Filtra MioSet
    Aggiorna MioSet
ancora:
    scarpe=rosso, Filtra MioSet
    Aggiorna MioSet
e cosě di seguito all'infinito.
In pratica voglio sempre rifarmi alla mia variabile Recordset, Snapshot o
non so cosa "MioSet" che deve essere sempre aggiornata.
Ma non so come farlo, oppure le prove che ho fatto non mi hanno dato esiti
positivi.


 positivi.
Se non sai come farlo, un corso di programmazione di access in un messaggio
e' al di sopra delle mie possibilita', se mi dici che prove hai fatto e
trovo degli errori magari posso segnalarteli.
Ciao

 >     Aggiorna MioSet
     il mio "recordset" non è una query salvata con nome e l'ho chiamato
    MioSet (viene creato da una stringa SQL)
    e non so come fare per riaggiornarlo, perchè ho la necessità di
    riapplicare altri filtri in successione sempre da controlli della
maschera.
Ciao
Paolo Mazzanti

 maschera.
Lo rilanci?
Scherzi a parte, lo riesegui, tutto li', ad ogni cambiamento di una
condizione lo riesegui.
O io non capisco o tu non spieghi.
Cerca di essere chiaro per cortesia, devi filtrare su una tabella?
Non e' un problema che hai inventato tu  :-)

 O io non capisco o tu non spieghi.
Non è facile capirsi! Non ho nessun problema a portare il codice: mi basta
fare un copia/incolla.
Ma il problema è un po' più ampio, perchè come ti accennavo non essendoci
dei campi predefiniti, la stringa SQL che mi crea il recordset è un insieme
di variabili che sarei costretto a spiegare una a una.
La stringa funziona, non c'è nessun errore!
Semplicemente io non so fare e non so dove andare a vedere quello che tu
dici "lo rilanci".
Mi spiego meglio:
ho il mio recordset MIOSET
come faccio a dirgli di filtrare(ad esempio) la "provincia=MI" ?
Tutto qui!
Mi pare di capire che per te sia facile!
Ciao
Paolo Mazzanti

 come faccio a dirgli di filtrare(ad esempio) la "provincia=MI" ?
F1 ApplicaFiltro e pedalare...

 F1 ApplicaFiltro e pedalare...
Sapevo che nel mio help esisteva ApplicaFiltro, ma non mi da nessun
risultato per pedalare!


Forse la proprietà "Filter" (vedi help) è quello che cerchi. L'unico
problema sembra essere quello che il recordset che viene restituito (quello
filtrato) lo devi utilizzare come un nuovo recordset.
Es. preso dall'help Access'97
'----------------
Function FiltraCampo(rstTemp As Recordset, strCampo As String, strFiltro As
String) As Recordset
 ' Imposta un filtro su un oggetto Recordset
' specificato, quindi apre un nuovo oggetto Recordset.
 rstTemp.Filter = strCampo & " = '" & strFiltro & "'"
 Set FiltraCampo = rstTemp.OpenRecordset
End Function
Nota   Per visualizzare i risultati del filtro di rstOrdini, è necessario
impostare la relativa proprietà Filter, quindi aprire un secondo oggetto
Recordset basato su rstOrdini.
'----------------
Ciao.
--
- - - - - - - - - - - - - - -
Sergio MAZZA
- - - - - - - - - - - - - - -

 - - - - - - - - - - - - - - -
Ti ringrazio molto, era quello che cercavo. Proverò ad adattarlo alla mia
situazione.
La mia difficoltà, oltre alla problematica di programmazione solita, è
aumentata dal fatto che in Access XP l'help sembra essere di "un altro
programma". Non si trova più niente di quello che era!
A proposito se una volesse mettersi sul desktop l'help di Access 97, è
possibile farlo?
Grazie ancora, grazie
Ciao
Paolo Mazzanti


Ciao.
--


 risultato per pedalare!
Cosa vuol dire "esisteva"?

 (
www.sitocomune.com
)...
Ne ho già comperati diversi, ed ho guardato anche nel sito le recensioni dei
libri.
Ma sai a volte è anche un'abitudine che uno prende, e prima di rimuovere le
abitudine ce ne vuole. come a tutti noi.
Grazie ancora
Ciao
Paolo Mazzanti