FUNZIONE SIMILE AL DLOOKUP

di il
27 risposte

27 Risposte - Pagina 2

  • Re: FUNZIONE SIMILE AL DLOOKUP

    Ciao Gianni

    Ti rispondo per punti:
    Marcdreamer ha scritto: ?26 mar 2020, 12:34
    Ciao a tutti
    Io avrei questo problemino:
    Ho una maschera "COMPROPRIETARI"
    Singola o continua?
    Su quale Tab Poggia?
    Maschera continua e poggiava sulla tblComproprietari, ora (grazie al suggerimento di Alex) su una query che prende i dati della tblAnagrafiche (CF e Denominazione) e della tblComproprietari
    in cui inserisco tramite un'altra maschera "CERCA COMPROPRIETARIO"
    questa maschera ha come OrigineRecord la tblAnagrafiche...giusto?
    Cosa fai, aggiungi record alla maschera compropietari?...o cos'altro?
    Esattamente, aggiungo i record alla maschera comproprietari
    tblDocumenti:
    IDDOC, IDPROP, IDCOM, DATASTIPULA
    questa tabella da dove salta fuori? ...cosa c'entra con quello che hai descritto sopra?
    C'entra in quanto i comproprietari che seleziono devono far parte di un documento. Di conseguenza, io creo il documento, seleziono i comproprietari e salvo il tutto. Poi, ovviamente dovrò stampare il tutto sotto forma di specifici report
    Il problema mi si pone quando seleziono un altro ID
    Selezioni l'ID...quale...dove ...come ?
    per aggiungere...modificare...cosa...in quale maschera?
    Intendevo sempre dalla maschera Cerca Comproprietario e sempre per aggiungere record
    per valorizzare i campi del secondo comproprietario e i dati del primo record diventano gli stessi del secondo/terzo e così via.
    Cosa vuol dire "valorizzare i campi del secondo....?
    Ci troviamo in una maschera singola con sottomaschera continua?
    No. Sono tre maschere collegate (inserimento documento, comproprietari, cerca comproprietario) e non maschera-sottomaschera
    Valorizzare = intendevo popolare i campi tramite la scelta fatta nell'altra maschera
    Come potete vedere l'IDFA è l'unico campo dei tre ad essere associato all'origine record della tabella (che è quella dei Comproprietari)
    ed è per questo che i dati del primo record vengono modificati una volta scelto l'id per il secondo record.
    ma come lo scegli l'id del secondo record?
    lo scegli per aggiungerlo alla maschera comproprietari?
    stessa risposta di prima: scelgo l'idfa tramite la maschera cerca comproprietario e per inserirlo nella maschera comproprietari
    Ho provato persino con la funzione DLookUp (dopo la selezione dell'ID dell'anagrafica), ma poi mi son ricordato di essere in una maschera continua e pertanto non funziona.
    chi lo ha detto che il dlook nelle maschere continue non funziona?
    dove lo metti ? dopo quale azione? con quale codice lo fai?[
    mi pareva di averlo letto in qualche altra discussione ... appena la trovo metto il link.

    Per quanto riguarda il codice, ho fatto diverse prove tramite il click dell'anagrafica (nella maschera cerca comproprietario):
    Private Sub IDFA_DblClick(Cancel As Integer)
    Forms("FRMINSERIMENTOCOMPROPRIETARI")![IDFA] = ME.IDFA
    Forms("FRMINSERIMENTOCOMPROPRIETARI")![CODICEFISCALE] = DLookUp([CODICEFISCALE],[tblAnagrafiche],"[IDFA]=" & ME.IDFA)
    DoCmd.Close
    End Sub

    Ti ho inserito solo la parte relativa del CODICEFISCALE, ma ho fatto la prova anche per la DENOMINAZIONE
    Quindi, il mio quesito è:
    Esiste un modo per precompilare delle caselle di testo non associate senza dover per forza inserirle come campi nella tabella?
    La risposta è sempre si!
    In controlli non associati? ma allora ti servono solo per vederli?
    Si la domanda era riferita ai controlli non associati perché quando chiudevo e riaprivo la maschera COMPROPRIETARI senza cambiare IDDOC, visualizzavo solo l'IDFA e non il CODICEFISCALE e la DENOMINAZIONE.
    Cioè il record era correttamente salvato, ma riuscivo solo a vedere l'IDFA (che essendo un numero non mi dice assolutamente - tratto più di mille anagrafiche e ricordarmi tutti i codici IDFA è un po' un problemino )

    Spero di essere stato chiaro. In ogni caso, attualmente ho risolto con il suggerimento proposto da Alex
  • Re: FUNZIONE SIMILE AL DLOOKUP

    Salve
    ti ringrazio per la risposta anche se avete risolto.
    Saluti alla prossima.
  • Re: FUNZIONE SIMILE AL DLOOKUP

    Gianni spiega l'uso del Dlookup nelle maschere continue... ho qualche perplessità in merito.
    Grazie
  • Re: FUNZIONE SIMILE AL DLOOKUP

    @Alex ha scritto:


    Gianni spiega l'uso del Dlookup nelle maschere continue... ho qualche perplessità in merito.
    Grazie
    Salve Alex
    l'ho fatto da qualche parte, comunque faccio una prova veloce e la posto.
    Saluti
  • Re: FUNZIONE SIMILE AL DLOOKUP

    Eccomi !
    nella riga del record inserisco un controllo non associato "MyTxtLook"
    nel controllo origine :
    =IIf(IsNull([IdCliente]);"";DLookUp("[Indirizzo]";"[TbClienti]";"[Idcliente]=" & [IdCliente]))
    Per la prova non ho cercato l'idCliente con una CasellaCombinata ma digitando il dato nel controllo "idCliente".
    E' chiaro che nel caso in specie avrei potuto usare la combo con il metodo column ma nel caso ho usato
    il dlook per provare che funziona.

    Saluti

    Confermo la variante su clik dell'idcliente o
    su corrente della forms in un controllo nella testata della maschera
    Me.MioIndirizzo = DLookup("Indirizzo", "TbClienti", "[Idcliente]=" & [IdCliente])
  • Re: FUNZIONE SIMILE AL DLOOKUP

    Ma se hai più records... come vengono valorizzati i controlli non associati dei records non attivi...? (Con lo stesso valore del.corrente...)
    Ovvio.chensenhai solo 1 record funziona...
  • Re: FUNZIONE SIMILE AL DLOOKUP

    @Alex ha scritto:


    Ma se hai più records... come vengono valorizzati i controlli non associati dei records non attivi...? (Con lo stesso valore del.corrente...)
    Ovvio.chensenhai solo 1 record funziona...
    Ma no...Alex sono 2 ipotesi :
    la prima è questa:
    nella riga del record inserisco un controllo non associato "MyTxtLook"
    nel controllo origine :
    CODICE: SELEZIONA TUTTO

    =IIf(IsNull([IdCliente]);"";DLookUp("[Indirizzo]";"[TbClienti]";"[Idcliente]=" & [IdCliente]))
    La seconda ipotesi:
    "su Corrente" o su Clik
    può essere utile quando non abbiamo uno spazio sufficiente nella riga, ed allora come specificato
    in un controllo nella testata della maschera
    CODICE: SELEZIONA TUTTO

    Me.MioIndirizzo = DLookup("Indirizzo", "TbClienti", "[Idcliente]=" & [IdCliente])
    si guarda uno per volta

    Saluti
  • Re: FUNZIONE SIMILE AL DLOOKUP

    Si parliamo solo della 1° si valorizza solo il record corrente...non la vedo molto in linea... oltretutto spendo che l'autolookup delle queries funziona correttamente per questi scopi...
  • Re: FUNZIONE SIMILE AL DLOOKUP

    @Alex ha scritto:


    Si parliamo solo della 1° si valorizza solo il record corrente...
    No Alex si valorizzano tutti i record che hanno un "IdCliente" nel record tant'è che ho inserito una iif perchè con il record Null mi dava errore.
    Saluti
  • Re: FUNZIONE SIMILE AL DLOOKUP

    Gianni, puoi postare cortesemente un Esempio, perchè contino a non rendermi conto.

    Prese 2 Tabelle Relazionate 1-M,
    Tb1 con IdPK e Descrizione
    1 Prima Prova
    2 Seconda Prova

    Tb2 IdDetail, Nome, IdPK(relazione a Tb1)
    1 Elemento1 1
    2 Elemento2 1
    3 Elemento3 1
    4 Elemento4 2
    5 Elemento5 2
    6 Elemento6 2

    Tb1(1)---(M)Tb2

    Ho fatto una prova veloce in una Maschera Contunua basata su Tb2... inserendo nel Corpo un Controllo con OrigineControllo
    
    =DLookUp("Descrizione";"tbl1";"IdPK=" & [IdPK]) & " - " & [IdPK]
    Nella sostanza per ricavare la.descrizione del record lati1 mi pare simuli adeguatamente la situazione da te proposta.

    Ho poi concatenato nell'origine IdPK per vedere se cambia, e come immaginavo questo cambia, ma quello che non viene Risolto è il Dlookup... e mi trovo in tutta la Maschera la Descrizione tutti UGUALI ovviamente.

    1 Elemento1 Prima Prova - 1
    2 Elemento2 Prima Prova - 1
    3 Elemento3 Prima Prova - 1
    4 Elemento4 Prima Prova - 2
    5 Elemento5 Prima Prova - 2
    6 Elemento6 Prima Prova - 2
    0 ------------ Prima Prova - 0 (questo è il Nuovo Record)
    Probabilmente sbaglio qualche cosa...
  • Re: FUNZIONE SIMILE AL DLOOKUP

    Scusa se arrivo in ritardo oggi è stata una giornataccia:
    Fino alle 10 sono uscito a fare una passeggiata... in terrazza
    poi sono uscito sul balcone del soggiorno, sono stato alla Agenzia delle Entrate, all'Inps ed alle Poste.....on line
    ecco il link
    https://www.dropbox.com/sh/cdr5tfaotxx9ejc/AABZa1epokaVJW296wA4s1c8a?dl=0
  • Re: FUNZIONE SIMILE AL DLOOKUP

    Ok ho capito dove sbagliavo... una "pirlata" formalmente... ma concettualmente pensavo non risolvesse in modo corretto l'estrazione nella Form.

    P.S. sapendo che i Campi di cui si parla sono Relazionali, non possono MAI essere NULL quindi la parte di controllo ISNULL, in questo caso specifico non serve.

    Grazie, porta pazienza ma invecchio.
  • Re: FUNZIONE SIMILE AL DLOOKUP

    Salve Alex

    @Alex ha scritto:


    P.S. sapendo che i Campi di cui si parla sono Relazionali, non possono MAI essere NULL quindi la parte di controllo ISNULL, in questo caso specifico non serve.
    Esatto...avevo fatto una prova veloce, mi dava errore se non inserivo l'idCliente ed avevo risolto con la iif .
    Grazie, porta pazienza
    ma figurati
    ...invecchio
    zitto! il nemico ci può sentire
    Saluti
    Gianni
Devi accedere o registrarti per scrivere nel forum
27 risposte