Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    129

    [VB6] - Modifica automatica di dati nei record Access

    Ciao Ragazzi!!

    Vi vorrei sottoporre un problema che ho e che mi sta bloccando nella conclusione di un lavoro.
    Spero che possiate aiutarmi perchè....

    In un mio programma ho creato una parte di modifica dei dati inseriti. Questi dati si appoggiano ad un DB Access composto da 4 tabelle ed ho utilizzato in VB6 i controlli ADO ed i DataReport. E fin qui funziona tutto.

    Quello che non riesco a fare è, a fronte di una modifica di un dato preso a caso nella TabellaNomi, che questo dato si aggiorni in un'altra tabella Access (TabellaRelazioni) che lo contiene in quanto, e qui c'è l'errore, mi aggiorna sempre e solo il primo record che trova nella TabellaRelazioni.

    Per spiegarmi meglio esemplifico di seguito:
    ----
    TABELLA NOMI = PIPPO, PLUTO, PAPERINO, QUI, QUO, QUA, PAPERINO
    TABELLA RELAZIONI (Che contiene i dati della TabellaNomi) = PIPPO, PLUTO, PAPERINO, QUI, QUO, QUA, PAPERINO

    Se io modifico nella TabellaNomi "PAPERINO" con "XXX" nella TabellaRelazioni ho:
    TABELLA RELAZIONI = XXX, PLUTO, PAPERINO, QUI, QUO, QUA, PAPERINO

    Come vedete non va a cercare il valore "PAPERINO" ma mi sostituisce il primo valore in ogni caso.
    ----
    Quello che vorrei è invece che mi andasse a modificare tutti i valori che hanno quel nome (es: PAPERINO) con il nuovo valore (es. XXX)

    Come posso fare?

    Spero che non sia stato troppo contorto.

    Grazie mille
    Giuseppe

  2. #2
    Utente di HTML.it L'avatar di Mychy
    Registrato dal
    Oct 2000
    Messaggi
    794
    Non so se ho ben capito, ma dovresti fare 2 query di modifica, una per tabella

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    129
    Ciao!!
    Dunque ti spiego

    Ho una form con un pulsante di modifica che, se premuto, apre un'altra form nella quale c'è un campo che visualizza il vecchio valore, un campo vuoto dove inserisco il nuovo valore ed un pulsante di conferma che mi riporta alla form iniziale e che modifica il campo col nuovo valore.
    Nella form iniziale poi c'è un altro pulsante di salvataggio che mi salva le modifiche effettuate.
    Di query non ne ho fatte.
    La form iniziale si appoggia ad una tabella Access e in questa tabella vedo la modifica effettuata.

    Ora il mio problema è che questo dato (es. nome cliente) deve essere modificato anche in un'altra tabella che contiene quel valore ma non so come fare a farglielo modificare.

    Spero di essermi spiegato bene.

  4. #4
    Provo ad improvvisare una risposta...

    Dunque quando salvi dovresti aggiungere un update anche sulla tabella relazioni, qualcosa del tipo:

    codice:
    Set rs = New ADODB.Recordset
    Set rs = connnessione.Execute("UPDATE nomeTabella SET nome_campo = "nuovoValore" WHERE nome_campo = "vecchioValore")
    rs.Close
    dove connessione è la connessione che hai aperto per accedere al DB.
    In realtà, però, non so di preciso se Access supporti l'SQL standard (mi sembra che abbia una sintassi leggermente diversa per alcune funzioni, ma sono vecchissimi ricordi...)

    Utilizzando il tuo esempio e supponendo che la tabella da modificare si chiami "relazioni" e il il campo nome si chiami "nome" il codice potrebbe essere:

    codice:
    Set rs = New ADODB.Recordset
    Set rs = connnessione.Execute("UPDATE relazioni SET nome = "XXX" WHERE nome = "PAPERINO")
    rs.Close
    Prova e fammi sapere!
    Secondo alcuni autorevoli testi di tecnica di aeronautica, il calabrone non può volare, a causa della forma e del peso del proprio corpo in rapporto alla superficie alare.
    Ma il calabrone non lo sa e perciò continua a volare. (Igor Sikorsky)

    Chi beve solo acqua ha un segreto da nascondere (Charles Baudelaire)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    129
    mmh...ok
    però prima di provarla mi viene un dubbio.

    Tu nel codice che mi hai indicato hai messo dei valori specifici "XXX" e "PAPERINO".

    Però essendo i valori da modificare non certi, cioè non sai quali sono e con quali altri valori vanno modificati, bisognerebbe mettere delle variabili di appoggio giusto?

  6. #6
    Se scrivi i dati da modificare in delle textBox per esempio txtDaModificare e txtModificata il codice può diventare:

    codice:
    Set rs = New ADODB.Recordset
    Set rs = connnessione.Execute("UPDATE relazioni SET nome = '" & txtModificata.text & "' WHERE nome = '" & txtDaModificare.text & "'")
    rs.Close
    Secondo alcuni autorevoli testi di tecnica di aeronautica, il calabrone non può volare, a causa della forma e del peso del proprio corpo in rapporto alla superficie alare.
    Ma il calabrone non lo sa e perciò continua a volare. (Igor Sikorsky)

    Chi beve solo acqua ha un segreto da nascondere (Charles Baudelaire)

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.