Dati da casella combinata a report

di
Anonimizzato12272
il
14 risposte

Dati da casella combinata a report

SAlve,
è la prima volta che scrivo e non sono un esperto access, quindi mi perdonerete.
1) dubbio
Ho preparato una maschera "fattura" in cui c'è una casella combinata da cui viene scelto il comune del destinatario e, in automatico in 2 caselle di testo attigue, la maschera inputa la provincia e il cap.
Per l'estrazione automatica (della provincia e del cap) ho usato la seguente istruzione nei campi testo relativi:
=[CasellaCombinata51].[column](1) per estrarre la provincia del comuhne prescelto
=[CasellaCombinata51].[column](2) per estrarre il cap dewl comune prescelto.

Per automatizzare tale estrazione nel report come si fa?
Ho provato con la stessa istruzione ma non funzione, inserisce solo il campo riferito al comune,omettendo provincia e cap (che restano bianchi)!


2° dubbio
Ho archiviato circa 50 fatture, ognuna corrispondente ad una pagina sul report;
Ho inserito un pulsante che dalla maschera mi passa al report: tuttavia se, ad esempio, sono sulla maschere della fattura 25 e vado nel report mi trovo alla fattura 1, per stampare devo indicare da pag. 25 a 25. C'è la possibilità di spostasi direttamente sul report corrispondente all maschera visualizzata,senza doverla ricercare manualmente?
Grazie

14 Risposte

  • Re: Dati da casella combinata a report

    Dubbio 1)
    Sei sicuro di aver impostato la casella combinata nella stessa maniera della maschera? Intendo dire che la casella combinata deve avere sempre 3 colonne di riferimento e soprattutto le colonne 2-3 (rispettivamente [column](1) e [column](2)) devono essere visibili, cioè con cm n>0. [CasellaCombinata51] va sostituito con il [nome controllo casella combinata che sta nel report] che molto probabilmente si chiama diversamente.

    Dubbio 2)
    Non so come tu abbia realizzato il clic-pulsante---->apertura-report, se con procedura guidata oppure hai associato una azione macro ApriReport. Almeno in quest'ultimo caso occorre aggiungere una WHERE con la seguente sintassi:
    [Maschere]![NomeMaschera]![CampoID]
    Non posso aiutarti se devi modificare il codice Visual Basic associato al clic-pulsante...attendi un suggerimento da utente più esperto.
  • Re: Dati da casella combinata a report

    Scusate se mi intrometto ma ho scelto questo post perchè è quello dal titolo più vicino alla mia esigenza.
    Ho una casella combinata in una sottomaschera che mi da la possibilità di immettere preimpostati valori.
    Poi ho la stessa casella combinata (forse sta qui il mio errore) in un' altra sottomaschera (di un' altra maschera) dove mi fa vedere l' elenco dei valori immessi (dalla sottomaschera di prima) per quel record della maschera. In qest' ultimo caso però, non vorrei che cliccando sulla destra della combo mi facesse verere l' elenco dei dati da poter immettere perchè già quello che mi propone è quello giusto. Come fare per togliere la freccetta del menù a tendina? Grazie.
  • Re: Dati da casella combinata a report

    Grazie Osvaldo per le risposte.
    Dubbio 1:
    se ho ben capito, devo inserire una combo anche nel report?
    e 2 caselle di testo per estrarre le informazioni richieste (comune, prov. cap)?

    dubbio 2: potresti precisarmi meglio, per favore, la condizione Where?
    La maschera si chiama fatturazione, deriva da una tabella in cui ho inserito un ID (chiave primaria).
    Grazie
  • Re: Dati da casella combinata a report

    Filippo70 ha scritto:


    Come fare per togliere la freccetta del menù a tendina?
    In visualizzazione struttura maschera, clicca con il mouse destro dentro il campo casella combinata e scegli Cambia in | Casella di testo.
  • Re: Dati da casella combinata a report

    vitus ha scritto:


    Dubbio 1:
    se ho ben capito, devo inserire una combo anche nel report?
    e 2 caselle di testo per estrarre le informazioni richieste (comune, prov. cap)?
    Per come lo hai descritto tu: sì, l'ho anche testato e funziona.
    Tieni però presente che un report serve a mostrare/stampare, quindi una volta fatta la scelta del valore quella è e basta. Che utilità ha una combo in un report? Impostare il tutto in questa maniera non è pertinente, mentre sulle maschere ha un effetto più significativo ed utile.

    vitus ha scritto:


    dubbio 2: potresti precisarmi meglio, per favore, la condizione Where?
    La maschera si chiama fatturazione, deriva da una tabella in cui ho inserito un ID (chiave primaria).
    Dovresti dirmi come hai costruito l'azione clic del pulsante che apre il report. Io ti posso rispondere con una macro, perchè quella so usare. Questa la mia procedura:
    1) Apri una macro in visualizzazione struttura
    2) Nel primo rigo azioni scrivi ApriReport, sotto devi specificare il nome del report e dove trovi scritto WHERE ci scrivi dentro la sintassi che ti ho suggerito
    3) Salva con nome la macro
    4) Vai in visualizzazione struttura maschera
    5) Clicca con il mouse destro sul pulsante (ApriReport) e scegli Proprietà, poi scheda Eventi
    6) Alla proprietà "Su clic" devi associare il nome della macro costruita ai punti 1)/3)
    7) Salva la struttura maschera
  • Re: Dati da casella combinata a report

    CIao e grazie ancora
    Il pulsante è collegato ad una macro (apri report).
    Nella casella where dovrei scrivere:
    [Fatturazione]![IDfatt]?
    Infatti la chiave primaria è legata ad un campo che si chiama,appunto, IDfatt.

    Per il dubbio 1 è preferibile,dato che non ha senso una combo in un report,collegarla ad una query?
    Grazie
  • Re: Dati da casella combinata a report

    vitus ha scritto:


    Il pulsante è collegato ad una macro (apri report).
    Nella casella where dovrei scrivere:
    [Maschere]![Fatturazione]![IDFatt]

    vitus ha scritto:


    Per il dubbio 1 è preferibile,dato che non ha senso una combo in un report,collegarla ad una query?
    Esatto! Hai capito bene!
  • Re: Dati da casella combinata a report

    OsvaldoLaviosa ha scritto:


    Filippo70 ha scritto:


    Come fare per togliere la freccetta del menù a tendina?
    In visualizzazione struttura maschera, clicca con il mouse destro dentro il campo casella combinata e scegli Cambia in | Casella di testo.
    Questa strada l' avevo già provata ma la sottomaschera mi rende il campo [ID] anzichè il campo [cognome]; essendo una relazione "molti a molti", la sottomaschera è basata sulla tabella "fittizia" dove ho solamente i campi [ID] delle varie tabelle. Forse la sottomaschera non va collegata a quella tabella? Ho provato a collegarla alla tabella "disegnatori" (dove ho i campi [ID], [nome] e [cognome] ma non sono riuscito a farmi popolare la sottomaschera con i valori che ho richiesto. O non mi appare nulla, oppure "#nome?"
  • Re: Dati da casella combinata a report

    Filippo70 ha scritto:


    Questa strada l' avevo già provata ma la sottomaschera mi rende il campo [ID] anzichè il campo [cognome]; essendo una relazione "molti a molti", la sottomaschera è basata sulla tabella "fittizia" dove ho solamente i campi [ID] delle varie tabelle. Forse la sottomaschera non va collegata a quella tabella? Ho provato a collegarla alla tabella "disegnatori" (dove ho i campi [ID], [nome] e [cognome] ma non sono riuscito a farmi popolare la sottomaschera con i valori che ho richiesto. O non mi appare nulla, oppure "#nome?"
    Hai ragione. Allora proviamo questa strada.
    1) Lascia stare la casella combinata al posto suo.
    2) Devi aggiungere una casella di testo indipendente e scriverci dentro una sintassi simile a questa:
    =[NomeControlloCasellaCombinata].[column](1)
    3) Fai in modo di nascondere la casella combinata.
    Questo mi sembra un ragionamento logico che deve funzionare per forza.

    Però pare brutto che si debba ricorrere a questo artificio, quando si dovrebbe ragionare in maniera più elegante. Prova così: parto dal presupposto che tu per far funzionare la casella combinata ad hoc ti sia servito di una query che abbia il 1° campo ID (colonna 0 per Access) e il 2° campo Testo (colonna 1 per Access), allora
    1) Modifica la casella combinata in casella di testo
    2) Scrivici dentro la seguente sintassi:
    =[NomeQuery].[column](1)
    Credo che così dovrebbe andare a pennello.
  • Re: Dati da casella combinata a report

    Grazie ad Osvaldo una parte dei problemi è risolta, nell'estrazione dei dati da una casella combinata ad un report.
    il nuovo problema è questo:
    se, peresempio, dalla scheda 1 vado alla 2 e scelgo un altro comune (con relativa provincia e cap),nel report si "aggiorna" tutto alla nuova scelta.
    In pratica tutte le fatture evidnzieranno l'ultimo comune scelto.
    C'è rimedio?Tornare al caro vecchio excel?
    Grazie

    PS: persiste, invece, il problema del pulsante (macro) apri report.
    Se sono, ad esempio, sulla fattura 30 e premo il pulsante, il report mi visualizza la fattura 1!
    Ho cercato di inserire le condizioni where,ma non funge. In particolare nel campo where ho scritto:
    =[Maschere]![Fatturazione]![Fattura n.]
    Help me!
  • Re: Dati da casella combinata a report

    vitus ha scritto:


    se, peresempio, dalla scheda 1 vado alla 2 e scelgo un altro comune (con relativa provincia e cap),nel report si "aggiorna" tutto alla nuova scelta.
    In pratica tutte le fatture evidnzieranno l'ultimo comune scelto.
    C'è rimedio?
    Ovvio, ma tu cosa vorresti altrimenti?

    vitus ha scritto:


    =[Maschere]![Fatturazione]![Fattura n.]
    Che cosa è [Fattura n.]? Devi scriverci dentro il nome del campo ID...avevi detto che si chiamava [IDfatt]
  • Re: Dati da casella combinata a report

    OsvaldoLaviosa ha scritto:


    vitus ha scritto:


    se, peresempio, dalla scheda 1 vado alla 2 e scelgo un altro comune (con relativa provincia e cap),nel report si "aggiorna" tutto alla nuova scelta.
    In pratica tutte le fatture evidnzieranno l'ultimo comune scelto.
    C'è rimedio?
    Ovvio, ma tu cosa vorresti altrimenti?

    Mi servirebbe che sfogliando il report (es anteprima di stampa) ogni pagina (fattura) evidenziasse l'esatto indirizzo (e non l'ultimo inserito), altrimenti se,per esempio, inserisco la fattura 54 e mi chiedono una ristampa della fattura 25 sono costretto a ricordarmi (o a salvare a parte) l'esatto indirizzo della 25, altrimenti anche la fattura 25 avrà l'indirizzo della fattura 54 (ultima inserita).
    Poi ho notato che questo aggiornamento automatito agisce anche sulla maschera!!

    vitus ha scritto:


    =[Maschere]![Fatturazione]![Fattura n.]
    Che cosa è [Fattura n.]? Devi scriverci dentro il nome del campo ID...avevi detto che si chiamava [IDfatt]
    Ho risolto, avevo sbagliato io.
    Grazie
  • Re: Dati da casella combinata a report

    vitus ha scritto:


    Mi servirebbe che sfogliando il report (es anteprima di stampa) ogni pagina (fattura) evidenziasse l'esatto indirizzo (e non l'ultimo inserito), altrimenti se,per esempio, inserisco la fattura 54 e mi chiedono una ristampa della fattura 25 sono costretto a ricordarmi (o a salvare a parte) l'esatto indirizzo della 25, altrimenti anche la fattura 25 avrà l'indirizzo della fattura 54 (ultima inserita).
    Poi ho notato che questo aggiornamento automatito agisce anche sulla maschera!!
    Allora dovresti avere 2 pulsanti sulla maschera.
    1) Uno resta quello che avevi e ti filtra IDfatt in base al valore corrente in maschera. Sia chiaro che il report si autofiltra perchè c'è quella maschera aperta che agisce come filtro attraverso la WHERE. In assenza di ciò il report lavora normalmente.
    2) Un altro pulsante apre il report senza alcun vincolo e puoi scorrerlo liberamente.
  • Re: Dati da casella combinata a report

    vitus ha scritto:


    SAlve,
    è la prima volta che scrivo e non sono un esperto access, quindi mi perdonerete.
    1) dubbio
    .....
    Sicuro che sia la scelta giusta usare delle Combo in un Report...?
    Hai valutato l'ipotesi di usare le Query introducendo le Tabelle che Popolano le COMBO al fine di fare un AutoLookup dei Campi relazionati ed avere in questo modo nella Query tutti i campi necessari per valorizzare in modo Nativo i controlli...?

    vitus ha scritto:


    2° dubbio
    ....
    Grazie
    Credo che quì tu abbia gestito male la cosa... era opportuno che il REPORT generasse la fattura del solo ID, quindi Filtrare l'origine in modo da Puntare alla SINGOLA FATTURA...
    
    DoCmd.OpenReport "ReportName", acViewPreview, , "[RecordID] = " & [RecordID]
    In questo modo ad ogni spostamento di Record nella pagina aprendo il Report hai sempre la visualizzazione della Fattura corretta, poi se hai l'esigenza di Stampare tutto, allora stampi tutto rimuovendo il FILTRO...

    Questo perchè non esiste un metodo NATIVO per fare quello che chiedi, ci sono accrocchi possibili usando SendKeys... ma io eviterei queste cose...!

    la stampa immediata invece può essere pilotata su una specifica pagina o un Range di pagine usando il metodo PrintOut...
    
    DoCmd.OpenReport strReport, acViewPreview, , , acHidden
    ' Eventuali verifiche e personalizzazioni...
    DoCmd.SelectObject acReport, strReport
    DoCmd.PrintOut acPages, daPagina, aPagina
Devi accedere o registrarti per scrivere nel forum
14 risposte