Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2000
    Messaggi
    116

    [Vb6] Popolare datagrid da codice

    Salve, siccome è la prima volta che utilizzo un datagrid, mi spiegate come si crea e come si popola?

    Allora, io effettuo la connessione al db in questo modo:

    codice:
    Set cn = New ADODB.Connection
            Set rs = New ADODB.Recordset
    
            ' APRO LA CONNESSIONE E LANCIO LA QUERY PER RECUPERARE IL RECORD SELEZIONATO
    cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Documents and Settings\Nicola\Desktop\Rubrica\Agenda.mdb"
    rs.Open "SELECT * FROM utenti where " & tipo & " like '" & txtricerca & "'", cn
    
            rs.Close
            cn.Close

    Come devo fare? Io devo inserire nel datagrid tutti i record che mi restituisce la query.

    GRAZIE

  2. #2
    per popolare il datagrid devi assegnargli il recordset...

    codice:
    MyDataGRID.DataSource = rs
    MyDataGRID.DataBind()

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2000
    Messaggi
    116
    Niente non va...

    Mi dice errore con il codice che mi hai postato

    codice:
    risultati.DataSource = rs
    risultati.DataBind()


    Mi dice previsto "=" dopo ()


    Scusate, ma ho cominciato da poco a programmare.

    GRAZIE

  4. #4
    scusa...non avevo visto che era vb6...



    datagrid.datasource= adodb
    datagrid.refresh

  5. #5
    Utente di HTML.it L'avatar di Cozza
    Registrato dal
    Jan 2001
    Messaggi
    467
    adesso è un po' che non uso vb e nn ce l'ho qui in ufficio comunque se non ricordo male l'oggetto datagrid deve essere associato all'oggetto adodc , in quest'ultimo fai il collegamento al db e scrivi la tua query 'di partenza' (nella scheda recordsource), poi nella proprietà datasource della datagrid gli dai la tua adodc che ti sei creato

    mi spiace potrei aver scritto delle inesattezze potrò essere + preciso solo stasera a casa quando avrò davanti i miei progetti vb
    Ho mille libri sotto il letto non leggo più
    ho mille sogni in un cassetto non lo apro più
    parlo da solo e mi confondo e penso
    che in fondo sì sto bene così

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    245
    una volta che hai creato la query la connection e aperto il
    recordset ti basta passagli in pasto il recordset...
    N.B. Molto importante nella proprieta 'colonne' del datagrid
    devi passagli i nomi dei campi della tua query !!!!
    es: datafiled : id
    in più devi aggiungere tanti campi nel datagrid quanti sono nella query... o + se ne hai bisogno...
    codice:
    sqlString="Select * from mia tabella"
    rs.open sqlstring,cn,........
    Set MiaDatagrid.DataSource = rs
    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2000
    Messaggi
    116
    niente... nn va.

    Non sto capendo niente.
    non mi resta che postarvi il codice e vedete un po voi...

    codice:
            Set cn = New ADODB.Connection
            Set rs = New ADODB.Recordset
    txtricerca = txtricerca.Text
    
    cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Documents and Settings\Nicola\Desktop\Rubrica\Agenda.mdb"
    
    rs.Open "SELECT * FROM utenti where " & tipo & " like '" & txtricerca & "'", cn
      
    If Not rs.EOF Then
    
    Frame4.Visible = True
    
    Set risultati.DataSource = rs 
    risultati.Refresh
    
            rs.Close
            cn.Close
                        Else
           
            MsgBox "La ricerca non ha prodotto nessun risultato."
                       End If
    End Sub

    Errore 7004.
    La linea rossa è indicata dal debug come errore.
    Ho provato a creare due colonne di prova nel datagrid ed assegnargli ad ogni una il suo datafile.

    AIUTATEMI

    GRAZIE

  8. #8
    Utente di HTML.it L'avatar di Cozza
    Registrato dal
    Jan 2001
    Messaggi
    467
    fai così

    - non ho capito cosa hai fatto con le colonne della datagrid
    quindi direi di buttarla e rimettere nella form una nuova pulita
    la richiamiamo 'risultati'.
    - metti nella form un controllo adodc, si chiama adodc1 (se vuoi dagli visible=false)

    codice:
    form4.visible=true
    Set cn = New ADODB.Connection
    
    txtricerca = txtricerca.Text
    cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Documents and Settings\Nicola\Desktop\Rubrica\Agenda.mdb"
    Adodc1.ConnectionString = cn.ConnectionString
    Adodc1.RecordSource = "SELECT * FROM utenti where tipo like '" & txtricerca & "'"
    Adodc1.Refresh
    Set risultati.DataSource = Adodc1
    
    If Adodc1.Recordset.EOF Then
        MsgBox "La ricerca non ha prodotto nessun risultato."
    End If
    
    cn.Close
    noterai che ho tolto il recordset rs (inutile xkè il recordset è quello dell'adodc)

    questa soluzione però ti fa vedere la tua query nuda e cruda
    invece se ti prepari le cose da progetto puoi 'giocare' con le proprietà della griglia
    adesso ti posto come fare
    Ho mille libri sotto il letto non leggo più
    ho mille sogni in un cassetto non lo apro più
    parlo da solo e mi confondo e penso
    che in fondo sì sto bene così

  9. #9
    Utente di HTML.it L'avatar di Cozza
    Registrato dal
    Jan 2001
    Messaggi
    467
    - non ho capito cosa hai fatto con le colonne della datagrid
    quindi direi di buttarla e rimettere nella form una nuova pulita
    la richiamiamo 'risultati'.
    - metti nella form un controllo adodc, si chiama adodc1 (se vuoi dagli visible=false)
    - fai click destro - proprietà
    selezioni 'usa stringa di connessione' e ci copi "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Documents and Settings\Nicola\Desktop\Rubrica\Agenda.mdb"
    vai in RecordSource e scrivi in Testo Command (SQL)
    select * from utenti where 1<>1 ' per farti dare un recordset vuoto
    clicca su applica/ok

    - vai sulla datagrid
    - in proprietà-> datasource-> seleziona adodc1
    - fai click destro sulla datagrid -> recupera campi
    se sulla datgrid sbucano fuori i nomi dei campi di utenti
    vuol dire che finora siamo andati bene (c'è anche modo di personalizzare i nomi delle colonne farne sparire quelle che non vogliamo vedere ma per adesso saltiamo oltre)
    codice:
    form4.visible=false
    Set cn = New ADODB.Connection
    
    txtricerca = txtricerca.Text
    
    cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Documents and Settings\Nicola\Desktop\Rubrica\Agenda.mdb"
    Adodc1.RecordSource = "SELECT * FROM utenti where tipo like '" & txtricerca & "'"
    Adodc1.Refresh
    
    If Adodc1.Recordset.EOF Then
        MsgBox "La ricerca non ha prodotto nessun risultato."
    End If
    
    cn.Close
    il codice è quasi uguale ho solo tolto
    Adodc1.ConnectionString = cn.ConnectionString
    e
    Set risultati.DataSource = Adodc1

    in quanto sono cose che facciamo nella 'form grafica'

    Ho mille libri sotto il letto non leggo più
    ho mille sogni in un cassetto non lo apro più
    parlo da solo e mi confondo e penso
    che in fondo sì sto bene così

  10. #10
    Utente di HTML.it L'avatar di Cozza
    Registrato dal
    Jan 2001
    Messaggi
    467
    p.s. non so perchè gli altri ti hanno suggerito solo delle modifiche al codice e non ti hanno parlato del controllo adodc

    per quanto ne so io una datagrid deve essere sempre associata a un controllo adodc
    Ho mille libri sotto il letto non leggo più
    ho mille sogni in un cassetto non lo apro più
    parlo da solo e mi confondo e penso
    che in fondo sì sto bene così

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.