Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354

    [vb6] Riordinare i dati in una DataGrid con una combobox

    C'è un metodo, per far sì che al premere di un tasto si abbia il riordinamento della tabella di un database?
    mi spiego meglio, mi piacerebbe far sì, grazie ad una combobox (dove inserire i valori per cui si vuole riordinare) e ad un pulsante per lanciare l'ordinamento, riordinare i dati di una DataGrid.

    Come posso fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    Invece di inserire i nomi dei campi della tabella in un combobox puoi sfruttare l'evento:
    codice:
    Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
                Valore = DataGrid1.Columns(ColIndex).Caption
                If Rs.State = 1 Then Rs.Close
                Rs.CursorLocation = adUseClient
                StrSql = "select * from tabella order by " & Valore & " ASC"
                Rs.Open StrSql, tuodb, adOpenKeyset, adLockOptimistic
                Set DataGrid1.DataSource = Rs
    End Sub
    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    Ciao, mi da errore in:

    codice:
    If Rs.State = 1 Then Rs.Close
    dicendo "Nessun Oggetto".

    Ho modificato la dicitura 'tuodb' con il nome del database (db_1.mdb)...

    Con questo evento cosa dovrei ottenere? cliccando sulla DataGrid nella colonna che desidero ordinare lui la riordina?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    devi dichiarare:
    Dim Rs As New ADODB.Recordset

    Il percorso del data base vuole completo tipo c:\miodb.mdb
    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    già, avevi ragione...

    ora però mi dice:

    "[microsoft[driver manager ODBC] Nome della origine dati troppo lungo."

    selezionando:

    codice:
    Rs.Open StrSql, "G:\Visual Basic Esempi\DB_1.mdb", adOpenKeyset, adLockOptimistic

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    Cerca di studiare un pochino:

    codice:
    Dim db As New ADODB.Connection
    Dim Rs As New ADODB.Recordset 
    
    Private Sub Form_Load()
       Nome= "G:\Visual Basic Esempi\DB_1.mdb"
       If db.State = 1 Then cn.Close
       db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Nome & ";Persist Security Info=False"
    End Sub
    
    
    Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
                Valore = DataGrid1.Columns(ColIndex).Caption
                If Rs.State = 1 Then Rs.Close
                Rs.CursorLocation = adUseClient
                StrSql = "select * from tabella order by " & Valore & " ASC"
                Rs.Open StrSql, db, adOpenKeyset, adLockOptimistic
                Set DataGrid1.DataSource = Rs
    End Sub

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    è quello che sto provando a fare...ma sulla rete non trovo nulla che mi illustri questi eventi...

    grazie intanto..

    tanto per capirci di più, l'evento mi riordina dal valore più piccolo a quello più alto..e se volessi fare l'opposto? dal più grande al più piccolo?

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    codice:
     Private Valore as String
     Private ValoreP as String, Prec As String 
     Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
                Valore = DataGrid1.Columns(ColIndex).Caption
                If Rs.State = 1 Then Rs.Close
                Rs.CursorLocation = adUseClient
                If ValoreP = Valore Then
                   If Prec = "ASC" Then
                     StrSql = "select * from tabella order by " & Valore & " DESC"
                     Prec = "DESC"
                   Else
    
                     StrSql = "select * from tabella order by " & Valore & " ASC"
                     Prec = "ASC"
                End If
                Rs.Open StrSql, db, adOpenKeyset, adLockOptimistic
                Set DataGrid1.DataSource = Rs
                DataGrid1.Refresh
                ValoreP = Valore
    
    End Sub
    Ti suggerisco dei link dove reperire del codice sorgente:

    http://www.maurorossi.net/

    http://www.biapps.it/vbprogrammer/

    http://www.it-lang-vb.net/home.asp

    sotto archivio trovi: Sorgenti

    MSDN:
    http://msdn.microsoft.com/library/de...vbsamppage.asp

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.