Dlookup e campo in una maschera

Forum dedicato interamente a Microsoft Access

Moderatore: Toki

Regole del forum
Leggi: IProgrammatori.it - Regolamento Forum
Dragonlance
New Entry
Messaggi: 5
Iscritto il: 07 dic 2017, 09:56

Dlookup e campo in una maschera

Messaggioda Dragonlance » 07 dic 2017, 10:22

Buongiorno a tutti,
sto muovendo i primi passi con Access e mi trovo con un problema che non riesco ad inquadrare. Provo a spiegare.
Ho una tabella (Tabella_inserimento) con tre campi:
[Barcode]
[Codice]
[Quantità]
Ho una tabella collegata in sola lettura (Tabella_linkata) in ODBC con i campi:
[Barcode] e [Codice] (ogni barcode ha assegnato univocamente un codice).

Ho infine una form (Maschera_inserimento) che deve andare a scrivere i valore immessi in Tabella_inserimento con le seguenti regole:
Inserisco il [Barcode] e tramite un Dlookup mi restituisce il [Codice] prelevandolo da Tabella_linkata
OPPURE, se non è disponibile il [Barcode] (e qui mi sono fermato..)
inserisco il [codice]

Per ambedue i casi sopra
inserisco la [Quantità]

Non so quindi come gestire il campo [Codice] nella form Maschera_inserimento con le due possibilità in modo che comunque il lavore immesso o "dlokuppato" siano scritte nel campo [Codice] della Tabella_inserimento.
Vi ringrazio per l'aiuto che vorrete darmi.
OsvaldoLaviosa
Utente Senior
Messaggi: 4278
Iscritto il: 06 apr 2012, 16:17
Località: Conversano

Re: Dlookup e campo in una maschera

Messaggioda OsvaldoLaviosa » 07 dic 2017, 10:48

Perché hai una tabella che si chiama Tabella_inserimento? In genere le tabelle riportano nomi coerenti con i dati che li contengono.
Ho il sospetto che ci siano problemi di normalizzazione e che molto probabilmente il tutto si risolverebbe più elegantemente sfruttando opportune relazioni.
Dragonlance
New Entry
Messaggi: 5
Iscritto il: 07 dic 2017, 09:56

Re: Dlookup e campo in una maschera

Messaggioda Dragonlance » 07 dic 2017, 11:00

Grazie per l'osservazione OsvaldoLaviosa.
L'ho chiamata Tabella_inserimento per non avere problemi con eventuale codice SQL.
La tabella è coerente nel senso che dovrà contenere tutto quanto verrà inserito tramite la maschera.
OsvaldoLaviosa
Utente Senior
Messaggi: 4278
Iscritto il: 06 apr 2012, 16:17
Località: Conversano

Re: Dlookup e campo in una maschera

Messaggioda OsvaldoLaviosa » 07 dic 2017, 11:09

Premesso che continuo ad avere forti dubbi sulla normalizzazione del tuo database, ma i campi Barcode e Codice a cosa fanno riferimento? C'è qualche altra tabella (gerarchicamente superiore) che li alimenta? Se sì, puoi descrivere i nomi campi?
Dragonlance
New Entry
Messaggi: 5
Iscritto il: 07 dic 2017, 09:56

Re: Dlookup e campo in una maschera

Messaggioda Dragonlance » 07 dic 2017, 11:17

C'è una sola tabella ed è Tabella_inserimento.
I campi Barcode e Codice nella Tabella_inserimento vengono immessi a mano
La tabella collegata in ODBC serve solamente per la dlookup sul valore immesso di [Barcode] che restituisce [codice]
OsvaldoLaviosa
Utente Senior
Messaggi: 4278
Iscritto il: 06 apr 2012, 16:17
Località: Conversano

Re: Dlookup e campo in una maschera

Messaggioda OsvaldoLaviosa » 07 dic 2017, 11:38

Correggimi se sbaglio: [Barcode] e [Codice] fanno riferimento a una stessa entità (Articolo, Bene, Prodotto...possiamo dargli un nome più proprio?). Perché avere 2 campi?
Dragonlance
New Entry
Messaggi: 5
Iscritto il: 07 dic 2017, 09:56

Re: Dlookup e campo in una maschera

Messaggioda Dragonlance » 07 dic 2017, 12:02

Immagina di andare al supermercato, un oggetto (p.es una scatola di pelati) è identificato da il proprio barcode (univoco) e dal proprio codice (univoco).
Ovvero un oggetto ha il proprio barcode e il proprio codice che sono collegati.
Tuttavia l'oggetto DEVE avere un codice ma può non avere il barcode.
OsvaldoLaviosa
Utente Senior
Messaggi: 4278
Iscritto il: 06 apr 2012, 16:17
Località: Conversano

Re: Dlookup e campo in una maschera

Messaggioda OsvaldoLaviosa » 07 dic 2017, 12:46

Per me nella Tabella_Inserimento devi avere un solo campo (magari sfrutti una casella combinata) che mostri solo il "campo più conveniente"...mi pare di capire che Barcode è più rapido con la pistola, mentre Codice va digitato a mano.
Perché non hai una tabella Prodotti con i campi:
IDProdotto
Barcode
Codice

o più semplicemente

Codice
Barcode

Scegli tu quale campo deve essere "chiave primaria", poi relazioni Prodotti uno-a-molti Tabella_Inserimenti.

Per risolvere il tuo problema Barcode o Codice da "inserire", credo che dovresti giocare con un codice VBA che ti cambi alcune proprietà "cruciali" della casella combinata...ma prima di andare oltre, vorrei che tu comprendessi tutti questi aspetti che ho descritto.
Dragonlance
New Entry
Messaggi: 5
Iscritto il: 07 dic 2017, 09:56

Re: Dlookup e campo in una maschera

Messaggioda Dragonlance » 07 dic 2017, 13:24

Ti ringrazio delle indicazioni ma non sono approdato a nulla.
Che dovessi arrivare a scrivere del codice l'avevo già intuito ma, probabilmente, il mio problema è troppo astratto per una "rapida" soluzione.
Vedrò di leggermi qualche libro a riguardo magari partendo dalla normalizzazione.
Angelo_Tbp
Utente Senior
Messaggi: 359
Iscritto il: 15 gen 2014, 23:13

Re: Dlookup e campo in una maschera

Messaggioda Angelo_Tbp » 09 dic 2017, 19:20

Dragonlance ha scritto:OMESSO...

Ho infine una form (Maschera_inserimento) che deve andare a scrivere i valore immessi in Tabella_inserimento con le seguenti regole:
Inserisco il [Barcode] e tramite un Dlookup mi restituisce il [Codice] prelevandolo da Tabella_linkata
OPPURE, se non è disponibile il [Barcode] (e qui mi sono fermato..)
inserisco il [codice]

Per ambedue i casi sopra
inserisco la [Quantità]

Non so quindi come gestire il campo [Codice] nella form Maschera_inserimento con le due possibilità in modo che comunque il lavore immesso o "dlokuppato" siano scritte nel campo [Codice] della Tabella_inserimento.
Vi ringrazio per l'aiuto che vorrete darmi.


Buonasera,
a volte quello che manca è proprio il passaggio logico tra un'operazione e l'altra...come effettui gli inserimenti nella maschera_inserimento?
- Scrivi il [barcode] oppure lo inserisci mediante lettore di codi a barre?
- il "dlokuppamento"lo fai mediante pressione di un pulsante quando hai già inserito il codice, oppure hai inserito la funzione nella proprietà "valore predefinito" del controllo che ha l'origine dati nel campo [codice]...
- è il [barcode] che non c'è fisicamente nel prodotto (un prodotto senza codice a barre???) oppure è il [codice] ad esso associato che non viene trovato nella tabella cui punta il dlookup?
- oppure hai adottato una strategia differente da quelle sopra?

In base al modo in cui interagisci con il form vi sono diverse possibili soluzioni...
io farei cosi:
1) Maschera_inserimento basata su tabella_inserimento;
2) Calcolo del valore del campo [codice] su chiamata ---> ovvero esecuzione di dlookup su pressione pulsante che processa il [barcode] del record corrente e, in particolare, se trova una corrispondenza restituisce il codice... se non la trova restituisce N/D e magari ti chiede di inserire un nuovo codice...
La calma é la virtù dei forti. Arrabbiarsi non serve a nulla.

Torna a “Microsoft Access”

Chi c’è in linea

Visitano il forum: Nessuno e 30 ospiti