Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Access 2010] Indicizzare un campo su una query

    Come da oggetto sto cercando un modo per indicizzare il primo campo restituito da una query senza utilizzare il VBA.

    Es.

    Campo1----Campo2
    1-------------Valore del campo della tabella inserita nella query
    2-------------Valore del campo della tabella inserita nella query
    3-------------Valore del campo della tabella inserita nella query
    4-------------Valore del campo della tabella inserita nella query
    5-------------Valore del campo della tabella inserita nella query

    Qualcuno ci ha già sbattuto la testa? il vba è troppo lento per la mole di dati che devo gestire.. e ha un limite di esecuzione fino a 32k di record, poi va in overflow

  2. #2
    Ci sono riuscito ma la soluzione è pessima..

    Campo1: Mettiamo il campo da indicizzare, ipotiziamo che si chiami C1 e deriva dalla Tab1

    Campo2 calcoliamo il ranking con la seguente formula:
    Ranking: (Select Count (*) from Tab1 Where [C1] < [emp_Tab1].[C1]+1;)

    emp_Tab1 è il nome della tabella che ho inserito nella query xò per poter fare questo tipo di espressione gli assegno un alias con le proprietà

    Il risultato sarà questo:

    Valori di C1:

    Prova
    pippo
    pippo
    Pluto
    Nonno

    Risultato:

    Prova 1
    pippo 2
    pippo 2
    pluto 3
    nonno 4

    Se volete una sequenza unica raggruppate il campo con una query precedente al ranking..

    A quanto sembra tramite access è l'unico sistema (se qualcuno ne conosce altri ben vengano!)
    Questo sistema è LENTO! più del VBA perchè esegue una query per ogni record letto...
    Se leggete da una query che fa già diversi calcoli fate notte..

    Applicherò questo metodo solo se devo farlo su una base dati superiore ai 32k di record perchè il VBA non va oltre.. :( va in overflow...

    Ormai che ci sono vi riporto anche la funzione VBA (una cavolata)
    codice:
    Option Compare Database
    
    Public Indicizza As Integer
    
    Function Conteggia(testo As String)
        Indicizza = Indicizza + 1
        Conteggia = Indicizza
    End Function
    Ho scritto un po' a braccio.. spero sia tutto chiaro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.