Newsgroup: it.comp.lang.visual-basic
Titolo: problema .addnew

Private Sub CmdAggiorna_Click()
Dim strmessaggio As String
strmessaggio = "Inserisci il concorso"
Aggiungo un nuovo record alla tabella
rsBA.AddNew "Concorso", InputBox(strmessaggio, "inserimento nuovo concorso")
'da il Focus al TextBox del data per continuare l'inserimento dei dati
txtcampo(CDATA).SetFocus
End Sub
Perchč se eseguo le istruzioni qui sopra il programma mi genera un nuovo
record,
ma il recordset non si sposta nel nuovo record per permettermi di inserire
in alcune
textbox i dati da inserire nel nuovo record, rimane nel record in cui mi
trovo nel
momento in cui clicco sul comando aggiorna
grazie ciao

 Dim strmessaggio As String
sigh...da codice...imparate da codice!!!!poi vi incasinate e rischiate di
scrivere più righe!
cmq...
se sei ad "aggieggiare" la griglia finche non ti sposti ad un altra riga le
modifiche sono nel "limbo"....
Quando ti sposti ad un altra riga....
Ti aggiorna anche il datacontrol e quindi da li puoi pescare i nuovi dati!
Una complicazione inutile visto che hai un form sembra da riempire con i
dati!
Basterebbe riempire i dati della form...(con tanto di uso dell'evento
Validate (...ce l'hanno dato col vb6..usiamolo) che pochissimi usano)
Fare un bel INSERT o UPDATE sql (command.execute)
e rinfrescare la griglia

 scrivere piů righe!


 grazie mille
NO! niente esempi!
....invece mi dilungo su un percorso di studio che alla fine ti farà fare
questo e altro.
Allora Database:
Un database facile è Access
Access lo puoi usare come "giocattolino" e fare tabelle e
interrogazioni...oppure....
Access ha sotto il cul...ehm ha sotto sotto un motore chiamato JET
Da VB noi interroghiamo ed interagiamo con questo motore
Abbiamo 2 tecnologie DAO e ADO per collegare sto motore
DAO è più veloce con Access ma obsoleta e legata a solo questo Database
ADO è per ora supportato e ha un metodo standard di interrogazione e
interazione col database (QUALUNQUE database)
In più noi possiamo interrogare il nostro database con un linguaggio
particolare SQL
per cui se volessimo trovare tutti i clienti che si chiamano pinolo dovremmo
chiedere al motore Jet
"SELECT * FROM Clienti WHERE Cognome='pinolo' "
Bene!
Adesso sappiamo che un database in realtà ha un motore sootstante e noi ci
"realzionamo" ad esso
Come si fa?
ADO mette a disposizione 3 grandi oggetti
Connection
 che serve a "interfacciare" connettere il database
Recordset
 che serve a ottenere dati come risultato di operazioni sul motore
database(ad esempio ti contiene tutti i clienti chiamati pinolo se chiedi al
motore db quella stringa SQL di sopra)
Command
 che serve ad eseguire comandi sul  motore remoto
La sequenza in genere è questa:
 Connetto il database
    Richiedo i dati
        li memorizzo nel recordset e li manipolo a piacimento
        aggiornando il recordset normalmente si aggiornano anche i recortd
nel database
    Chiudo il recordset
Chiudo la connessione
Questo in estremissima sintesi il percorso che devi studiare
ti dico solo che le griglie non sono altro che metodi "naturali e umani" per
rappresentare i dati del recordset.
Su ogni singola parola hai quintali di tutorial su internet o semplicemente
schiacciando il tasto F1
Links
su SQL
http://guide.supereva.it/database/sql/
Altri su ADO ...ovunque!
Ciao!
:o)

 ha scritto nel messaggio
news:9MlH9.35360$qF1.1...@news2.tin.it...


CUT
Tu hai di mezzo l'ado data control mi sa amico mio!!!
Occhio che ti porta a "facilonerie" che poi ti incasinano alquanto oltre che
ad essere più lento!
Ti posto un pezzo del Sw che sto sviluppando (ho questo sottomano)
Assumi che la connessione al db sia già aperta....dettaCnNew
Assumi anche che un recordset sia già aperto...detto RsNew
Assumi anche che ho un flag che mi indica se è un NUOVO record oppure se
devo EDITARE un vecchio record....detto flgSovra
bene.........
....
'==========INIZIO Scrittura dati
CnNew.BeginTrans
If Not flgSovra Then
     RsNew.AddNew
End If
RsNew("IDcontratto") = Trim(Me.txtIDcontr.Text) & ""
RsNew("IDcliente") = IDcliente & ""
RsNew("Tipologia") = IDtipo & ""
RsNew("Agente") = IDagente & ""
RsNew("DataContratto") = DataContratto & ""
RsNew("Dgen") = CLng(Val(Me.txtUsc(0).Text)) & ""
RsNew("Dfeb") = CLng(Val(Me.txtUsc(1).Text)) & ""
RsNew("Dmar") = CLng(Val(Me.txtUsc(2).Text)) & ""
RsNew("Dapr") = CLng(Val(Me.txtUsc(3).Text)) & ""
RsNew("Dmag") = CLng(Val(Me.txtUsc(4).Text)) & ""
RsNew("Dgiu") = CLng(Val(Me.txtUsc(5).Text)) & ""
RsNew("Dlug") = CLng(Val(Me.txtUsc(6).Text)) & ""
RsNew("Dago") = CLng(Val(Me.txtUsc(7).Text)) & ""
RsNew("Dset") = CLng(Val(Me.txtUsc(8).Text)) & ""
RsNew("Dott") = CLng(Val(Me.txtUsc(9).Text)) & ""
RsNew("Dnov") = CLng(Val(Me.txtUsc(10).Text)) & ""
RsNew("Ddic") = CLng(Val(Me.txtUsc(11).Text)) & ""
RsNew.Update
CnNew.CommitTrans
.....
......
Bye man!