buongiorno a todos! . c è il modo di rendere aggiornabile una query fatta da visual basic 6 ad un mdb access?
bisogna settare qualcosa? grazie ciao!!!
buongiorno a todos! . c è il modo di rendere aggiornabile una query fatta da visual basic 6 ad un mdb access?
bisogna settare qualcosa? grazie ciao!!!
Spiegati meglio...
Vuoi aggiornare una queri in un mdb? o cosa?
Ciauz
ciao e grazie x l'interesse
allora ho un db popolato e tramite una query voglio modificare dei valori. però ho come risultato output un messaggio che mi avvisa che mi serve una query aggiornabile
Ma se non mostri il codice della query, e altre informazioni utili, che possiamo risponderti?
![]()
Sì è fondamentale che tu ci dia maggiori dettagli o meglio il codice sql.
Ciauz
provvedo subito! scusatemi
allora ho una tabella che contiene nomevoce, larghezza, altezza, area (fa prodotto di altezza per larghezza senza che io inserisca il lavore). da un form quindi inserisco nel db
solo nome, altezza e larghezza ed in automatico popolo anche la colonna area.
nella mia tabella ho anche la prima stringa che ha come nome TOT e nella colonna AREA della rispettiva stringa, voglio che in automatico ad ogni inserimento di aree nella tabella, facesse la somma. non dovrebbe essere impossibile perchè io dico al db tramite query:
fammi la somma di tutti i valori diversi da "" (vuoto)
update tabella set area=(select sum(area) from tabella1) where nome='TOT'
se sbaglio ( e sicuramente sbaglio) fatemi sapere!!![]()
Area mi pare un campo inutile, oltre a correre il rischio di non avere dati congrui.allora ho una tabella che contiene nomevoce, larghezza, altezza, area (fa prodotto di altezza per larghezza senza che io inserisca il lavore). da
Se, per caso, capita che aggiorni larghezza oppure altezza oppure entrambe, sei costretto ad aggiornare sempre anche Area, quando per avere l'informazione basta calcolare il campo 'al volo'.
Che significa?nella mia tabella ho anche la prima stringa che ha come nome TOT
Dove lo dici? Quando?io dico al db tramite query:
fammi la somma di tutti i valori diversi da "" (vuoto)
allora io ho la tabella che vedete nell immagine. mi interessa che nella stringa dove il nome è TOT, venga riportata la somma delle aree di sotto compilate. quindi io farei una cosa del genere
update tabella set area=(select sum(area) from tabella) where nome =TOT;
il problema è sempre lo stesso.. dovrei formulare una query aggiornabile a quanto ho capito. ma non so come fare.
Mi era sfuggito che usi un database MDB (Access).![]()
A parte questo, la query è in ogni caso sbagliata perchè è necessario usare un'alias nella SELECT interna, per cui dovrebbe essere:
Mentre in SQLServer funziona perfettamente, anche se è necessario fare il CONVERT sul campo AREA in quanto tutti i campi sono definiti di testo (cosa che non ha alcun senso!)codice:UPDATE nometabella SET area= (SELECT SUM(b.area) FROM nometabella b) WHERE nome='TOT'
invece in un MDB che ha dei limiti non sembra possibile eseguirla, almeno io non ci sono riuscito nemmeno ricreando la tabella usando i tipi corretti per i campi.codice:UPDATE nometabella SET area= (SELECT SUM(CONVERT(Int, b.area)) FROM nometabella b) WHERE nome='TOT'
Per cui mi sa che devi 'incartartela' ed aggirare il problema, ovvero:
1. prima devi eseguire la SELECT per ottenere il valore dell'area
(verifica che ti restituisca il recordset con il valore corretto)codice:Dim rs As ADODB.Recordset Set rs = CN.Execute("SELECT SUM(area) As Totale FROM tabella")
2. poi aggiornare il valore
codice:CN.Execute "UPDATE nometabella SET area=" & rs("Totale).Value & " WHERE nome = 'TOT'"
![]()
grazie gibra per il tuo aiuto!!
ma non ho risolto.
da errore. esattamente il 424. necessario oggetto!!