Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    158

    [vB6] Come aggiornare la caption di un button da database

    Salve a tutti ecco il problema,
    ho su di un form 4 pulsanti che indicano i trattamenti (salone di bellezza) e questi vengono letti da un database ed inseriti nella proprietà caption.
    Fino a qui nulla questio.
    Ho sempre sul form due img di frecce una verso sinistra (indietro) e l'altra verso destra (avanti).
    Vorrei fare questo: quando premo la freccia destra vengano letti i successivi 4 trattamenti ed inseriti al posto dei precedenti...idem se premo la freccia sinistra solo che in questo caso vengano visualizzati i precedenti trattamenti.
    Ps. Il numero dei trattamenti può essere qualsiasi es. 23
    'utilizzo questo per caricare i primi
    Data4.Recordset.MoveLast: Data4.Recordset.MoveFirst
    For i = 0 To 3
    lblServizio(i).Caption = Data4.Recordset.Fields("Servizio")
    txtPrezzo(i).Text = FormatEuro(Data4.Recordset.Fields("prezzo"))
    Data4.Recordset.MoveNext
    Next i

    BOOK = Data4.Recordset.Bookmark

    Grazie

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Se non l'hai già, inserisci nella tabella un campo Numerico progressivo, numerando così i trattamenti.
    Quando carichi i trattamenti li filtri usando una SELECT , più o meno così

    codice:
    Dim lngPrimoTrattamento as Long
    Dim lngUltimoTrattamento as Long
    Dim sSQL As String
    
    lngPrimoTrattamento =1
    lngUltimoTrattamento = lngPrimoTrattamento + 3
    sSQL = "SELECT <elenco_campi> "
    sSQL = sSQL  & " FROM tabella "
    sSQL = sSQL  & " WHERE NumProg BETWEEN lngPrimoTrattamento AND lngUltimoTrattamento "
    Data4.RecordSource = sSQL
    Data4.Refresh
    
    For i = 0 To 3
        lblServizio(i).Caption = Data4.Recordset.Fields("Servizio")
        txtPrezzo(i).Text = FormatEuro(Data4.Recordset.Fields("prezzo"))
        Data4.Recordset.MoveNext
    Next i
    
    BOOK = Data4.Recordset.Bookmark
    Poi con le frecce, vedi qual'è il valore di lngPrimoTrattamento
    per Avanti farai
    lngPrimoTrattamento = lngPrimoTrattamento + 4
    per Indietro
    lngPrimoTrattamento = lngPrimoTrattamento - 4

    Ovviamente dovrai anche verificare ad ogni spostamento:
    - se lngPrimoTrattamento =1, non potrai eseguire Indietro
    - se lngPrimoTrattamento = 21, non potrai eseguire Avanti

    Insomma, più o meno. Controlla perchè ho scritto tutto al volo...

    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    158
    Grazie per avermi risposto.
    purtroppo il problema e che la tbl trattamenti può subire delle cancellazioni e quindi non è detto che il numero progressivo sia continuo quindi avrei bisogno di un qualcosa che selezioni i 4 trattamenti poi i successivi quattro a prescindere dal progressivo.
    Grazie per l'interessamento

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Leggi tutta la tabella in memoria in un array.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    Buona la strada che ti suggerisce oregon. Comunque, anche la soluzione che hai postato non è distante dall'obiettivo. Ciò che non va bene è quella coppia Movelast-MoveFirst: il primo è inutile, il secondo ti fa ripartire sempre dall'inizio della tabella. Dovresti invece sfruttare quel BOOK in cui memorizzi ogni volta il punto in cui ti trovi. Altrimenti a cosa serve?

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da pascan2
    Grazie per avermi risposto.
    purtroppo il problema e che la tbl trattamenti può subire delle cancellazioni e quindi non è detto che il numero progressivo sia continuo quindi avrei bisogno di un qualcosa che selezioni i 4 trattamenti poi i successivi quattro a prescindere dal progressivo.
    Grazie per l'interessamento
    Dov'è il problema?
    Quando elimini un trattamento, riordini il numero progressivo.
    Basta 1 minuto per scrivere la routine per farlo.

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.