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

    [VB6] Ciclo per trovare e modificare i Record

    Qualcuno mi può aiutare in un semplice ciclo di calcolo?

    ho un DB con i campi Codice, Lunghezza e Quantità.

    l'utente deve aggiungere o modificare i record...per far questo pensavo di fare un ciclo...

    se "codice" è uguale allora
    se lunghezza è uguale allora
    modifica "quantità"
    altrimenti "AddNew"
    altrimenti "AddNew"

    però mi incasino non poco..ossia scrivo:

    codice:
    if codice.text = rsDB.Fields(0) then
     if lunghezza.text = rsDB.Fields(1) then
      rsDB.Fields(2) = (rsDB.Fields(2) + quantità.text)
      rsDB.update
     else
      rsDB.AddNew
      rsDB.Fields(0) = codice.text
      rsDB.Fields(1) = lunghezza.text
      rsDB.Fileds(2) = quantitò.text
      rsDB.update
     end if
    ??????
    end if
    ossia così facendo mi esamina solo il primo record...ma ovviamente deve passare tutto il DB.

    Che cicolo devo usare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    I campi chiave della tua tabella sono il codice e la lunghezza?
    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    156
    devi passare per un ciclo di for .La cosa che non mi e' chiara e' se te imposti Codice , Lunghezza e quantita'in tre text box e tutti i record che soddisfano le condizioni di codice e quantita verranno modificati.Nel caso in cui nessuna condizione e' soddisfatta verra aggiunto un nuovo record.
    Se cosi' fosse prova cosi

    Dim i as integer
    For i=1 to Numero record del db(credo rsdb.recorcount)
    if codice.text = rsDB.Fields(0) then
    if lunghezza.text = rsDB.Fields(1) then
    rsDB.Fields(2) = (rsDB.Fields(2) + quantità.text)
    rsDB.update
    else
    rsDB.AddNew
    rsDB.Fields(0) = codice.text
    rsDB.Fields(1) = lunghezza.text
    rsDB.Fileds(2) = quantitò.text
    rsDB.update
    end if
    end if
    rsdb.movenext
    next i


  4. #4
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, se devi modificare tutti i record che hanno codice.text = rsDB.Fields(0) e lunghezza.text = rsDB.Fields(1), ti conviene usare le query.
    Una cosa del genere:
    codice:
    dim numRecAggiornati as long
    strSqlUpdate="UPDATE TuaTabella SET CampoQuantita = (CampoQuantita + " & quantità.text & ") WHERE CampoCodice = " & codice.text & " AND CampoLunghezza = " & lunghezza.text & ";"
    TuaConnessione.Execute strSqlUpdate, numRecAggiornati, adExecuteNoRecords
    if numRecAggiornati=0 then
       strSqlInsert="INSERT INTO TuaTabella (CampoCodice, CampoLunghezza, CampoQuantita) VALUE (" & codice.text & "," & lunghezza.text & "," & quantita.text & ");"
       TuaConnessione.Execute strSqlInsert,,adExecuteNoRecords
    end if
    Attenzione, io ho dato per scontato che codice, quantita e lunghezza siano tutti di tipo numerico, se sono di tipo carattere, nelle query i valori devono essere racchiusi tra apici..
    Jupy

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.