Newsgroup: it.comp.lang.visual-basic
Titolo: Aiuto per Datagrid

Dunque, provo a spiegarvi nel modo più semplice:
Ho creato un form con un datagrid, associato ad un recordset (uso
dataenvironment)
    Set DGVociDoc.DataSource = Magazzino
    DGVociDoc.DataMember = "VociDocumento"
Ora ho la mia bella griglia che mi fa vedere i record nella tabella
"VociDocumento".
Posso sia modificare che inserire nuovi record.
Modificare record mi funziona, ma non riesco ad aggiungere nuovi record.
Ovvero:
vado nell'ultima riga (quella con l'asterisco come in access), metto tutti i
valori. Mi sposto di riga e vedo che mi fa l'update, mi aggiunge il record,
mi rimette la nuova riga vuota con l'asterisco.
A questo punto riesco a modificare qualsiasi altra riga, ma se ritorno in
questa e modifico un campo, ecco l'errore:
"Impossibile individuare la riga specificata per l'sggiornamento. È
possibile che alcuni valori siano stati modificati dopo l'ultima operazione
di lettura."
Qualcuno riesce a salvarmi????

 Qualcuno riesce a salvarmi????
credo che questo sia dovuto al fatto che nella recordset che funziona da "fonte"
dei dati per la datagrid, non è compresa la colonna che funge da chiave
primaria.
hth
--
Salutoni
Sergio

 "Impossibile individuare la riga specificata per l'sggiornamento. Č


 ha scritto nel messaggio
news:b5mmet$2aq7l4$1...@ID-173193.news.dfncis.de...


 Ci sono tutte le colonne
scusa se insisto. la tabella di origine prevede una chiave primaria?
--
Salutoni
Sergio

 Sempre, indipendentemente dal database!
Per estrema precisazione, aggiungo: Per ogni tabella per la quale si prevede
più di un record.

 scusa se insisto. la tabella di origine prevede una chiave primaria?
Te lo dico io (salvo bachi di quel controllo): no.



Mi dispiace deluderti ma la tabella ha la sua bella chiave primarie e
univoca.
Il database è fatto alla perfezione.

*Glauco Cucchiar* ha scritto:

Ok, ne prendo atto. Allora resta solo una possibilità: quel controllo è
bacato.
Tutto è possibile, sia ben chiaro, ma lo svolgimento di questo topic (con
quanto, da tutti, detto) non lascerebbe alternative. Te la senti di
affermarlo? Io, francamente, no. Come stai a service packs?

 Il database è fatto alla perfezione.
ehm.. ancora una piccola cosa: che succede se, invece di inserire una sola nuova
riga, ne aggiungi due?
La chiave primaria è un contatore ad incremento automatico?
--
Salutoni
Sergio


Cercando su support.microsoft, ho visto che è proprio così. Un bel bachetto
Allora il controllo non aggiorna, come dovrebbe fare per conto, i dati che
scrivi, e neppura basta il refresh
La soluziono è rifare tutto dall'inizio.
Ovvero:
DGVociDoc.Columns(3).Value = CInt(DGVociDoc.Columns(3).Value)
DGVociDoc.Columns(6).Value = Importo(Quantità, Prezzo, Sconto)
AggiornaGriglia DGVociDoc, "VociDocumento"
DGVociDoc.Refresh
Public Sub AggiornaGriglia(ByRef oGriglia As DataGrid, sRecordset As String)
    Set oGriglia.DataSource = Magazzino 'dataenvironment
    oGriglia.DataMember = sRecordset
    oGriglia.ReBind
End Sub
ma i porblemi non sono finiti.
Ho un diverso comportamento a seconda dei casi.
Non vorrei intasare il news con troppo codice, se vi interessa la faccenda
ti posso mandare un bel po di codice così vedi anche tu che diavolo di
problema mi è venuto fuori.
Ma pensandoci quasi quasi lo metto anche nel news.
TU che dici???

 TU che dici???
Dico che quel "Ho un diverso comportamento a seconda dei casi" andava
minimamente spiegato, poi il codice, specialmente se pesante...


http://support.microsoft.com/default.aspx?scid=KB;en-us;q216666
http://support.microsoft.com/?kbid=223062
http://support.microsoft.com/default.aspx?scid=kb;en-us;223064
http://support.microsoft.com/default.aspx?scid=kb;en-us;197428
questi alcuni link che mi hanno aiutato a risolvere i problemi (non tutti)
che ho avuto usando dataenvironment e datagrid.
Sembra che datagrid e dataenvironment insieme, sommando i loro bugghettini,
facciano un bel casino.

 tutti)
potremmo rifare il punto della situazione: quali sono gli errori che ancora
trovi?
--
Salutoni
Sergio

 trovi?
la cosa è un po complicata e c'e molto codice, lo posto????