Collegamento tra Tabelle

di il
9 risposte

Collegamento tra Tabelle

Buon giorno a tutti,
sono alle prese con un problema, probabilmente stupido, ma sono in un loop dal quale non esco.
vorrei creare una maschera per combinate dei dati che imputo direttamente con dei dati che sono presenti in una tabella.

Esempio:
ID_Nr_Commessa Tabella Nr. Commessa
Nr_Commessa Tabella Nr. Commessa da imputare manualmente OK funziona
Anno_Corrente Tabella Nr. Commessa proposto in automatico OK funziona
Descrizione_Commessa Tabella Nr. Commessa da imputare manualmente OK funziona
IDCliente Tabella Anagrafica Cliente
Ditta Tabella Anagrafica Cliente tramite una casella combinata cerco nella tabella relativa OK funziona
Nr_Cliente NON MI SCRIVE IL Nr.Cliente relativo all'anagrafica Ditta

spero di essere riuscito a spiegare il problema e che qualcuno prendendosi compassione provi a darmi una mano.

provo ad aggiungere in allegato una immagine nella speranza che sia più comprensibile il problema

M_Nr_Commessa.JPG
M_Nr_Commessa.JPG


QUERY.JPG
QUERY.JPG

9 Risposte

  • Re: Collegamento tra Tabelle

    Per avere ciò che vorresti devi effettuare le seguenti operazioni:
    - selezionare il controllo casella combinata relativa alla Ditta
    - nella scheda Formato impostare le seguenti proprietà:
    - assegnare a Numero colonne il valore 3
    - assegnare a Larghezza colonne il valore 0 cm; 5 cm; 0 cm
    - assegnare a Larghezza elenco il valore 0 cm; 5 cm; 0 cm
    - nella scheda Dati impostare la seguente proprietà:
    - assegnare a Origine riga il valore SELECT IDCliente, Ditta, NumeroEsolver[/b]
    - nella scheda Evento impostare il seguente evento:
    - selezionare nell'evento Dopo aggiornamento {Routine evento]
    - fare click sul pusantino sulla destra con i tre puntini(...) nella finestra di codice che si apre all'interno dell'evento digitare (supponendo che il controllo casella combinata relativa alla Ditta abbia la proprietà Nome elemento nella scheda Altro assegnato il valore cmbIDCliente e il controllo testo NumeroEsolver abbia come la proprietà Nome elemento nella scheda Altro assegnato il valore txtNumeroEsolver)
    
    If IsNull(me.cmbIDCliente) then
        me.txtNumeroEsolver = null
    Else
        me.txtNumeroEsolver = me.cmbIDCliente.column(2)
    End If
    
  • Re: Collegamento tra Tabelle

    Guardando l'immagine delle relazioni, mi sembra assurdo che non vi sia relazione tra i campi IDCliente.
    Si tratta di una cosa voluta in fase di progettazione query, oppure è una svista?
  • Re: Collegamento tra Tabelle

    Intanto grazie del feedback

    x Carletto
    ho provato a fare come mi hai suggerito ma mi succede che:
    quanto inserisco [assegnare a Larghezza elenco il valore 0 cm; 5 cm; 0 cm,] mi appare un popup che dice "E' necessario un valore numerico"

    x OsvaldoLaviosa

    era una distrazione, grazie
  • Re: Collegamento tra Tabelle

    CarlettoFed ha scritto:


    Per avere ciò che vorresti devi effettuare le seguenti operazioni:
    - selezionare il controllo casella combinata relativa alla Ditta
    - nella scheda Formato impostare le seguenti proprietà:
    - assegnare a Numero colonne il valore 3
    - assegnare a Larghezza colonne il valore 0 cm; 5 cm; 0 cm
    - assegnare a Larghezza elenco il valore 0 cm; 5 cm; 0 cm
    - nella scheda Dati impostare la seguente proprietà:
    - assegnare a Origine riga il valore SELECT IDCliente, Ditta, NumeroEsolver
    Eolo vuole vedere il valore di NumeroEsolver, quindi
    Larghezza colonne: 0 cm; 0 cm; 5 cm

    Eolo ha scritto:


    quanto inserisco [assegnare a Larghezza elenco il valore 0 cm; 5 cm; 0 cm,] mi appare un popup che dice "E' necessario un valore numerico"
    Larghezza elenco: 5 cm (ossia il totale di Larghezza colonne).
  • Re: Collegamento tra Tabelle

    OTTIMOOOOOO
    Grazie Amici!!

    tutto perfetto Per il momento vi dico grazie, se passate dalle mie parti fatemelo sapere, sono in debito di un caffè!!
  • Re: Collegamento tra Tabelle

    UNA DOMANDA ANCORA Ragazzi:
    adesso funziona ma... ogni volta che carico un nuovo record sulla maschera Nr_Connessa, si genera in automatico un NUOVO record nella tabella TCliente, che ha come Ditta (nome della ditta) il IDCliente del cliente che ho inserito nel nuovo record nella tabella Nr_Commessa..
  • Re: Collegamento tra Tabelle

    Ovvio e normale. Tabella e Maschera dialogano in maniera biunivoca. Ogni record inserito in Maschera, va ad alimentare la sottostante tabella. Idem, se desideri inserire dati dalla tabella (anche se ha poco senso), se poi vai a riaprire la maschera, ritroverai tali record aggiunti.
  • Re: Collegamento tra Tabelle

    E fin qui ok, e lo sapevo anche io.
    Ma allora come riesco ad attingere dalla tabella Clienti per aggiungere due campi (provenienti dalla tabella Clienti) al nuovo record della tabella Nr_Commesse??
    il record del numero della commessa deve essere composto ad:
    ID_Nr_Commessa
    nr.Commessa
    anno in corso
    descrizione
    nr_Esolver

    il campo ditta mi serve per attingere dalla tabella Clienti il nr_Esolver
  • Re: Collegamento tra Tabelle

    L'ultimo campo della tabella Commesse DEVE essere IDCliente. Poi ovvia relazione Clienti.IDCliente uno-a-molti Commesse.IDCliente.
    Ora tu hai trasformato Commesse.IDCliente in casella combinata con quelle caratteristiche (3 colonne ecc...). Quello che hai chiesto IN TABELLA non si può fare. La tabella resta pur sempre il "contenitore primordiale" dei dati e deve avere un solo campo della tabella madre Clienti (campo chiave esterna). Per VEDERE quello che vuoi tu, devi servirti della maschera, poi:
    1. In visualizzazione struttura maschera aggiungi 2 caselle di testo non associate ad alcun campo
    2. In una ci scrivi dentro:
    =[IDCliente].Column(1)
    3. nell'altra ci scrivi dentro:
    =[IDCliente].Column(2)
    4. Salva tutto
Devi accedere o registrarti per scrivere nel forum
9 risposte