Condizione Where

di il
17 risposte

Condizione Where

Buongiorno.
Ho una maschera dove appare un elenco clienti con Ragione sociale, relativo "ID" e altri dati. Cliccando sull'ID mi si apre la maschera che riporta il dettaglio del medesimo cliente.
Per fare questo ho applicato alla cella dell'ID, nel generare un evento,le seguenti condizioni:
Apri maschera: Dettaglio cliente
Condizione Where: =[ID]=" & NZ([ID];0)
Modalità finestra: Dialogo
Ora vorrei fare la stessa cosa cliccando sulla Ragione sociale del cliente , ma vorrei si aprisse la maschera per l'inserimento dell'ordine ma con il campo "Ragione sociale" già compilato. Come accade all'apertura del "Dettaglio cliente".
Non so se è importante; la maschera inserimento ordine ha una sottomaschera.
Spero in un aiuto

Grazie
Tatò

17 Risposte

  • Re: Condizione Where

    Tato ha scritto:


    Ho una maschera dove appare un elenco clienti con Ragione sociale, relativo "ID" e altri dati.

    Tato ha scritto:


    Cliccando sull'ID mi si apre la maschera che riporta il dettaglio del medesimo cliente.
    Come si chiama la tua maschera iniziale?

    Tato ha scritto:


    Apri maschera: Dettaglio cliente
    Condizione Where: =[ID]=" & NZ([ID];0)
    Questa WHERE non l'ho capita. A me non risulta che bisogna mettere = a inizio espressione.

    Puoi dare una descrizione completa (nomi maschera e nomi campi) di tutte le maschere che entrano in gioco?
  • Re: Condizione Where

    Chiedo scusa ma il lavorto mi ha chiamato.
    In effetti togliendo l'uguale la condizione Where funzione ugualmente.
    Queste sono le 3 maschere oggetto del problema:
    1) Maschera "Elenco clienti completo": Elenco di tutti i clienti presenti nel data base, con: ID, Ragione sociale, Città, indirizzo, ecc.ecc.
    2) Maschera "Dettaglio clienti" e contiene:
    Gli stessi dati dell'altra per ogni singolo cliente ( ID, RAgione Sociale, Città, Indirizzo ), ma solo inerenti il cliente facente capo all'ID cliccato; con in più una serie di info inerenti la tipologia del cliente, Linee trattate, Tlefoni vari, Note, ecc,ecc.

    Es: Maschera (1) ID-10, Ragione Sociale - Mario Rossi, Città - Milano, Indirizzo - Via Roma.
    Cliccando sull'ID "10" si apre la maschera dettagli cliente che riporta" ID-10, RagioneSociale Mario Rossi, Città-Milano, Indirizzo-Via Roma, Tel-0000000, Fax-0000000, Cel-0000000, Note-xxxxxxxx, Linee trattate-xxxxx, ecc, ecc.; ma tutto inerente esclusivamente al cliente "Mario Rossi"
    3) Maschera "Nuovo Odine" : Questa contiene: Ragione sociale, data Ordine, N° Ordine, e una sottomaschera che riporta il dettaglio dell'ordine: articolo,prezzo, quantità ecc,ecc.

    I campi che entrano in gioco sono: Attualmente l'ID nella maschera (1) "Elenco clienti completo". Cliccando sull'ID del cliente si apre, appunto, la maschera (2) "Dettaglio clienti" inerente il cliente facente capo all'ID da me cliccato.
    Ora, sempre stando nella maschera (1) "Elenco clienti completo" vorrei che cliccando sulla "Ragione Sociale" si aprisse la maschera (3) "Nuovo Ordine" con il campo "Ragione Sociale" già intestato.
    Es: se come da esempio sopra, clicco sul nome "Mario Rossi" anzichè sull' "ID" , la maschera "Nuovo ordine" deve aprirsi con la cella "Ragione Sociale" già compilata con il nome di "Mario Rossi".

    Credevo bastasse modificare la condizione Where che attualmente si basa sull'ID ed è così composta: "ID=" & Nz([ID)];0). Io, molto banalmente e da autodidatta di Access, ho provato a sostituire "ID" con "Ragione sociale"; ovviamente un buco nell'acqua.

    Spero di essermi fatto capire.

    Grazie
  • Re: Condizione Where

    Potresti esplicitare tutti i campi delle tabelle che stanno sotto ogni tua maschera?
    Potresti descrivere tutte le relazioni?
    Se non ho capito male [Dettaglio clienti] è formato da molti record così disposti:
    Telefono | 00008888
    Cellulare | 339000066
    Fax | 026668881
    ...è così che stanno le cose? Puoi delucidarmi questo aspetto?
  • Re: Condizione Where

    Ok.
    La Maschera "ELENCO CLIENTI COMPLETO" fa capo alla tabella "ELENCO CLIENTI", ed è così strutturata:

    ID
    Ragione Sociale
    Indirizzo
    Telefono
    PIva
    CodFis
    Linea (Linee prodotti trattati dal cliente)
    CodAz (Ad ogni azienda attribuisco un codice identificativo)
    Note

    Questa tabella da origine a due maschere; una "TABULARE" si apre modalità immissione dati "MODIFICA" e l'altra, con architettura da me creata, si apre in modalità immissione dati "AGGIUNGI", quindi completamente priva di dati.

    La tabella "INTESTAZIONE ORDINE" è così strutturata:

    Ragione Sociale
    Data Ord
    Num Ord
    CodAz
    Provvigioni
    IDCliente

    Da questa tabella nasce la maschera "Dettaglio ordine cliente" che comprende anche una sottomaschera "ORDINE" (CodArt, Prezzo, quantità, importo, iva, totale).
    Questa maschera si apre in due modalità diverse.
    1) Classica o modalità "SOLO LETTURA" (dove vedo l'ordine del cliente con tutti i dati e gli articoli acquistati) e in modalità "AGGIUNGI" (Maschera vuota per inserire un ordine nuovo).
  • Re: Condizione Where

    OsvaldoLaviosa ha scritto:


    Se non ho capito male [Dettaglio clienti] è formato da molti record così disposti:
    Telefono | 00008888
    Cellulare | 339000066
    Fax | 026668881
    ...è così che stanno le cose? Puoi delucidarmi questo aspetto?
    Non hai risposto a questa domanda.

    Non hai indicato alcuna relazione.

    Tato ha scritto:


    La tabella "INTESTAZIONE ORDINE" è così strutturata:
    Ragione Sociale
    Data Ord
    Num Ord
    CodAz
    Provvigioni
    IDCliente
    Il campo IDCliente eredita automaticamente Ragione Sociale da Clienti. È errato riscrivere Ragione Sociale in questa tabella.

    Non mi è chiaro il discorso sulle Linee. Hai indicato un campo Clienti.LInea e poi dici che ci sono molte Linee diverse. Secondo me è errato il campo Linea nella tabella Clienti.

    Scusa se ti faccio tutte queste domande, ma se non c'è a monte una corretta strutturazione delle tabelle (di conseguenza pure delle maschere) il discorso successivo non può neanche cominciare.
  • Re: Condizione Where

    Ok per L'ID che in effetti ho già eliminato. Ma il campo linea (inteso come linee che tratta il cliente
    dove lo metto? Faccio una tabella apposta? oppure lo inserisco nella tabella aziende?
    Sicuramente hai ragione. Considea che sono un autodidatta quindi mi scuso se a volte non sono molto chiaro nella spegazione.
  • Re: Condizione Where

    Scusa, nel rileggere il mio messaggio, mi sono accorto che ti ho depistato. Rileggilo bene perchè ho corretto il testo ambiguo. Questo è ora il testo nuovo

    OsvaldoLaviosa ha scritto:


    Il campo IDCliente eredita automaticamente Ragione Sociale da Clienti. È errato riscrivere Ragione Sociale in questa tabella.
    Hai descritto finora solo tabelle e maschere associate. È IMPORTANTISSIMO che tu descriva anche le RELAZIONI.
    Il campo IDCliente (contatore, chiave primaria) è giusto che stia lì, così come è pure giusto che torni da richiamo sulla tabella figlia (numerico). Di solito avviene una relazione [Tabella madre].[CampoChiavePrimariID] uno-a-molti con [Tabella figlia].[CampoChiaveEsternaID].
    Hai costruito relazioni nella finestra Relazioni? Se non lo hai fatto, tutto il discorso successivo non ha alcun senso.
  • Re: Condizione Where

    Relazioni.
    Tabella "Elenco clienti" con chiave primaria nell'ID ha una relazione con la "Ragione sociale ( uno a molti) nella tabella "Intestazione ordine" la cui chiave primaria è "NOrd (Numero Ordine).
    La tabella "Intestazione ordine ha una relazione tra la sua chiave primaria "NOrd" con la tabella "Ordine" dove ho inserito appositamente la voce "NOrd" (NUMERICO).
    La tabella "Ordine", dove troviamo la voce "Articolo" non ha chiave primaria, e ha una relazione, uno a molti) con la tapella "prodotti" alla voce "Articolo (chiave primaria)"
  • Re: Condizione Where

    Un chiarimento per spiegae il perchè nella tabella clienti è riportato anche il campo linee.
    Nella Maschera "dettaglio cliene", dove sono visibili i dati inerenti un cliente specifico, si posso vedere, oltre alle aziende che lavora, anche tutte le linee che il cliente tratta di ogni azienda.
  • Re: Condizione Where

    [ElencoClienti].[IDCliente] uno-a-molti con [IntestazioneOrdine].[RagioneSociale]
    Il campo [IntestazioneOrdine].[RagioneSociale] è numerico? Mi sembra strano. Se sì, va bene ugualmente, quindi giusto eliminare [IntestazioneOrdine].[IDCliente]
    Sto tentando di ricostruire il bandolo di tutta la matassa, ma sto avendo seri problemi. Ti consiglio di riscrivere tutto ordinatamente, così:

    NomeTabella1
    NomeCampoChiavePrimaria (TipoCampo)
    Campo1 (tipo campo)
    Campo2 (tipo campo)
    ....

    NomeTabella2
    NomeCampoChiavePrimaria (TipoCampo)
    CampoX (tipo campo)
    CampoY (tipo campo)
    ...
    EventualeCampoChiaveEsterna

    ecc...

    Relazioni:
    [NomeTabellaMadre].[NomeCampoChiavePrimaria] uno-a-molti [NomeTabellaFiglia].[NomeCampoChiaveEsterna]

    Correggimi se sbaglio, ma secondo una denominazione standard delle tabelle che hai tu, dovrebbe corrispondere così:
    [Tua Denominazione] = [Denominazione standard]
    [Elenco clienti] = [Clienti]
    [Intestazione ordine] = [Ordini]
    [Ordine] = [Dettagli Ordini]

    Giusto?
  • Re: Condizione Where

    Perfetto. In serata, perdonami se non posso ora, ti faccio specchietto dettagliato come hai chiesto.
    Grazie
  • Re: Condizione Where

    A seguire la struttura dettagliata delle tabelle oggetto del problema.

    Tabella Aziende
    Campo1: ID "Chiave primaria"
    Campo2: Città "Testo"
    Campo3: Provincia "Testo"
    Campo4: Indirizzo "Testo"
    Campo5: Telefono "Testo"
    Campo6: Fax "Testo
    Campo7: Mail "Testo"
    Campo8: PIva "Testo"
    Campo9: Provvigione " Numerico"
    Campo10 Note "Memo"
    --------------------------------------
    Tabella Elenco Clienti
    Campo1: ID "Chiave Primaria"
    Campo2: RagioneSociale "Testo"
    Campo3: Città "Testo"
    Campo4: Indirizzo "Testo"
    Campo5: Telefono "Testo"
    Campo6: Fax "Testo"
    Campo7: Cellulare "Testo"
    Campo8: PIva "Testo"
    Campo9: Codice Fiscale "Testo"
    Campo10: Note "Memo"
    Da questa Tabella ho creato due maschere differenti:
    1) Maschera Tabulare la cui apertura è in modalità" MODIFICA". 2) Maschera con struttura personalizzata con apertura in modalità "AGGIUNGI" Questa ha anche una sottomaschera che riporta le< "LINEE": Dietro tua segnalazione ho creato una Tabella Dedicata alle "LINEE"
    ---------------------------------------------
    Tabella Intestazione Ordine
    Campo1: Ragione Sociale "Testo"
    Campo2: DataOrdine "Testo"
    Campo3: NumOrd "Chiave Primaria"
    Campo4: CodAzienda "Testo"
    Campo5: Provvifgioni "Numerico"

    Credo non ti serva altro
    Tato
  • Re: Condizione Where

    Perchè hai due tabelle Aziende e Clienti?

    Aziende significa Fornitori? Se sì, mancherebbe un campo Testo che specifica di chi stai parlando.

    Siamo sicuri che il campo Provvigione va scritto direttamente in Aziende?

    Come fai a relazionare [Clienti].[ID] (numerico) uno-a-molti con [Intestazioni Ordini].[Ragione sociale] (testo)?
  • Re: Condizione Where

    L'azienda è il mio datore di lavoro e le provvigioni son quelle che l'azienda mi riconosce. I clienti sono le attività commerciali che gestisco e a cui vendo i prodotti dell'azienda. Non capisco quale testo mancherebbe.
    Per la tua ultima domanda "Relazione" ho modificato la tabella "Intestazione ordine" aggiungendo "IDCliente"(Numerico) e ho quindi relazionato "[Elenco Clienti].[ID] (chiave primaria) con [Intestazione ordine].[IDCliente] NUMERICO
    Ora dovrebbe essere giusto.
Devi accedere o registrarti per scrivere nel forum
17 risposte