Come ottenere la Funzione INDIRETTO di Excell in ACCESS VBA

Anonimo
2018-04-08T10:14:05+00:00

Buongiorno,

sto provando da giorni a risolvere un problema, ma non riesco a venirne a capo.

Ho la necessità di associare un commento a delle fatture, detto commento dipende dal tipo di cliente e dal tipo di documento:

Es. cliente tipo: 01,

     documento: fattura

     commento desiderato: Spettanze relative a numero xxx giornate svolte nel periodo 01/mm/aaaa - 31/mm/aaaa.

     cliente tipo: 02

     documento: fattura

     commento desiderato: Spettanze relative al periodo 01/mm/aaaa - 31/mm/aaaa.

Ho creato una tabella che contiene i campi:

     Tipo Documento

     Tipo Cliente

     Testo 1

     Campo 1

     Testo 2

     Campo 2

    ...

che, facendo riferimento all'esempio di cui sopra, assumono i valori:

   Tipo Documento: FF (fattura)

   Tipo Cliente: 01

   Testo 1: Spettanze relative a numero

   Campo 1: [SommaDiTotGiornate] (campo risultato di una query di aggregazione)

   Testo 2: giornate svolte nel periodo

   Campo 2: Forms![Filtro Fattura]![DataDa] (dove Filtro Fattura è la maschera dalla quale filtro i dati da fatturare)

   Testo 3: - (trattino di separazione)

   Campo 3: Forms![Filtro Fattura]![DataA] (dove Filtro Fattura è la maschera dalla quale filtro i dati da fatturare)

e

   Tipo Documento: FF (fattura)

   Tipo Cliente: 02

   Testo 1: Spettanze relative al periodo

   Campo 1: Forms![Filtro Fattura]![DataDa] (dove Filtro Fattura è la maschera dalla quale filtro i dati da fatturare)

   Testo 2: - (trattino di separazione)

   Campo 2: Forms![Filtro Fattura]![DataA] (dove Filtro Fattura è la maschera dalla quale filtro i dati da fatturare)

   Testo 3: null

   Campo 3: null

Dalla maschera Filtro Fattura, selezionati vari campi per filtrare i dati da fatturare, tra i quali: il cliente, le date di inizio e fine periodo, e altro,

premendo il bottone Esegui, avvio un codice VBA che lancia diverse query, l'ultima delle quali, operando sulla penultima che contiene tra gli altri il campo SommaDiTotGiornate, dovrebbe anche comporre il commento desiderato:

Commento: [Testo 1] & " " & [Campo 1] & " " & [Testo 2] & " " & [Campo 2] ....

Ma invece che ottenere il commento desiderato ottengo:

Spettanze relative a numero  SommaDiTotGiornate giornate svolte nel periodo Forms![Filtro Fattura]![DataDa] - Forms![Filtro Fattura]![DataA]

Non riesco cioè a trovare la sintassi corretta per far riferimento alle variabili contenute in Campo 1, Campo 2, ... che, se non vado errato, in Excell si risoverebbe con la funzione INDIRETTO.

Esiste una soluzione?

Grazie.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

4 risposte

Ordina per: Più utili
  1. Anonimo
    2018-04-09T14:42:04+00:00

    Tu dici "dovrei allegare un sacco di tabelle, maschere e query tra loro correlate..." basta appunto che posti su un sito di condivisione il file ed alleghi il percorso.

    Perchè il dubbio sulla struttura del database, non creato corretament nasce dal fatto che dici "vengono eseguite in sequenza diverse query su diverse tabelle, l'ultima delle quali (Filtro Fatturazione 01) contiene i dati necessari per effettuare la fatturazione" in quanto, teoricamente, questo non dovrebbe avvenire quello che tu chiedi.

    Tu dici "Ho creato una tabella che contiene i campi:TipDoc, CodCli, Testo1, Campo1, Testo2, Campo2, Testo3, Campo3" non dovrebbe servire neanche questa.

    Ecco perchè il file serve, per chiarire questi dubbi ed aiutarti.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-04-09T09:50:01+00:00

    Avevo introdotto la copia schermo di una maschera, ma vedo che non viene riprodotta nel testo:

    Detta maschera è:

    Filtro fatturazione

    Contiene i campi

    DataDa (es. 01/04/2018)

    DataA   (es. 30/04/2018)

    CodCLiDa (es. 00)

    CodCLiA (es. ZZ)

    ...

    COntiene infine il bottone OK per procedere alla fatturazione e il bottone Fine per uscire dalla maschera con un nulla di fatto.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-04-09T09:45:14+00:00

    Dovrei allegare un sacco di tabelle, maschere e query tra loro correlate ... la faccio più semplice sperando di riuscire a spiegarmi.

    Ho la maschera:

    Alla pressione del bottone OK vengono eseguite in sequenza diverse query su diverse tabelle, l'ultima delle quali (Filtro Fatturazione 01) contiene i dati necessari per effettuare la fatturazione. Tra questi sono presenti:

    CodCLi - ossia il codice del cliente

    SommaDiTotGiornate - ossia il totale delle giornate da fatturare

    TipDoc - ossia FF per Fattura, FP per Fattura proforma, NC per nota di credito ....

    A seconda del tipo documento (TipDoc) e del cliente (CodCli) devo introdurre nella stampa della fattura un diverso Testo (Comm1).

    Ad esempio per CodCLi=01 e TipDoc=FF:

              Comm1: Spettanze relative a nr. 4 giornate svolte nel periodo 01/04/2018 - 30/04/2018.

    oppure per         CodCLi=04 e TipDoc=FP

              Comm1: Spettanze relative al periodo 01/04/2018 - 30/04/2018.

    Ho creato una tabella che contiene i campi:

    TipDoc                      

    CodCli  

    Testo1      

    Campo1

    Testo2

    Campo2

    Testo3

    Campo3

    che per i due esempi indicati contiene i record:

       TipDoc = FF

       CodCli =  01

       Testo1 = Spettanze relative a nr.

       Campo1 = SommaDiTotGiornate

       Testo2 = giornate svolte nel periodo

       Campo2= Forms![Filtro Fattura]![DataDa]  (nella maschera sopra visualizzata: 01/04/2018)

       Testo3 = - (trattino di separazione)

       Campo3 = Forms![Filtro Fattura]![DataA]  (nella maschera sopra visualizzata 30/04/2018)

    e

       TipDoc = FP

       CodCli =  04

       Testo1 = Spettanze relative al periodo

       Campo1 = Forms![Filtro Fattura]![DataDa]  (nella maschera sopra visualizzata: 01/04/2018)

       Testo2 = - (trattino di separazione)

       Campo2= Forms![Filtro Fattura]![DataA]  (nella maschera sopra visualizzata: 30/04/2018)

       Testo3 = null

       Campo3 = null

    per ottenere quanto necessario alla stampa della fattura (report :Stampa Fattura), ho un'ulteriore query (Filtro Fatturazione) che utilizza i dati della query Filtro Fatturazione 01 e nella quale ho introdotto il campo Comm1 destinato a contenere il commento desiderato.

    Comm1: [Testo1] & " " & [Campo1] & " " & [Testo2] & " " & [Campo2] & " " & [Testo3] & " " & [Campo3] & "."

    Invece che ottenere il risultato desiderato ottengo, nei due casi esemplificati:

         Comm1: Spettanze relative a nr. [SommaDITotGiornate] giornate svolte nel periodo Forms![Filtro Fattura]![DataDa] - Forms![Filtro Fattura]![DataA].

         Comm1: Spettanze relative al periodo Forms![Filtro Fattura]![DataDa] - Forms![Filtro Fattura]![DataA].

    Domandavo quindi come poter ottenere il risultato desiderato.

    Sperando di essere riuscito a spiegarmi ringrazio per eventuali suggerimenti.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2018-04-08T17:59:56+00:00

    Forse se alleghi un file si riesce a capire che cosa hai fatto e quindi come aiutarti perchè da quello che hai scritto non si riesce a capire poco.

    La risposta è stata utile?

    0 commenti Nessun commento