Non ordinare i dati in una query a campi incrociati

di il
3 risposte

Non ordinare i dati in una query a campi incrociati

Ciao,

ho creato una query a campi incrociati mettendo in colonna una serie di numeri diciamo da 1 a 9 per semplificare, la sequenza è casuale e puo essere 7, 8, 9, 1, 2... oppure 1, 2.. o anche 4, 5 e cosi via.
Quello che mi serve è che la quert a campi incrotiati mi tenga la sequenza esattamente cosi come le viene data invece di ordinarmela come 1,2,3 e cosi via. Si puo fare?

3 Risposte

  • Re: Non ordinare i dati in una query a campi incrociati

    In un sistema LOGICO non esiste l'assenza di un CRITERIO... questo è solo nella tua RIELABORAZIONE illogica, e quando dici di lasciare così come è in realtà lui sta applicando un CRITERIO, e tu devi sapere quale, non puoi lasciarlo al caso.
    Ad Access serve sempre avere un CRITERIO, a questo punto mi chiedo perchè non usi un campo appositamente per gestire l'ordinamento come ti fa comodo...?
  • Re: Non ordinare i dati in una query a campi incrociati

    La query è fatta cosi:

    Tabella A con data di lavorazione
    Tabella B con calendario
    Relazione A--->B

    Il "calendario" conta le settimane da 1 a 52 e mette alla riga 1 la settimana attuale, alla 2 la prossima e cosi via.

    quello che voglio fare è avere la settimana attuale alla prima colonna della query a campi incrociati e cosi via.

    La Query calendario ha gia al record 1 la settimana attuale, alla due la prossima ma la query a campi incrociati me la riordina, ho provato a tenere il dato ordinato per ID della tabella B ma non mi permette di impostarlo nella a campi incrociati.

    Dove gli possi indicare l'ordinamento che deve tenere in intestazione colonna?
  • Re: Non ordinare i dati in una query a campi incrociati

    Creati un campo CALCOLATO che genera un progressivo da 1(settimana attuale) a 52 ultima settimana sfasato della settimana attuale...!

    In linea di massima ti basta SOTTRARRE alla settimana della Data il Numero della Settimana attuale... poi non so come hai gestito le date..!

    Vedi quì:
    http://forum.masterdrive.it/access-79/raccolta-funzioni-manipolazione-date-95382/
    Public Function Date2Week(Optional dtmDate As Variant) As Byte
        ' ------------------------------------------------------
        ' Calcolo formato ISO 8601:1988 standard
        ' Verificati i casi da KB [OK]
        ' [url]https://support.microsoft.com/it-it/kb/200299[/url]
        ' ------------------------------------------------------
        Dim Jan1             As Date
        Dim Sub1             As Boolean
        Dim Ret              As Byte
     
        If IsMissing(dtmDate) Then
            Jan1 = DateSerial(Year(Date), 1, 1)
        Else
            Jan1 = DateSerial(Year(dtmDate), 1, 1)
        End If
         
        Sub1 = (Format(Jan1, "ww", VBA.VbDayOfWeek.vbUseSystemDayOfWeek, VBA.VbFirstWeekOfYear.vbUseSystem) = 1)
        Ret = DatePart("ww", dtmDate, VBA.VbDayOfWeek.vbUseSystemDayOfWeek, VBA.VbFirstWeekOfYear.vbUseSystem) + Sub1
         
        Date2Week = Ret
    End Function
    
    Sicchè se testo la Funzione ho:
    
    ?Date2Week(Date())
     46 
    Quindi se sottraggo alla settimana del Campo data 45(46-1)... ottengo un campo Calcolato che parte da 1(per questa settimana) e sarà progressivo per tutte le date a seguire.
    
    ValoreOrdinamento=Date2Week(CampoData)-(Date2Week(Date())+1)
    Che problema riscontri...?
Devi accedere o registrarti per scrivere nel forum
3 risposte