Newsgroup: it.comp.appl.access
Titolo: Problemi con inserimento dati in Access2000

Buonasera a tutti,
sto realizzando in Access2000 un database che crei delle etichette
stampabili da esporre al pubblico. Nel database ho una tabella generale
"Articoli" contenente l'anagrafica degli articoli da esporre: codice
identificativo; marca; modello; prezzo; descrizione; tipologia
dell'articolo; (altre ancora).
In base alla tipologia dell'articolo, seleziono una tabella specifica per
ogni tipologia, esempio:
per un articolo di tipologia LAVATRICI, la tabella associata si chiama
appunto LAVATRICI.
Tale tabella può contenere una descrizione dettagliata dell'oggetto scelto
(i campi sono stati scelti in modo 'universale').
Una lavatrice sarà caratterizzata da campi (per es.):
[codiceArticolo] [Marca] [Modello] [Colore] [Potenza] [Capacità di lavaggio]
ecc. ecc. [Prezzo]
Ora, i dati vengono inseriti tramite apposite maschere. Se l'etichetta
risulta nuova (ovvero non presente nella tabella associata) allora viene
creata una nuova etichetta, se invece già esiste dò la possibilità di
modificarla. La compilazione della nuova o la modifica avvengono tramite la
stessa maschera, aperta mediante
doCmd.openForm (nomemaschera),,(filtro sul codice dell'articolo), (modalità
d'apertura della maschera)
dove con modalità d'apertura effettuo uno switch tra acEditMode oppure
stabilisco la creazione di un nuovo record. La maschera è impostata sempre e
solamente sul record corrente.
E qui arriva il problema: dopo un certo numero di etichette create,
inspiegabilmente, alla creazione o modifica dell'ennesima etichetta, il
database non memorizza più nulla, ed in più mi  si dice che cancelli anche
le etichette esistenti.
Siccome sono sicuro che il codice aggiuntivo che ho scritto in VBA non
cancella minimamente le etichette, a cosa è dovuta questa perdita di dati ?
E' risolvibile? Come posso accorgermi se il database sta funzionando in
maniera scorretta dopo una certa etichetta?
Il DB è stato provato su sistemi Windows ME Millennium Edition e XP (dove vi
sono errori), mentre su Windows95-98 non sembrano risentirne.
E' un probabile baco di Access? Dove posso trovare documentazione su simili
bachi?
Grazie per l'attenzione e scusate la prolissità,
Gabriele

 ha scritto nel messaggio
news:2J2fa.38993$Lr4.1...@twister2.libero.it...

Ma il database lo hai fatto tu o stai usando una demo di un programma che ti
è stato fornita o hai in qualche maniera scaricata da internet??
Io sono propenso a credere che sei nella seconda ipotesi e che il database
di demo non permette di registrare in tabella più di un certo numero di
articoli raggiunto il quale o COMPRI il database non di demo oppure
t'attacchi ... alle etichette. ;-)
Naturalmente è possibile che io sia un imperdonabile malizioso e faccio,
come spesso mi capita, ipotesi false e tendenziose.
Se fosse così, me ne scuso.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 wrote in message
QFnfa.42092$Lr4.1...@twister2.libero.it...


 ha scritto nel messaggio
news:9nofa.40677$7y3.1...@twister1.libero.it...

[CUT]
Non riesco a spiegarmi razionalmente da cosa dipenda il tuo problema.
Da quasi tre anni uso Access 97 in ambiente Windows ME e l'unica cosa che
posso dirti che non ho mai avuto con alcun database i problemi che tu
lamenti.


Il problema è che non riesco a spiegarmelo nemmeno io...sto cominciando a
pensare che cambiando la modalità di inserimento dati nella maschera tramite
codice VBA ogni tanto il PC schizzi di matto... Anche supposto che un filtro
su record non venga sbloccato, non si spiega perchè invece di aggingere un
record, me ne vada a modificare e/o cancellare uno in prima posizione...
Mah! Qualcuno ha  idee sul perchè di questo comportamento o devo rassegnarmi
ad accettarlo ??? :-(
Grazie nuovamente,
Gabriele


Ciao
--
   Alberto
No alla guerra


L'origine record della maschera di un'etichetta è la sua tabella di
riferimento. Se l'etichetta non c'è già, allora aggiungo un record alla
tabella; se l'etichetta già esiste, la posso modificare.
Verifico l'esistenza dell'etichetta mediante un codice (funzione) scritto in
VB: primo, seleziono il codice etichetta da una maschera che mi mostra tutti
gli articoli per codice e per qualche campo interessante(in visualizzazione
Maschere continue); quindi mediante la funzione di cui sopra verifico se
nella tabella associata all'articolo (la tabella associata la ricavo da una
apposita tabella, che mi 'decifra' il codice e mi restituisce il settore di
appartenenza, es. lavatrici piuttosto che televisori) - dicevo - verifico se
nella tabella associata trovo un record il cui codice articolo corrisponda a
quello da me selezionato (nel codice, credo di avere utilizzato il metodo
Seek su un oggetto recordset opportuno). Quindi, se non trovo l'etichetta,
apro la maschera di compilazione di quell'etichetta in modalità
PermettiAggiuntaDati (via codice)- e fermando la compilazione del record
sempre sul record corrente - evitando così di creare più di un record nuovo.
Altrimenti apro la maschera di compilazione senza possibilità di aggiunta
dati (via codice) bloccandomi ovviamente solo sul record filtrato.
Detto questo, il problema - a quanto mi dicono - è capitato, e non riesco a
spiegarmi il perchè, visto che non capisco perchè debba cominciare a
cancellare da un certo record e quando ha voglia lui... Oggi però, girando
sulla rete alla ricerca di info, in un sito francese ho trovato una simil
documentazione su un bug di Access97 simile al mio problema: dopo un certo
numero di records aggiunti, pare che il Bookmark decida di piazzarsi al
primo record, modificando una chiave primaria ( o cmq un campo particolare)
ed inserendovi il valore del campo dell'ultimo record aggiunto. Successive
aggiunte vanno così a sovrascirvere i records dal primo in giù. Ho trovato
anche una sfilza di soluzioni, ma prima vorrei essere sicuro che il mio
problema sia effettivamente un bug - va bene fidarsi del codice, ma mai
troppo.
Attendendo smentite o conferme,
Gabriele

troppo.
Ciao,
per poterti dare un aiuto (o almeno tentare di farlo) bisognerebbe
analizzare nel dettaglio il tuo database, sia le tabelle sia la
funzione che determina se si deve o no creare un nuovo record. La mia
impressione è che la struttura che hai dato sia abbastanza 'insolita'
e che ti potresti trovare nella situazione che la tua funzione 'creda'
di star scrivendo in un nuovo record mantre in realtà sta
sovrascrivendo, e questo per un errore 'logico' del tuo codice.
Non so ... sei in grado di fare delle prove in questo senso? Mi
dispiace, al momento non saprei dirti di più.
Ciao,


Il problema però pare verificarsi solo su un numero consistente di records
aggiunti. Su un numero inferiore, sia aggiunte che modifiche non danno
problemi (ho passato una mezza giornata ad inserire dati di prova)... Nella
documentazione che ho trovato il problema si manifestava quando ad esempio
si eseguiva lo scrolling dei record in una maschera continua, dopo averne
inserito uno nuovo e cercato di modificarne uno vecchio... il risultato era
che il record modificato (o aggiunto) non era quello selezionato... Siccome
la scelta degli articoli x etichette io la svolgo appunto tramite selezione
da maschera continua (circa 4000 articoli) + la possibilità di cercare un
articolo per codice o per descrizione, ho appunto il sospetto che il tanto
temuto baco si sia manifestato...Per ora ho consigliato gli aggiornamenti
scaricabili dal sito MS per Office & CO.
Spero che il problema si risolva, perchè onestamente cominciano a
girarmi....! :-)
Saluti,
Gabriele

Gabriele
Ciao, auguri.



Per nulla, anzi, ti ringrazio per l'interessamento.
Saluti
Gabriele