Report

di il
3 risposte

Report

Salve a tutti, ho una query che mi restituisce le ore di lavoro effettuate da tutti i dipendenti, filtrate per il mese, fin qui tutto bene, quello che vorrei realizzare è, in una Maschera inserire 12 pulsanti si/no equivalenti ai dodici mesi, il report tramite la query mi deve visualizzare la somma delle ore di lavoro dei dipendenti a seconde del o dei flag che spunto. Spero di essermi spiegato bene.
Grazie.

3 Risposte

  • Re: Report

    Ti rispondo in linea teorica. Il report continua a poggiare sulla tua query, ma l'evento che deve scatenare il DoCmd.OpenReport deve avere anche la condizione WHERE fra i suoi argomenti. La WHERE è in pratica un filtro che significa "guardami la situazione dentro la mia maschera". Non riesco a spiegarmi meglio in quanto hai progettato la maschera in una maniera alquanto insolita e sicuramente scomoda nel formulare l'eventuale espressione WHERE che, in questo momento, non sono neanche in grado di elaborare.
  • Re: Report

    In questo caso devi costruire una query 'al volo' con il linguaggio SQL.
    L'uso dei 12 pulsanti [s/n] rende la cosa molto complessa perché dovrai accodare ad una WHERE una condizione OR per ogni pulsante attivato.
    Qualcosa del tipo:
    SELECT campi FROM tabella
    WHERE Mese=1 OR Mese=3 OR Mese = 5 ...
  • Re: Report

    Suggerimento alternativo a quello di Gibra, ma solo per la semplificazione che potrebbe derivarne...
    SELECT * FROM T1
    WHERE Month(CampoData) IN (1,2,6)
    Detto questo, se chiami gli Interruttori con un Nome associato ad un progressivo la generazione della Stringa tra le Parentersi è veloce...
    Int1
    Int2
    Int...
    Int12
    
    Dim iMese As Integer
    Dim sWH  As String
    Dim sSQL As Strign
    For iMese=1 to 12
       sWH=sWH & IIF(Me.Controls("int" & iMese).Value=True;iMese & ",";vbNullstring)
    NExt
    If Len(sWH)>0 Then sWH=Mid$(sWH,1,Len(sWH)-1)
    sSQL="SELECT * FROM T1 WHERE Month(TuaData) IN (" & sWH & ")"
    ....
    Chiaramente allo stesso modo puoi costruire gli OR del predicato di Gibra...
Devi accedere o registrarti per scrivere nel forum
3 risposte