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

    [vb6] Travasare dati tra tabelle con update incluso

    Salve a tutti,
    ho questo problema. Ho creato un programma per il magazzino.
    Ho creato una tabella con una serie di preventivi.
    I preventivi non portano scarico di materiale in magazzino naturalmente.
    Quando richiamo un preventivo e lo accetto deve diventare un buono di prelevamento (altra tabella).
    Devo quindi travasare i dati dalla tabella preventivi a quella buoni.
    Devo però scaricare le relative quantità dal magazzino e cioè da una terza tabella chiamata materiali.

    Come posso fare?

    Grazie 1000.

  2. #2
    che database usi? con la maggior parte di server di dati puoi usare i trigger, sono delle funzioni che si attivano su una determinata operazione da te scelta (INSERT,UPDATE,DELETE) sulla tabella... io li uso per cose simili a quella che devi fare tu... ciao ciao
    I database... la mia passione + o -

  3. #3

    Re: [vb6] Travasare dati tra tabelle con update incluso

    Originariamente inviato da Antagonista
    Salve a tutti,
    ho questo problema. Ho creato un programma per il magazzino.
    Ho creato una tabella con una serie di preventivi.
    I preventivi non portano scarico di materiale in magazzino naturalmente.
    Quando richiamo un preventivo e lo accetto deve diventare un buono di prelevamento (altra tabella).
    Devo quindi travasare i dati dalla tabella preventivi a quella buoni.
    Devo però scaricare le relative quantità dal magazzino e cioè da una terza tabella chiamata materiali.

    Come posso fare?

    Grazie 1000.
    Ciao,
    da quello che ho capito la tabella "preventivi" e quella "buoni" hanno sostanzialmente gli stessi campi ma assumo una valenza diversa. Giusto? Solitamente in questi casi non servono due tabelle ma bensì un campo che indichi lo stato del preventivo. Quindi è sufficiente che aggiungi il campo "stato" nella tabella "preventivi" e lo modifichi all'occorrenza. A questo punto in un'unica tabella hai tutto, e il significato lo valuti in base al contenuto del campo "stato".

    Se hai la possibilità di usare i trigger, benvegano. Altrimenti sei costretto a fare delle query da codice VB6 su evento.

    Non è particolarmente complesso. Se hai bisogno di delucidazioni maggiori, chiedi pure.

    Ciao.

  4. #4
    Prima di tutto grazie per le risposte.

    Il problema non è tanto la tabella buoni o preventivi quanto lo scarico dalla tabella materiali.

    Quando 4 record (ad esempio) della tabella preventivi (senza scarico) diventano buoni di scarico devo prendere la quantita di ogni record, cercare nella tabella materiali il codice corrispondente e scaricare il numero di pezzi. E' questo il mio più grande problema. Avevo pensato ad un ciclo while per prendere tutti i record della tabella preventivi ma non so come fare per scaricare la relativa quantità dalla tabella materiali.

    Scusate se non sono stato chiarissimo.

    Grazie.

  5. #5
    Scusate...dimenticavo che uso Access.

  6. #6
    quindi se usi access non hai i trigger, allora devi fare che quando passi i record da una tabella ad un'altra, o quando cambi lo stato della stessa(che sarebbe meglio) li leggi tutti e crei un update di ogni articolo con il quale andrai a modificare la tabella delle giacenze... spero di essermi spiegato... :ciuaz:
    I database... la mia passione + o -

  7. #7
    Grazie.
    Il problema è che non so come fare per impostare il codice...mi posteresti un esempio.
    Ti sarei molto grato.

    Il codice che avevo pensato era questo ma è incompleto....non so dove sbattere la testa.


    mioado.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & App.Path & "\mio.mdb';Mode=ReadWrite;Persist Security Info=False"
    mioado.RecordSource = "select * from preventivi where codiceprev='" & Label14.Caption & "'"
    mioado.Refresh

    mioado2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & App.Path & "\mio.mdb';Mode=ReadWrite;Persist Security Info=False"
    mioado2.RecordSource = "select * from giacenze "
    mioado2.Refresh

    Do Until mioado.Recordset.EOF
    mioado.Recordset("quantita") = ?? -->Cosa?
    mioado.Recordset.MoveNext
    Loop

    Grazie.

  8. #8
    sbagli...
    devi aprire il primo recordset con la selezione dei record che stai confermando
    poi fai un ciclo con questo stesso recordset, esempio:
    codice:
    do until tuorecordset.eof
     strUpdate="UPDATE tabellagiacenze SET quantita=quantita-'" & recordset("quantita") & "'      WHERE articolo='" & recordset("articolo") & "'"
    ' qui devi inserire il codice che esegue la query sulla tua connessione...
    recordset.movenext
    loop
    più o meno così, ma vedi che devi sistemarlo, non conosco bene ADO...
    I database... la mia passione + o -

  9. #9
    Grazie 1000. Adesso ci provo

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.