Newsgroup: it.comp.lang.visual-basic
Titolo: Problemi con ADO e dataenv

Salve,
tralascio l'introduzione (troppo lunga?)
Per aggiungere un elemento ad una tabella (identificata nel DatEnv
principale envProtocollo come cmdSpedizioni), uso il seguente codice:
 With envProtocollo.rscmdSpedizioni
     .AddNew
     !Codice = txtCodice
     !IDProtocollo = adcProtocollo.Recordset!IDProtocollo
     .Update
 End With
dove txtCodice è un textbox di una form e adcProtocollo è un ado data
control inserito per 'sfogliare' i record di una tabella 'correlata'
con spedizioni.
a Run Time ottengo il seguente errore:
 " Errore di run-time '3704':
L'operazione richiesta dall'applicazione non è consentita se l'oggetto
è chiuso. "
Dov'è l'errore?
P.S. ci sono altri cmd nel dataenv e quelli funzionano perfettamente
(ho anche messo il LockType corretti)
Grazie a tutti quelli che mi risponderanno
	Michele Santucci

 ha scritto nel messaggio
news:1sqivs05ggmovl4ul...@4ax.com...


Spero di esserti stato utile.
Bhe non ho ancora visto se effettivamente funziona... cmq sia grazie!
	Michele Santucci

Spero di esserti stato utile.
Certamente ... per piccoli passi arriverò alla verità!
Grazie
	Michele Santucci

envProtocollo.cmdSpedizioni
Perchè non esiste anche per i sotto comandi?
	Michele Santucci

 ha scritto nel messaggio
news:dstivs4ajeslitfu7...@4ax.com...


 ha scritto nel messaggio
news:lgvivs8ok29nl9phh...@4ax.com...


Xrò a me funziona ....
Bhe ho cambiato txtCodice in txtCodice.Text e ho risoltoa...
(evidentemente c'è qualche problema di casting).
	Michele Santucci

il quale, a sua volta, contiene tutti gli ordini collegati a quel cliente.'
Si è vero però a me da un errore di incompatibilità di tipo:
Private Sub txtCodice_KeyPress(KeyAscii As Integer)
Codici uffici
    Dim rssubcmdSpedizioni As Recordset
 
    Set rssubcmdSpedizioni =
envProtocollo.rscmdProtocollo!subcmdSpedizioni
    If KeyAscii = 13 Then
        With rssubcmdSpedizioni
            .AddNew
            !IDProtocollo = envProtocollo.rscmdProtocollo!IDProtocollo
            !Codice = txtCodice.Text
            !Originale = True
            .Update
            .Close
        End With
        txtCodice = ""
    End If
End Sub
L'istruzione Set ovviamente riporta un errore (13 - Tipo non
corrispondente).
Vi/ti spiego cmq il perchè di tutto questo casino:
il sottocomando in questione è demandato a riempire una mshflexgrid
che in sostanza rappresenta le spedizioni correlate ad un record di
protocollo. La visualizzazione è perfetta ma ovviamente devo avere
modo di inserire/cancellare spedizioni direttamente sulla flexgrid in
oggetto. Utilizzando un cmd parallelo (cmdSpedizioni) riesco
tranquillamente (dopo le correzioni odierne) a fare quello che mi sono
prefisso (i.e. inserire e cancellare) ma non riesco ad aggiornare la
flexgrid suppongo perchè quest'ultima non è bindata direttamente a
cmdSpedizioni  (ma bensì a subcmdSpedizioni).
	Michele Santucci
	Michele Santucci

 ha scritto nel messaggio
news:5ojjvskoo2sga27jd...@4ax.com...


envProtocollo.rscmdProtocollo.fields("subcmdSpedizioni").UnderlyingValue
Funziona!
Rimane un piccolo problema, nonostante riesca ad aggiungere il record
al subcmdSpedizioni (o meglio al recordset che ne deriva) non riesco a
far refreshare il contenuto della FlexGrid per visualizzare
l'inserimento appena avvenuto. Ho notato che spostandomi avanti
(cliccando sull'adodc) e tornando indietro il record appena inserito
effettivamente compare nella FG (ma rispetto all'istruzione SQL che
'controlla' il recordset del subcmdSpedizioni è nella posizione
sbagliata).
P.S. Dove le trovo spiegate tutte ste cose???? Ho comprato 4 libri sul
Visual Basic per oltre 600.000 lire e non c'è nulla a parte
vaneggiamenti sulle differenze tra DAO, ADO, SQL, OLE/Jet e altre
10.000 sigle