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

    [VB6] Aggiornare un datacombo dopo un UPDATE su DB

    Ragazzi ho fatto diecimila ricerche e tentativi ma non riesco ad aggiornare un datacombo dopo aver fatto un update in un DB.
    ho il form2 così:
    codice:
    Private Sub Command1_Click()
        
        Rs3.Open "UPDATE tab_tabella SET nome = '" & NomeNuovo & "' WHERE ID_tab = " & scelta & "", Cn, 1, 3
    Set Rs3 = Nothing
    Form1.DataCombo1.ReFill
    Unload Form2
    End Sub
    Ed il form 1 così:
    codice:
    Rs.Open "SELECT * FROM tab_tabella ", Cn, 1, 3
    
    Set DataCombo1.RowSource = Rs
    DataCombo1.BoundColumn = "ID_tab"
    DataCombo1.ListField = "nome"
    DataCombo1.Refresh
    Ho provato refill, refresh ma non c'è stato verso.
    Come posso fare?
    Grazie

  2. #2
    Non basta fare il Refresh del controllo.
    Devi ricaricare tutti i dati, quindi ti consiglio di scrivere sul Form1 una sub pubblica che si occupa di caricare la datacombo in modo che puoi chiamare tale sub ogni volta che fai un Update sul db:
    codice:
    Private Sub Command1_Click()
       Rs3.Open "UPDATE tab_tabella SET nome = '" & NomeNuovo & "'" _
              & " WHERE  ID_tab = " & scelta & "", Cn, 1, 3
       Set Rs3 = Nothing
       Form1.CaricaCombo
       Unload Form2
    End Sub
    
    'form 1
    Public Sub CaricaCombo()
       Rs.Open "SELECT * FROM tab_tabella ", Cn, 1, 3
    
       Set DataCombo1.RowSource = Rs
       DataCombo1.BoundColumn = "ID_tab"
       DataCombo1.ListField = "nome"
       DataCombo1.Refresh
    End Sub

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    Perfetta come sempre!!
    Ho fatto la public sub come mi hai detto e poi l'ho richiamata nel form load con
    codice:
    Call CaricaCombo
    Ho fatto in modo che anche quello che visualizza all'inizio il datacombo venga aggiornato.
    codice:
    Form1.datacombo.text = rs("nome")
    altrimenti continuava a mostrarmi il vecchio valore finchè non premevo sulla frecetta.
    Grazie mille!

  4. #4
    Originariamente inviato da zetaweb
    Perfetta come sempre!!
    Ho fatto la public sub come mi hai detto e poi l'ho richiamata nel form load con
    codice:
    Call CaricaCombo
    Ho fatto in modo che anche quello che visualizza all'inizio il datacombo venga aggiornato.
    codice:
    Form1.datacombo.text = rs("nome")
    altrimenti continuava a mostrarmi il vecchio valore finchè non premevo sulla frecetta.
    Grazie mille!
    Di niente figurati

    Però se la sub la richiami nella Load del form stesso non c'è bisogno che la dichiari Public... ti basta Private

    Un consiglio...
    Per aggiornare il valore visibile ti conviene utilizzare il BoundText, perchè potresti avere due nomi uguali in elenco; quindi invece di scrivere:
    codice:
    Form1.datacombo.text = rs("nome")
    io scriverei:
    codice:
    Form1.datacombo.BoundText = rs("ID_tab")

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  5. #5
    Ok per boundtext!(Ma in pratica che fa boundtext?Associa il campo all'id che gli passo?).

    Invece se dichiaro la sub come private non funge, così lo rimessa public.

  6. #6
    Originariamente inviato da zetaweb
    Ok per boundtext!(Ma in pratica che fa boundtext?Associa il campo all'id che gli passo?).

    Invece se dichiaro la sub come private non funge, così lo rimessa public.
    Sì esatto, associa il campo all'id


    Ah ok, avevo capito male io quello che avevi detto a proposito della Load

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

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.