+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Report di MS Access

  1. #1
    Ray
    Ray non è in linea Novello
    Post
    40

    Report di MS Access

    Ciao a tutti,
    è la prima volta che mi affaccio ad un forum, perciò Vi chiedo di portare pazienza se il mio intervento non rispetta appieno tutte le regole della comunità. Conto di imparare col tempo.

    Vengo al dunque:
    mi sono da poco avvicinato ad MS Access 2007 e VBA per rendere più funzionale e razionale certi aspetti del mio lavoro di ufficio e gradirei il Vostro aiuto per risolvere un problema che mi tiene in scacco da un po’.

    Il problema:
    ho realizzato un database di MS Access per la gestione di alcune centinaia di ditte con le quali ho a che fare per il mio lavoro. Nello specifico ognuna di queste ditte è qualifica per svolgere lavori in una o più categorie ed ognuna delle categorie è suddivisa in più classifiche in base agli importi dei lavori. (Comprendo che quanto finora detto può essere poco chiaro ma il prosieguo aiuterà a comprendere il meccanismo.)

    Ho realizzato tre tabelle che contengono questi dati:
    T_Generale contiene i dati generali delle ditte con chiave primaria ID_Ditta;
    T_Cat_Lav contiene una quarantina di categorie di lavoricon chiave primaria ID_Cat_Lav;
    T_Class_Lav contiene le varie classifiche in cui è suddivisa ogni categoria con chiave primaria ID_Clas_Lav.
    Ho stabilito le necessarie relazioni tra le varie chiavi ed il tutto funziona. MA.

    Per avere una visione generale della situazione, ho realizzato un report che associa ad ogni ditta le categorie cui è associata che ha un aspetto tipo:
    ID_Ditta
    T_Cat_Lav & ID_Clas_Lav
    T_Cat_Lav & ID_Clas_Lav
    T_Cat_Lav & ID_Clas_Lav
    T_Cat_Lav & ID_Clas_Lav

    La questione è che diverse di queste ditta sono associate a 15 o anche 20 categorie; di conseguienza, il report in questione è composto da una quarantina di pagine e non è affatto pratico da consultare.

    La richiesta:
    vorrei (suppongo ricorrendo al VBA), dare al report il seguente aspetto per ridurlo il più possibile disponendo più ricorrenze del medesimo campo sulla stessa rige per fargli assumere un aspetto del tipo

    ID_Ditta
    T_Cat_Lav & ID_Clas_Lav; T_Cat_Lav & ID_Clas_Lav; T_Cat_Lav & ID_Clas_Lav
    T_Cat_Lav & ID_Clas_Lav; T_Cat_Lav & ID_Clas_Lav; T_Cat_Lav & ID_Clas_Lav

    Ringrazio anticipatamente tutti coloro che vorranno guidarmi verso la soluzione.

    Un ciao a tutti ed un grosso grazie a chi vorrà dare il suo contributo.

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,456
    Per fare quello che chiedi devi lavorare con VBA su evento FORMAT della sezione CORPO(oppure dove hai inserito i controlli da popolare), omettere i Controlli associati e mettere un controllo NON ASSOCIATO da popolare aggiungendo le stringhe prelevate dai Campi relativi...!
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  3. #3
    Ray
    Ray non è in linea Novello
    Post
    40

    Prima replica

    Gentilissimo @Alex,

    per prima cosa voglio ringraziarTi per la tempestiva risposta.

    Sicuramente il Tuo suggerimento è per me un utile punto di partenza per fare ricerche, nell'help di Access ed altrove ed imparare.

    Tuttavia, non essendo un utente esperto, non ho mai utilizzato l'evento Format. Perciò, se possibile, potresti reiterare la risposta con maggiore dovizia di particolari?

    Ti ringrazio comunque, anche se non avrai tempo per esaudire questa mia ulteriore richiesta.

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,456
    Faccio un passo in più che non sarà risolutivo, visto che non ho elementi per farlo, ma deve metterti nella condizione di capire come muoverti.

    ID_Ditta
    T_Cat_Lav & ID_Clas_Lav; T_Cat_Lav & ID_Clas_Lav; T_Cat_Lav & ID_Clas_Lav
    T_Cat_Lav & ID_Clas_Lav; T_Cat_Lav & ID_Clas_Lav; T_Cat_Lav & ID_Clas_Lav

    Fai attenzione al cambio ID_Ditta che dovrebbe imporre un Raggruppamento su base ID_Ditta.
    Inserisci una TextBox chiamata [txtConcatena]
    codice:
    Private Const nRecCONC As Integer=3   ' Numero RECORD CONCATENATI
    Private nRec As Integer                        ' Contatore Record
    Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
         Me!txtConcatena.Value=Me!txtConcatena.Value & Me.T_Cat_Lav & " -- " & ID_Clas_Lav & "; "
         If nRec<nRecCONC+1 Then
              Me!txtConcatena.Value=Me!txtConcatena.Value & vbNewLine
              nRec=0
         End if
         nRec=nRec+1
    End Sub
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  5. #5
    Ray
    Ray non è in linea Novello
    Post
    40
    Salve a tutti.

    Cerca e ricerca ho trovato la soluzione ideale (per me) al problema. Dico ideale in quanto realizzabile senza ricorrere ad uno script VB (cosa che non saprei fare).

    Si tratta di una funzione propria di Access. Io uso l'edizione 2007, ma non saprei dire se è disponibile nelle versioni precedenti.

    In pratica, ho realizzato un nuova tabella in cui associo ogni Cat_Lav ad ogni Class_Lav (ovviamente ogni associazione avrà un nuovo ID).
    Quindi, da T_Generale, lavorando in modalità struttura, apro il tab Foglio dati e seleziono il task ricerca guidata; si apre una finestra guida che mi permette di selezionare la tabella contenente le associazioni di categorie e classi come fosse una casella combinata e mi permette di selezionare a mezzo casella di spunta più ricorrenze.

    Spero di essere stato abbastanza chiaro e che questa (per me) piccola scoperta possa essere utile anche ad altri.

    Di nuovo un saluto a tutti.

    PS: fatemi sapere se vi è stata utile.

+ Rispondi al Thread

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi