Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Max-Man
    Registrato dal
    Nov 2001
    Messaggi
    636

    Aiuto per database ACCESS

    Ho creato un database per la gestione dei preventivi, con il quale intendo semplificare e velocizzare la stesura degli stessi senza perdermi nelle pagine dei cataloghi e dei listini dei vari fornitori.

    La struttura della maschera dei preventivi è la seguente:

    Fornitore
    Codice
    Quantità
    Descrizione
    Prezzo

    Ho impostato ACCESS perché recuperi i dati presenti nelle tabelle dei listini prezzi e Per fare ciò utilizzo il seguente metodo nel campo "Origine Riga" della casella "Codice"

    SELECT DISTINCTROW [LISTINI: NF].Codice FROM [LISTINI: NF];

    dove "NF" è il nome del fornitore interessato.

    Tutto fila liscio se utilizzo una sola tabella fornitori, ma la situazione si complica quando cerco di far capire al programma che deve prendere i dati da un'altra tabella. In pratica non riesco a fare in modo che il software recuperi i dati dalle varie tabelle perché non riesco a rendere flessibile la riga di codice sopra indicata.

    Come posso fare?

  2. #2
    Utente di HTML.it L'avatar di fabio309
    Registrato dal
    Oct 2002
    Messaggi
    1,918
    prova con
    SELECT DISTINCTROW [LISTINI: NF].Codice FROM [LISTINI: NF]
    union
    SELECT DISTINCTROW seconda tabella

  3. #3
    Nn riesco a capire la necessità d prendere i dati da un'altra tabella....in ogni caso per collegare le due tabelle listino e fornitore potrest fare una maskera con relativa sottomaskera e lascart guidare dal wizard d Access...

    Ciao

  4. #4
    Utente di HTML.it L'avatar di Max-Man
    Registrato dal
    Nov 2001
    Messaggi
    636
    Quello che vorrei fare è riassunto graficamente nel file allegato.

    In pratica devo fare in modo che selezionando il nome del fornitore nella maschera "PREVENTIVI", venga automaticamente presa in considerazione soltanto la tabella collegata, di modo che il programma cerchi il codice digitato nell'apposito campo, solo ed esclusivamente nella tabella del fornitore scelto e di conseguenza possa automaticamente riempire i campi "DESCRIZIONE" e "PREZZO" con i dati contenuti nella tabella del fornitore.

    Spero di essermi spiegato meglio!

  5. #5
    Innanzitutto è sbagliato avere tot tabelle per il numero d fornitori, in queto modo se hai 10 fronitori hai 10 tabelle con articoli...
    dovresti avere una unica tabell amettaimo LISTINO_PREZZI in cui aggiungi un campo IDFornitore...
    (per creare unisci le tabelle!)

    dopodiké

    imposti un evento ad uscita casella testo inserimento fornitore (magari una casella vcombinata ke mem Id e mostra il nome del fornitore),
    il codice è il seg:

    set Prezzo_Forn= currentdb.openrecordset ("select * from LISTINO_PREZZI where IDforn= "& me.fornitore.value)

    in questo modo seleziona gli articoli relativi al fornitore inserito dall'utente

    la casella combinata la kiami fornitore.

    Questa la soluzione più giusta secondo me.

    Ciao

  6. #6
    Utente di HTML.it L'avatar di pinOut
    Registrato dal
    Apr 2003
    Messaggi
    683
    Concordo, tante tabelle tutte uguali sono all'opposto della logica di un database relazionale. Una tabella fornitori, una tabella articoli; poi usi le relazioni, le query...

    Nel caso di 1000 fornitori che fai, mille tabelle?

    "Il modo migliore per sciupare un carattere è correggerlo." - Wilde

  7. #7
    Utente di HTML.it L'avatar di Max-Man
    Registrato dal
    Nov 2001
    Messaggi
    636
    Originariamente inviato da VanessaInfo
    Innanzitutto è sbagliato avere tot tabelle per il numero d fornitori, in queto modo se hai 10 fronitori hai 10 tabelle con articoli...
    dovresti avere una unica tabell amettaimo LISTINO_PREZZI in cui aggiungi un campo IDFornitore...
    (per creare unisci le tabelle!)

    dopodiké

    imposti un evento ad uscita casella testo inserimento fornitore (magari una casella vcombinata ke mem Id e mostra il nome del fornitore),
    il codice è il seg:

    set Prezzo_Forn= currentdb.openrecordset ("select * from LISTINO_PREZZI where IDforn= "& me.fornitore.value)

    in questo modo seleziona gli articoli relativi al fornitore inserito dall'utente

    la casella combinata la kiami fornitore.

    Questa la soluzione più giusta secondo me.

    Ciao


    All'inizio avevo pensato anch'io a creare una sola tabella fornitori, ma ho rinunciato per i seguenti motivi:

    [list=1][*]Molti dei miei fornitori hanno un listino con 20 o 30 mila articoli, quindi la tabella finale risultante sarebbe esageratamente grande e di difficile gestione.[*]Il tracciato dei record dei listini è diverso tra i vari fornitori. Ad esempio: alcuni listini presentano dei campi di cambio codice, altri hanno le tabelle sconti e così via...[*]Mi è più facile sostituire i vari listini con quelli aggiornati per mezzo dell'importazione dei dati, visto che i miei fornitori mi inviano i listini nuovi, in formato testo o Excel.[/list=1]

    Che ne pensate?

  8. #8
    Utente di HTML.it L'avatar di Max-Man
    Registrato dal
    Nov 2001
    Messaggi
    636
    UP!

  9. #9
    Se ogni fornitore ha 20 30mila articoli Access non è proprio il Database che fa per te.

    Puoi sceglere tra DB2, SQL Server, ORACLE, MySQL ecc...

    ma sconsigliati: FileMakerPro e ACCESS in tutte le sue versioni.

    Con i DB sopra (DB2 SQL...) puoi avere un numero impressionante di record e velocizzare la ricerca utilizzando indici, chiavi, viste logiche.

    per quanto riguarda il tracciato record, dice poco il fatto che li hai diversi perche con SQL e DB2 (io conosco questi) puoi crearti un'anagrafica prodotti solo con
    Codice,
    Descrizione,
    codice Fornitore,
    CodiceTabPersonalizzata ,
    ....daticomuni..... ,

    e da programma puoi aprire la tabella personalizzata se esiste il codice relativo nella tabella anagrafica.

    ciao
    *** Rachele TI AMO DA MORIRE!!! ***

  10. #10
    Utente di HTML.it L'avatar di fabio309
    Registrato dal
    Oct 2002
    Messaggi
    1,918
    Una soluzione potrebbe essere qualla di mettere una combox nella maschera principale, per selezionare il fornitore, e una sottomaschera nella quale mostri tutto il listino
    Sull'evento after update del fornitore devi modificare l'origine dei dati della sotto maschera:
    Form_Nome_sottomaschera.RecordSource="Select * from...where Nome_fornitore=combox"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.