DB per negozio

di il
6 risposte

DB per negozio

Ciao a tutti,
sono nuovo del forum, spero che mi possiate aiutare e spero di poter aiutare io voi.
Le mie basi sono di Ms SQL.

Sto creando per un'amica un piccolo DB su cui gestire il suo negozio di "penne".

Lo volevo strutturare in questo modo(per ora):
Tabella_Fornitori
Tabella_Prodotti
Tabella_Acquisti
Tabella_Vendite_Utilizzo

Nella tabella fornitori volevo indicare tutti i fornitori con i dati, in quella prodotti il prodotto e il fornitore che sta vendendo l'articolo(join con quella prima), in quella Acquisti(e qua cominciano i problemi) da chi acquisto cosa, nell'ultima, Vedite_utilizzo, cosa vendo.

Seguirà poi una query che mi sottrae gli acquisti alle vendite, per avere idea di quanto rimanga in magazzino.

Torniamo al rosso, come faccio ad imporre alla mia tabella di acquisto di propormi solamente i fornitori che vendono quel dato prodotto?

Chiaramente poi ripoterò tutto su GUI(maschere).
A proposito di maschere, sapete come fare un click on event? Se riempio una check box deve inibirsi una casella di testo sulla stessa GUI.

Utilizzo Office2003.

Grazie mille a tutti!!!

6 Risposte

  • Re: DB per negozio

    ilcress ha scritto:


    Torniamo al rosso, come faccio ad imporre alla mia tabella di acquisto di propormi solamente i fornitori che vendono quel dato prodotto?
    Non hai indicato i campi delle tabelle. Intuisco che tu hai un campo TipoProdotto ed è su quello che devi filtrare tutti i fornitori di quel tipo di prodotto.

    ilcress ha scritto:


    A proposito di maschere, sapete come fare un click on event?
    Immagino tu stia parlando di un pulsante. Tanto il pulsante, quanto tutti gli altri oggetti (controlli) di una maschera hanno le loro proprietà. Ogni lista di proprietà ha la sezione staccata Eventi, puoi sceglierne tanti, tra cui "Su clic".

    ilcress ha scritto:


    Se riempio una check box deve inibirsi una casella di testo sulla stessa GUI
    Occore che tu sia più chiaro. Specifica cosa vuoi fare. Indica sempre i nomi di campi, controlli ecc...
  • Re: DB per negozio

    Ciao Osvaldo, e grazie per la tua pronta risposta:

    T_Prodotti:
    ID_Prodotto
    Nome_Prodotto
    Nome_Fornitore(SELECT Nome_Fornitore FROM T_Fornitori)

    T_Acquisti:
    ID_Acquisto
    ID_Prodotto(SELECT ID_Prodotto FROM T_Prodotti)
    Costo_prodotto
    Pezzi
    Nome_Prodotto(SELECT Nome_Prodotto FROM T_Prodotti; )
    Nome_Fornitore <------ CAMPO IMPUTATO
    Data_Acquisto

    Ecco alcuni valori:

    T_Prodotti
    Nome_Prodotto|Nome_Fornitore
    Pane|Cress
    Pasta|Cress
    Pasta|Parafly
    Carne|Cress

    Adesso, io in T_Acquisti posso indicare l'aquisto di 3 pezzi di pasta, ma devo poter scegliere SOLO tra tutti i fornitori che vendono quel determinato articolo.


    Per il click on event il discorso è semplice, ho una checkbox e una textarea. Se riepio il flag nella checkbox la textarea si deve inibire, viceversa il contrario.

    Grazie mille!
  • Re: DB per negozio

    In T_Acquisti è errato avere i campi Nome_Prodotto e Nome_Fornitore. Il campo ID_Prodotto assolve automaticamente alla funzione di portarsi appresso tutti i valori dei restanti campi ad esso collegato. Quindi puoi cancellare quei due campi.

    Query: Tu vuoi filtrare valori dalla T_Acquisti, ma i valori da filtrare stanno in un'altra tabella (T_Prodotti). Quest'ultima è in relazione uno-a-molti. In casi come questo si importano nella query entrambe le tabelle e si trascinano i campi che interessa vedere. Occorre comunque trascinare il campo T_Prodotti.Nome_Prodotto e applicare un filtro Like in Criterio. Io suggerisco la soluzione "query con parametro", devi cioè scrivere in Criterio (alla colonna Nome_Prodotto) una sintassi simile a questa:
    Like [Digita un Nome_Prodotto]
    il testo dentro le parentesi quadre è libero e, quando vai ad eseguire la query, ti apparirà come testo in una finestra in cui devi digitare il Nome_Prodotto che vuoi filtrare.

    ilcress ha scritto:


    Per il click on event il discorso è semplice, ho una checkbox e una textarea. Se riepio il flag nella checkbox la textarea si deve inibire, viceversa il contrario.
    1. Apri una macro in visualizzazione struttura
    2. Apri la colonna Condizioni e scrivici dentro la seguente sintassi.
    [Maschere]![NomeMaschera]![NomeCheckBox]=Vero
    3. Nella corrispondente colonna Azioni, scrivi quanto segue:
    ImpostaValore
         Elemento: [Maschere]![NomeMaschera]![NomeTextBox].[Locked]
         Espressione: Vero
    4. Salva la macro con nome Blocca
    5. Vai in visualizzazione struttura maschera, clicca nel campo TextBox e vai alle Proprietà|Eventi|Su corrente e scrivi accanto Blocca
    6. Salva tutto
  • Re: DB per negozio

    No,
    non riesco.
    Forse mi sono spiegato male.

    ho fatto un piccolo documento, lo trovi a questa url se vuoi dare uno sguardo.

    Grazie mille
  • Re: DB per negozio

    Il campo Fornitore può essere cancellato (anche in tabella).
    Il campo-casella-combinata Nome_Prodotto deve guardare la tabella Prodotti sfruttando il campo IDProdotto.
    1. Crea una query in visualizzazione struttura e importa la tabella Prodotti
    2. Trascina nella griglia query tutti e tre i campi nell'ordine IDProdotto|Nome_Prodotto|Nome_Fornitore
    3. Ci sono tanti post in questo forum su come ottimizzare la tua casella combinata, io ho trovato alcuni casi tipici e trascritto in questo link

    clicca su Download
    4. Devi nascondere il campo IDProdotto (0 cm) e mostrare il secondo, oppure l'unione dei due restanti campi in uno solo.
  • Re: DB per negozio

    Ciao ilcress, vedo il 3d solo adesso perchè sono stato impegnato in questi giorni.
    Mi è stato segnalato che è un cross posti, in condizioni normali andrebbe chiuso, visto però che il 3d è andato avanti causa mia assenza non lo chiuderò e potrete continuare la discussione.

    Detto questo che sia il primo e ultimo cross post, nel frattempo ti invito a leggere il regolamento del forum.

Devi accedere o registrarti per scrivere nel forum
6 risposte