Newsgroup: it.comp.appl.access
Titolo: Pop up

Salve. Ho un problema nella creazione di una finestra pop up.
L'obiettivo è quello di verificare l'esistenza di dati sulla tabella
dove andrò ad accodare i dati per evitare di avere dati duplicati. La
pop up genera una lista di articoli per la compilazione di una fattura,
ma se esiste già l'id fattura sulla tabella ordine, la pop up dovrà
essere vuota. Come posso fare?


Devi spiegarti meglio.
In linea di principio sembra che il tuo problema si possa risolvere modificando 
leggermente la struttura di una tabella in modo da avere un indice sul campo 
IDFattura, ma non posso essere sicuro di averti dato il consiglio migliore 
se non conosco meglio la struttura del database sul quale stai lavorando.
--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution

Sono un lamer in VBA.
IDFattura è indicizzato, come IDArticolo.
L'SQL della query di 'riempimento' della popup è:
INSERT INTO OrdinePopUp ( idfattura, idArticolo, DescrizioneArticolo )
SELECT Fattura.idfattura, Articolo.idArticolo,
Articolo.DescrizioneArticolo
FROM Fattura, Articolo INNER JOIN ModelloArticolo ON
Articolo.idArticolo = ModelloArticolo.idArticolo
WHERE (((Fattura.idfattura)=[Forms]![MascheraFattura]![idfattura]) AND
((ModelloArticolo.Modello)=[Forms]![MascheraFattura]![Modello]));
La Query fà egregiamente il suo lavoro: riempie la pop up degli
articoli associati ad un certo modello preimpostato (che contiene
varie combinazioni di articoli). Però è possibile [bug!] fare un
nuovo ordine su una fattura già compilata. L'obiettivo è di avere in
questo caso una pop up vuota.

[omissis]
Mi dispiace, ma senza la struttura del database non riesco a seguirti.


Articolo (idArticolo, descrizione, prezzo, ....)
Modello (Modello, descrizione, ...) <--- Modello è chiave primaria!
ModelloArticolo (idModello, idArticolo)
Fattura (idFattura, RagioneSociale, Modello, ...)
Ordine (idOrdine, idFattura, idArticolo, ...)
Altro che posso fornire?

> Altro che posso fornire?
Sě, le relazioni.


Articolo (idArticolo) (1---->molti) Ordine (idArticolo),
ModelloArticolo (idArticolo)
Modello (Modello) (1---->molti) Fattura (Modello), ModelloArticolo
(Modello)
Fattura (idFattura) (1---->molti) Ordine (idFattura)

[omissis]
Ho riletto lo statement INSERT INTO ed ho visto che fai un prodotto cartesiano 
tra le fatture e gli articoli appartenenti ad un certo modello. A che scopo 
un prodotto cartesiano?
Leggendo poi l'elenco delle relazioni che mi hai inviato, mi sono accorto 
che ci sono alcune cose che non tornano.
Allora ti elenco di seguito le relazioni come risultano a me; correggimi 
se ci sono errori (ho riportato la nomenclatura che utilizzo per tutti i 
miei db):
tblArticoli (IDArticolo) 1---M tblModelliArticolo (IDArticolo)
tblArticoli (IDArticolo) 1---M tblOrdini (IDArticolo)
tblFatture (IDFattura) 1---M tblOrdini (IDFattura)
tblModelli (IDModello) 1---M tblModelliArticolo (IDModello)
tblModelli (IDModello) 1---M tblFatture (IDModello)
Se le relazioni sopra elencate sono corrette, puoi spiegarmi meglio quale 
è il caso reale che hai voluto rappresentare con questa struttura di database?


...prodotto cartesiano?
Questo va effettivamente oltre le mie conoscenze.
Ho riguardato le relazioni come da te elencate e sono correttamente
riportate.
Vediamo se riesco a spiegare questo db. Ho raggruppato gli articoli in
gruppi (modelli) perchè l'utilizzatore usa più o meno sempre le
medesime voci, ma vuole avere n-modelli con varie combinazioni. Alla
creazione di una fattura viene selezionato il modello (quindi il gruppo
di articoli) e viene visualizzata una pop up di quegli articoli (...).
Resta il fatto che se per errore faccio apparire la pop up su una
fattura precedentemente già compilata, questa mi accoda ulteriori dati
alla fattura già esistente. E ciò non è buono. Stavo seriamente
pensando ad una flag che mi blocca la pop up...

 pensando ad una flag che mi blocca la pop up...
Più andiamo avanti e meno ne comprendo.
Ma questa maschera popup è legata? Se sì, qual'è la sua origine dati?


E' il problema nel creare la lista di articoli raggruppati. la
tblModelloArticolo ha un contatore indicizzato (idModello) che
sinceramente non serve a nulla, non è collegato a nessuna altra tbl.
Ma ad una fattura corrispondono più raggurppamenti di modelli. E
questo è l'unico modo che almeno ad oggi conosco per realizzare questo
tipo di relazione. La tbpPopUp non è vincolata con nessuna tbl. E' una
svuota/riempi per alimentare la tblOrdini con query di
eliminazione/accodamento.

 eliminazione/accodamento.
Si ma questo non aiuta a risolvere il dilemma.
Ritorno su un concetto già espresso: devi spiegare bene la realtà che ti 
sei trovato ad affrontare con Access. Mi riferisco proprio al problema reale, 
non alle tabelle ed alle relazioni, alle quali arriveremo dopo.
Insomma, tirando le somme di tutti questi post, penso che ci sia qualcosa 
che non funziona nel modo in cui hai concepito la base dati.


Senza ombra di dubbio.
Mi accorgo ora, rileggendo quello che ho postato, quanto incoerente sia
ad esporre il db... figurati quanto lo è il db in se stesso!
Il problema essenziale è: una volta compilata una tabella, l'utente
non potrà fare ulteriori aggiunte. Eliminare tutta la tabella magari,
ma non aggiungere altri dati...