Newsgroup: it.comp.appl.access
Titolo: Maschera Access2007, 7 griglie, DB Sql 2005

Ciao a tutti,
sto realizzando un gestionale in access con tabelle linkate ad sql 2005.
Tutto funziona egregiamente, tranne in una maschera in cui forse mi sono 
spinto un po' troppo.
Tale maschera gestisce gli ordini clienti, possiede 7 schede, ognuna 
delle quali contiene una sottomaschera che linka a tabelle.
La tabella principale contiene 26.000 records.
Per ottimizzare il tutto, ho slegato la query di ogni griglia e, 
manualmente, ad ogni spostamento del record principale, in base alla 
scheda sulla quale sono posizionato imposto la query della 
sottomaschera. Le query sono ottimizzate, ognuna di essa utilizza un 
indice.
Ho utilizzato questa modalità, per il semplice fatto che "credevo", 
qualora avessi utilizzato la tecnica del LinkMaster, che access ad ogni 
spostamento andasse a reperire porzione delle tabelle collegate alla 
master, anche se in realtà non mi occorrevano in quanto la scheda è 
attiva una alla volta.
Dulcis in fundo..Tutto estremamente lento..
Ora ho provato a prendere la maschera di base, inserisco 7 sottomaschere 
che NON puntano a nulla (VUOTE), quindi oggetti non associati, e lo 
spostamento nella maschera principale è lentissimo..Come mai secondo 
voi? Cosa deve memorizzare Access dietro le quinte che mi sfugge? Forse 
è un baco?
Anche cancellando il codice, VBA, rendendo invisibili le sottomaschere, 
ed addirittura il contenitore di schede, rimane tutto lento..
Sembrerebbe che con più di 2/3 sottomaschere Access vada in crisi..
Ovviamente ho la SP1 di access..
Grazie
oXon

"oXon" > Ciao a tutti,

Può darsi siano bugs specifici di Access 2007, certamente con le versioni 
precedenti non esistono problemi di questo tipo.
Io in alcuni test avevo rilevato che le forms diventavano lentissime in 
modalità "tradizionale", mentre se si navigava con la nuova modalità "a 
schede" (o come diavolo l'hanno chiamata) tra le forms del DB tutto andava a 
scheggia.
Il comportamento che riferisci si verifica sia in modalità AccDB che AccDE?
Ciao: Oscar

 >
 > Può darsi siano bugs specifici di Access 2007, certamente con le 
versioni
 > precedenti non esistono problemi di questo tipo.
 > Io in alcuni test avevo rilevato che le forms diventavano lentissime in
 > modalità "tradizionale", mentre se si navigava con la nuova modalità "a
 > schede" (o come diavolo l'hanno chiamata) tra le forms del DB tutto 
andava a
 > scheggia.
 >
 > Il comportamento che riferisci si verifica sia in modalità AccDB che 
AccDE?
Purtroppo si..
Ho notato che riducendo la Tabella principale (circa 3.000 records) lo 
spostamento dei records diventa accettabile, tranne la chiusura della 
maschera (2 secondi).
Ovviamente questo implica una gestione differente dei dati, il che vuol 
dire tempo (e denaro) perso.
Spero che qualcuno sia sia già imbattuto in un problema simile..
Grazie della risposta
oXon


Però non è chiara la causa scatenante, se scrivi di rilevare problemi anche 
con la form disassociata da  tutto.
In tal caso il problema non sarebbe legato ai campi master-child.
Del resto puoi legare le subform alla maschera principale in altro modo: 
impostando un criterio di filtro 
(IDSottoTabella=Forms!FrmPadre!ChiavePrimaria) nell'origine SQL della 
sottomaschera.
Anche l'idea che i problemi nascano all'aumentare delle subform non 
convince, dato che le origini dati le assegni solo su cambio scheda (e 
resetterai le altre). Quindi ci sarà sempre una sola SubForm connessa per 
volta...
Il tuo applicativo è convertito da versioni precedenti di Access?
Ciao: Oscar 

Oscar Manfredini ha scritto:
 > "oXon" <
 >
 >> Purtroppo si..
 >> Ho notato che riducendo la Tabella principale (circa 3.000 records) lo
 >> spostamento dei records diventa accettabile, tranne la chiusura della
 >> maschera (2 secondi).
 >> Ovviamente questo implica una gestione differente dei dati, il che vuol
 >> dire tempo (e denaro) perso.
 >> Spero che qualcuno sia sia già imbattuto in un problema simile..
 >> Grazie della risposta
 >>
 >
 > Però non è chiara la causa scatenante, se scrivi di rilevare problemi 
anche
 > con la form disassociata da  tutto.
Concordo con te che non sia chiaro..Infatti ho perso 3 ore e non ho 
capito il motivo..Ho parecchie maschere che lavorano con 2/3 schede e 
vanno benissimo..Anche con 25000 records..
 > In tal caso il problema non sarebbe legato ai campi master-child.
 > Del resto puoi legare le subform alla maschera principale in altro modo:
 > impostando un criterio di filtro
 > (IDSottoTabella=Forms!FrmPadre!ChiavePrimaria) nell'origine SQL della
 > sottomaschera.
Si, posso farlo, solo che preferisco fare tutto a mano da codice VBA, 
così ho il controllo diretto..
 > Anche l'idea che i problemi nascano all'aumentare delle subform non
 > convince, dato che le origini dati le assegni solo su cambio scheda (e
 > resetterai le altre). Quindi ci sarà sempre una sola SubForm connessa 
per
 > volta...
Concordo che non convince, ho cercato di ottimizzare tutto e mi trovo 
con il risultato opposto..Con più di 2/3 sottomaschere vuote e una 20 di 
campi della master diventa tutto lento..
Dimenticavo, le tabelle SQL hanno un campo Timestamp altrimenti non 
funzionava nulla..
 > Il tuo applicativo è convertito da versioni precedenti di Access?
No, scritto da zero in A2007
Ciao
oXon

 funzionava nulla..
Può darsi che ci sia una specifica subform che da noie?
Hai provato ad aggiungere una Sub alla volta per capire come si comporta 
l'applicazione?
Le quieries eseguite in maniera indipendente dalle Form vengono risolte lato 
Server o c'è qualcosa da correggere?
Tutte domande che ti faccio per tentare il tentabile  ;-)
Ciao: Oscar

 Tutte domande che ti faccio per tentare il tentabile  ;-)
Certo..E ti ringrazio..
Ho fatto questa prova: Maschera autocomposta, una 20 di campi per 25.000 
record linkati a SQL...E' una scheggia.
Aggiungo 5/7 oggetti sottomaschera, disassociati..E' un nonno..
Mi sa che il problema è di Access...Sai a chi posso rivolgermi (tipo 
qualche supporto M$)?
Grazie
oXon

 qualche supporto M$)?
Sul sito M$ ci saranno riferimenti ufficiali.
Ma secondo me dovresti postare (ma forse trovi anche un'e-mail) sul blog del 
prodotto:
http://blogs.msdn.com/access/
E' un contatto diretto col personale M$ (e stanno testando il SP2)...
Ciao: Oscar 

 Aggiungo 5/7 oggetti sottomaschera, disassociati..E' un nonno..
Scusa, è sufficiente inserire la cornice oggetto SubForm (senza alcun tipo 
d'associazione) per notare il rallentamento?
Ciao: Oscar 

Oscar Manfredini ha scritto:

Si..
Infatti è per questo che sono giunto alla conclusione che sia un baco..
Grazie Tante
oXon

oXon ha scritto:

Posto nel caso qualcuno avesse il mio stesso problema.
Access 2007 SP1 diventa lentissimo se si inseriscono più di 3 oggetti 
sottomaschera nella stessa form e la tabella master possiede più di 15 
campi.
Io ho risolto utilizzando un'unico oggetto (generico) di tipo 
sottomaschera posizionato sopra un'oggetto schede, quando l'operatore 
cambia scheda allora cambio a run-time la sottomaschera associata 
all'oggetto generico. Così facendo è una scheggia.
Ciao
oXon

 all'oggetto generico. Così facendo è una scheggia.
Comunque posta il problema sull'area Access, è importante che venga corretto 
(anche perchè potrebbe avere conseguenze collaterali).
Ciao: Oscar