Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    274

    [VB6] - ordine alfbateci sql

    Salve ragazzi sto portando avanti un piccolo progettino per un gestionale e mi sono bloccata davanti a questo problema

    Recupero tramite sql tutte le voci di una tabella e metto in un combo solo cognome e nome, la stringa che utilizzo è la seguente:

    sql = "SELECT * FROM Anagrafica where ID = " & Me.cboClienti.ItemData(Me.cboClienti.ListIndex)

    vorrei fare in modo che però l'elenco mi venisse in ordine alfabetico, cosa che invece non fa.

    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    274
    chiedo scusa per il doppio post, admin cancellatene pure uno, ci mancherebbe.

    Grazir

  3. #3
    Devi aggiungere alla fine della Query:
    codice:
    ORDER BY CampoSecondoIlQualeVuoiOrdinare ASC/DESC
    ASC = Ordine crescente
    DESC = Ordine Decrescente

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    274
    sbaglierò sicuramente io ma purtroppo non mi funziona

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    274
    Metto il pezzetto di codice così da essere più chiaro

    Io popolo il combo così:

    Dim dbsDati As Database
    Dim rstAnagrafica As Recordset
    Dim sql As String
    Dim Anagrafica As Recordset
    Dim riga As Long


    Set dbsDati = OpenDatabase(PathDatabase & "database\dati.mdb")
    Set rstAnagrafica = dbsDati.OpenRecordset("Anagrafica")

    Set dbsComuni = OpenDatabase(PathDatabase & "database\Comuni.mdb")
    Set rstComuni = dbsComuni.OpenRecordset("Comuni")
    rstComuni.Index = "COMUNI2L"



    Do While Not rstAnagrafica.EOF = True
    cboClienti.AddItem rstAnagrafica!Cognome & " " & rstAnagrafica!Nome
    cboClienti.ItemData(cboClienti.ListCount - 1) = rstAnagrafica!ID
    rstAnagrafica.MoveNext
    Loop


    Poi quando seleziono un nominativa nell'evento click del combo faccio:

    sql = "SELECT * FROM Anagrafica where ID = " & Me.cboClienti.ItemData(Me.cboClienti.ListIndex)

    Vorrei fare in modo che quando apro il combo la lista dei nominativi sia in ordine alfabetico.

    Grazie

  6. #6
    sql = "SELECT * FROM Anagrafica where ID = " & Me.cboClienti.ItemData(Me.cboClienti.ListIndex) ORDER BY nome_tuo_campo ASC


    aggiungi la parte in grassetto,al posto di nome_tuo_campo metti il campo della tabella del db in base a cui fare l'ordinamento.
    mic

  7. #7
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    Originariamente inviato da michele79
    sql = "SELECT * FROM Anagrafica where ID = " & Me.cboClienti.ItemData(Me.cboClienti.ListIndex) & " ORDER BY nome_tuo_campo ASC "


    aggiungi la parte in grassetto,al posto di nome_tuo_campo metti il campo della tabella del db in base a cui fare l'ordinamento.
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  8. #8



    a cosa servirebbe la tua risposta quotando la mia!?
    mic

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    274
    Ho fatto quello che mi ha scritto:

    sql = "SELECT * FROM Anagrafica where ID = " & Me.cboClienti.ItemData(Me.cboClienti.ListIndex) ORDER BY Cognome ASC

    Ma purtroppo mi restituisce questo errore:

    Errore di sintassi.

    Personalmente credo che il mio problema sta nella routine di carimento dei dati, questa:

    Function RiempiComboPazienti()

    Dim dbsDati As Database
    Dim rstAnagrafica As Recordset
    Dim sql As String
    Dim Anagrafica As Recordset
    Dim riga As Long


    Set dbsDati = OpenDatabase(PathDatabase & "database\dati.mdb")
    Set rstAnagrafica = dbsDati.OpenRecordset("Anagrafica")

    Set dbsComuni = OpenDatabase(PathDatabase & "database\Comuni.mdb")
    Set rstComuni = dbsComuni.OpenRecordset("Comuni")
    rstComuni.Index = "COMUNI2L"


    Do While Not rstAnagrafica.EOF = True
    cboClienti.AddItem rstAnagrafica!Cognome & " " & rstAnagrafica!Nome
    cboClienti.ItemData(cboClienti.ListCount - 1) = rstAnagrafica!ID
    rstAnagrafica.MoveNext
    Loop

    End Function


    Perchè già da qui carica le voci del database nel combo NON in ordine alfabetico.

    Grazie per l'aiuto.

  10. #10
    Personalmente credo che il mio problema sta nella routine di carimento dei dati...
    sicuramente, ho capito quello che vorresti ottenere, ma il problema non è solo nella funzione di caricamento della combo. La query va costruita così:
    codice:
    sql = "SELECT * FROM Anagrafica where ID = " & Me.cboClienti.ItemData(Me.cboClienti.ListIndex) & "  ORDER BY Cognome ASC"
    altrimenti è normale che ti dia quell'errore!
    Prova a vedere tra le proprietà di rstComuni se c'è una funzione "Sort"...
    Ma la Combo nel VB6 non ha la proprietà "Sorted" o una cosa del genere?

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.