Inserimento dati con origine dati query

di il
20 risposte

Inserimento dati con origine dati query

Buongiorno
ho nuovamente bisogno del vostro aiuto.

Devo costruire una maschera per inserire dei dati in una tabella, ma perché la maschera sia comprensibile devono essere visualizzati anche i dati presi da una seconda tabella (dove non verrà aggiunto nessun dato). Per fare questo ovviamente l'orgine dati della maschera è una query.
Però creando la query non riesco poi a salvare i dati in tabella.
Mi pare di aver capito che però in alcuni casi se le tabelle interessati nella query sono solo due dovrebbe essere possibile registrare i dati in tabella...
O devo per forza fare una maschera e poi inserire i dati in tabella da VBA?
Mi fate capire la teoria?
grazie mille.

20 Risposte

  • Re: Inserimento dati con origine dati query

    Per me (in linea generale) non vedo il motivo di inserire/accodare dati di query in tabella.
    Esponi tutto dettagliatamente:
    - nomi propri di tabelle, query, maschere, campi
    - rispiega tutto quello che vuoi fare usando i nomi propri
  • Re: Inserimento dati con origine dati query

    Non è quello lo scopo Osvaldo.
    Provo a spiegare meglio.
    Ho Tab1 e Tab2 in relazione molti a 1 tramite il campo "Codice" (ogni tabella ha i suoi ID che non c'entrano nulla al momento).
    Nella maschera visualizzo i dati di Tab1 (codice,descrizione, qt ordinata, prezzo, ecc) e i dati di Tab2 (peso, lega, fig. x staffa, ecc).
    Lo scopo della maschera è sia quello di visualizzare i record già introdotti in Tab1, sia di poter aggiungere nuovi record.
    I dati di Tab2 servono per chi legge i dati per contestualizzare. Ma devono essere né modificati, né aggiunti di questa maschera.
    Immaginavo di fare una maschera con visualizzazione divisa così da poter vedere i record già inseriti, con tutti i filtri del caso, sia aggiungere di nuovi.
    Ma avendo la maschera origine dati una query (per poter visualizzare i dati di Tab1 e Tab2 insieme io non conosco altro modo che la query) poi non posso direttamente aggiungere altri record.
    E' corretto che io abbia questo "limite" e che quindi debba per forza aggiungere record creando campi txt in cui inserire i nuovi dati e poi accordarli a Tab1 tramite vba o macro o posso risolvere il problema per inserire direttamente nuovi record?
    Spero di essermi spiegata meglio...
  • Re: Inserimento dati con origine dati query

    Crodino ha scritto:


    Buongiorno
    ho nuovamente bisogno del vostro aiuto.

    Devo costruire una maschera per inserire dei dati in una tabella, ma perché la maschera sia comprensibile devono essere visualizzati anche i dati presi da una seconda tabella (dove non verrà aggiunto nessun dato). Per fare questo ovviamente l'orgine dati della maschera è una query.
    Però creando la query non riesco poi a salvare i dati in tabella.
    Mi pare di aver capito che però in alcuni casi se le tabelle interessati nella query sono solo due dovrebbe essere possibile registrare i dati in tabella...
    O devo per forza fare una maschera e poi inserire i dati in tabella da VBA?
    Mi fate capire la teoria?
    grazie mille.
    La cosa non è RANDOM, se la Query è costruita in modo da rendere NON EDITABILE il recordset non c'è molto da inventare, hai 2 opzioni, cerchi di capire se hai scritto male la Query o se hai VIOLATO le regole base di costruzione che non alterano l'editabilità dei dati in tabella.

    Quì trovi riassunti i cardini elementari:
    http://allenbrowne.com/ser-61.htm
  • Re: Inserimento dati con origine dati query

    SELECT Tb425_ORDCLrighe.*, Tb612_DatiTecnici.NrFigurexPlacca, Tb612_DatiTecnici.PesoGrappolo AS PL, Tb612_DatiTecnici.PesoTeoricoGetto AS PN, Tb612_DatiTecnici.ID_LegaProduzione, Tb612_DatiTecnici.ID_LegaVendita
    FROM Tb425_ORDCLrighe INNER JOIN Tb612_DatiTecnici ON Tb425_ORDCLrighe.ID_Modello = Tb612_DatiTecnici.ID_Modello;
    
    La query è questa. E' impostata su Dynaset, per quel che ci capisco io non mi pare di aver violato le regole che leggo nel link che mi hai mandato.
    Brancolo nel buio, sinceramente...
    l'unico dubbio che mi viene è che Id_Modello non è ovviamente la chiave primaria in nessuna delle due tabelle.
    Ma non so se c'entra.
    Mi piacerebbe capire questa cosa perché ho già incontrato questo problema e l'ho aggirato, ma mi piacerebbe approfondire e capire ..
  • Re: Inserimento dati con origine dati query

    Prova a mettere in JOIN le tabelle con la PK lato 1 e laFK lato Molti e vedi che succede...

    Il problema della NON EDITABILITA' è proprio quello ovviamente.
  • Re: Inserimento dati con origine dati query

    Scusa, non ho capito. Ho messo lato 1 la Tb425_ORDCLrighe e lato molti l'altra ma non diventa editabile.
    Ma l'unico dato che hanno in comune è l'ID_Modello che non è la chiave primaria in nessuna delle due tabelle.
  • Re: Inserimento dati con origine dati query

    Crodino ha scritto:


    Ho Tab1 e Tab2 in relazione molti a 1 tramite il campo "Codice" (ogni tabella ha i suoi ID che non c'entrano nulla al momento).
    Nella maschera visualizzo i dati di Tab1 (codice,descrizione, qt ordinata, prezzo, ecc) e i dati di Tab2 (peso, lega, fig. x staffa, ecc).

    Crodino ha scritto:


    non ho capito. Ho messo lato 1 la Tb425_ORDCLrighe e lato molti l'altra ma non diventa editabile.
    Ma l'unico dato che hanno in comune è l'ID_Modello che non è la chiave primaria in nessuna delle due tabelle.
    Sarà un mio pallino, ma nominare le tabelle Tab1, Tab2, Tb425_ORDCLrighe lo trovo assurdo. Dici di avere i campi CHIAVE, la relazione non si capisce dov'è. Boh! Quando elenchi i campi di una tabella DEVI indicare sempre anche quelli chiave PK e/o FK, quindi anche la/le relazione/i.
  • Re: Inserimento dati con origine dati query

    Tab1 e Tab2 erano x semplificare l'esempio.
    Se guardi l'istruzione SQL di leggono e nomi delle tabelle che hanno un numero davanti per scelta mia perché ogni centinaio mi indica un gruppo uniforme di tabelle.
    Nel caso specifico le due tabelle, come ho già scritto, non hanno una relazione diretta tra loro se non per un campo in comune che è l'Id_modello (che è chiave primaria di una terza tabella che non è coinvolta in questa maschera).
    Le loro chiavi primarie non sono in relazione tra loro.
  • Re: Inserimento dati con origine dati query

    La relazione a livello di DB è questa.
    Si vede bene che le due tabelle che originano la maschera (Tab425_ORDCLrighe e Tb612_DatiTecnici) non hanno campi in comune se non ID_Modello.

    A me serve accodare i dati solo a Tb245_ORDCLrighe.
  • Re: Inserimento dati con origine dati query

    Crodino ha scritto:


    Tab1 e Tab2 erano x semplificare l'esempio.
    Ma non ci aiutano a capire. Per questo io preferisco nomi COERENTI/LOGICI.

    Crodino ha scritto:


    Se guardi l'istruzione SQL di leggono e nomi delle tabelle che hanno un numero davanti per scelta mia perché ogni centinaio mi indica un gruppo uniforme di tabelle.
    Che vuol dire "gruppo uniforme di tabelle"?

    Anche l'immagine è (per me) incomprensibile. Di cosa parla il database (IMPORTANTISSIMO per inquadrare l'intero contesto)? Secondo me c'è un radicale problema di "normalizzazione". Occorre fare una analisi completa di tutto il database. Io non sono in grado di dare risposte dirette alle domande poste in questa discussione.
    Se altri utenti hanno capito il problema, passo volentieri la palla, altrimenti IO consiglio:
    1. Studiare bene, anche da un manuale di base, la progettazione di un database con tutte le sue REGOLE DI NORMALIZZAZIONE: requisito minimo per la conoscenza di Access e dell'approccio al forum (vedi regolamento).
    2. Se ancora non ti raccapezzi (parlo della normalizzazione), apri una nuova discussione nella sezione "Progettazione database" fornendo una descrizione dettagliata e chiara anche per non addetti ai tuoi lavori.
  • Re: Inserimento dati con origine dati query

    Mi permetto di dissentire, non è necessario analizzare tutti il db.
    Le tabelle sono tutte normalizzate e relazionate.
    Per quanto riguarda i nomi delle tabelle è un sistema mio che mi permette di organizzare il db che ne ha tantissime.
    Non pretendo che sia un sistema universale. A me è utile così....
    La mia domanda era altra...
    Credo di aver capito che non avendo una relazione chiave in comune le due tabelle è evidente che creano un problema risolvibile in altro modo...
    Se qualcun'altro può aiutarmi diversamente bene venga, sono qui per imparare...
  • Re: Inserimento dati con origine dati query

    Comunque per spiegare "gruppo uniforme" significa che ogni centinaio rappresenta una parte del gestionale.
    Le anagrafiche 100, gli acquisti 300, le vendite 400 e così via ..
    In questo modo IO e ripeto IO mi trovo meglio..
  • Re: Inserimento dati con origine dati query

    Crodino ha scritto:


    Comunque per spiegare "gruppo uniforme" significa che ogni centinaio rappresenta una parte del gestionale.
    Le anagrafiche 100, gli acquisti 300, le vendite 400 e così via ..
    In questo modo IO e ripeto IO mi trovo meglio..
    Dico la mia e ripeto è la mia...
    Magari mettiti in discussione se qualcuno ti dà un suggerimento... altrimenti non scrivere in un forum paga.un consulente.
    Saluti
  • Re: Inserimento dati con origine dati query

    Sinceramente non capisco la tua risposta. Non credo che il nome della tabella modifichi il funzionamento di un db.
    Sicuramente sono disposta a mettermi in discussione per le mie lacune e per questo ho chiesto aiuto, ma certo non per come scelgo di nominare le tabelle. Mi sembra eccessivo...
Devi accedere o registrarti per scrivere nel forum
20 risposte