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

    [VB6] Ordinare e visualizzare records Access

    Ciao,
    legggo un file .mdb e metto il contenuto in una listbox

    dim db As Database
    dim recprodotti As Recordset
    Set db = OpenDatabase("c:\prova.mdb")
    Set recprodotti = db.OpenRecordset("prodotti", dbOpenTable)
    if recprodotti.recordcount > 0 then
    recprodotti.movefirst
    while not recprodotti.eof()
    list1.additem recprodotti(1)
    recprodotti.movenext
    wend
    end if
    Come faccio ad ordinare i records in modo crescente o decrescente?

    Esempio:
    il db contiene i valori
    Prodotto 5
    Prodotto 1
    Prodotto 3

    in base ad una selezione vorre poter mostrare in ordine crescente
    Prodotto 1
    Prodotto 3
    Prodotto 3

    o in modo decrescente
    Prodotto 5
    Prodotto 3
    Prodotto 1

    Grazie per l'aiuto in anticipo.
    Dalla vita altrui attingeva la sua oscura magia...
    Membro del Sacro Ordine degli elfi oscuri di Kand

  2. #2
    Utente di HTML.it L'avatar di EngLab
    Registrato dal
    Jan 2006
    Messaggi
    496
    Anzichè richiedere la tabella, richiedi alla connessione al db una query strutturata così (per il crescente):
    codice:
    "SELECT TB.Nome FROM TB ORDER BY TB.Nome;"
    Per il decrescente:
    codice:
    "SELECT TB.Nome FROM TB ORDER BY TB.Nome DESC;"
    Fammi sapere se funge

  3. #3
    Ciao Eng,
    grazie mille per la risposta.

    Usando codice SQL (giusto?) infatti il tutto si semplifica.

    Ho apportato le modifiche così

    Dim db As Database
    Dim recprodotti As Recordset

    Set db = OpenDatabase(percorsodb)
    Set recprodotti = db.OpenRecordset("SELECT * FROM prodotti ORDER BY prodotti.descrizione DESC;")

    If recprodotti.RecordCount > 0 Then
    recprodotti.MoveFirst
    While Not recprodotti.EOF()
    List1.AddItem recprodotti(1)
    recprodotti.MoveNext
    Wend
    End If
    Con SQL mi ci arrabatto visto che lo uso con php/MySql.
    Ho visti che funziona.
    Ti chiedo conferma se è giusta la sintassi, comunque.

    Grazie per la dritta, a buon rendere davvero
    Dalla vita altrui attingeva la sua oscura magia...
    Membro del Sacro Ordine degli elfi oscuri di Kand

  4. #4
    Eng, ormai ne approfitto.
    Il tutto funziona alla perfezione.
    Solo una cosa:
    quando estraggo i dati dal db (leggo sempre da campi di testo alfanumerici) logicamente l'ordinamento mi viene fatto sul tipo di campo.
    Quindi mi succede che l'estrazione mi può restituire che 20 è maggiore di 111.
    Cioè, normlalmente un elenco ordinato con ASC dovrebbe essere :

    11
    20
    111

    Però trattandosi di un campo alfanumerico, giustamente mi estrae:

    11
    111
    20

    Posso modificare la query per ovviare a questo imprevisto o devi necessariamente impostare il campo del db a numerico quando ci sono i numeri?

    Grazie di nuovo.
    Dalla vita altrui attingeva la sua oscura magia...
    Membro del Sacro Ordine degli elfi oscuri di Kand

  5. #5
    Utente di HTML.it L'avatar di EngLab
    Registrato dal
    Jan 2006
    Messaggi
    496
    La query provala prima nel DBMS, se funziona lì, funziona anche nel tuo programma, salvo errori di codice...

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.