Newsgroup: it.comp.lang.visual-basic
Titolo: Inserimento dati in un DB

Salve a tutti,
ho un problema con un programma in VB che si connette ad un database.
Mi collego al DB con queste istruzioni
'DICHIARAZIONI
Public conn, strConn, SQL, rs
Private sub form_load()
strConn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" & _
          App.Path & "\fattura.mdb"
Set conn = CreateObject("ADODB.Connection")
conn.CursorLocation = adUseClient
conn.Open strConn
SQL = "SELECT * FROM fornitori"
Set rs = CreateObject("ADODB.Recordset")
rs.Open SQL, conn
End Sub
Il Problema si presenta quando voglio inserire un nuovo record, o salvarlo.
Qual'è l'istruzione per aggiungere un nuovo record e salvarlo?
Grazie in anticipo

 salvarlo?
guarda le parti aggiunte al tuo codice.
salutoni
sergio

Scusami, uomo di colore, ma hai aperto un thread sulla stesso argomento
giusto ieri.
Vabbè, almeno in questo hai spiegato qual'è il tuo problema.
Copio pari pari da MSDN:
Metodo AddNew (ADO)
Crea un nuovo record per un oggetto Recordset aggiornabile.
Sintassi
recordset.AddNew elencoCampo, Valori
Parametri
ElencoCampo   Nome singolo o matrice di nomi o di posizioni ordinali per i
campi nel nuovo record (opzionale).
Valori   Valore singolo o matrice di valori per i campi nel nuovo record
(opzionale). Se Campi è una matrice, anche Valori dovrà essere una matrice
con lo stesso numero di membri, altrimenti si verificherà un errore.
L'ordine dei nomi dei campi deve corrispondere all'ordine dei valori dei
campi in ciascuna matrice.
Osservazioni
Utilizzare il metodo AddNew per creare e inizializzare un nuovo record.
Utilizzare il metodo Supports con adAddNew per verificare se è possibile
aggiungere record all'oggetto Recordset corrente.
Dopo che è stato chiamato il metodo AddNew, il nuovo record diventa il
record corrente e rimane tale finché non viene chiamato il metodo Update. Se
l'oggetto Recordset non supporta segnalibri, potrebbe non essere possibile
accedere al nuovo record dopo essersi spostati su un altro record. A seconda
del tipo di cursore, potrebbe essere necessario chiamare il metodo Requery
per rendere accessibile il nuovo record.
Se si chiama AddNew durante la modifica del record corrente o durante
l'aggiunta di un nuovo record, ADO chiamerà il metodo Update in modo che le
modifiche vengano salvate, quindi creerà il nuovo record.
Il comportamento del metodo AddNew dipende dalla modalità di aggiornamento
dell'oggetto Recordset e dal fatto che vengano o meno passati gli argomenti
Campi e Valori.
Nella modalità di aggiornamento immediato, ovvero nella modalità in cui il
provider apporta le modifiche nella fonte dati corrispondente dopo che è
stato chiamato il metodo Update, se si chiama il metodo AddNew senza
argomenti la proprietà EditMode verrà impostata su adEditAdd. Il provider
memorizza nella cache qualsiasi modifica dei valori dei campi apportata
localmente. Se si chiama il metodo Update, il nuovo record verrà inserito
nel database e la proprietà EditMode verrà reimpostata su adEditNone. Se si
passano gli argomenti Campi e Valori, il nuovo record verrà inserito
immediatamente nel database, senza che sia necessario chiamare il metodo
Update. Il valore della proprietà EditMode non verrà tuttavia modificato
(adEditNone).
Nella modalità di aggiornamento batch, ovvero nella modalità in cui il
provider memorizza nella cache più modifiche e le apporta nella fonte dati
corrispondente solo quando viene chiamato il metodo UpdateBatch, se si
chiama il metodo AddNew senza argomenti la proprietà EditMode verrà
impostata su adEditAdd. Il provider memorizza nella cache qualsiasi modifica
dei valori dei campi apportata localmente. Se si chiama il metodo Update, il
nuovo record verrà aggiunto al recordset corrente e la proprietà EditMode
verrà reimpostata su adEditNone, ma il provider non inserirà le modifiche
nel database corrispondente finché non verrà chiamato il metodo UpdateBatch.
Se si passano gli argomenti Campi e Valori, ADO invierà il nuovo record al
provider perché lo memorizzi nella cache. Per inoltrare il nuovo record al
database corrispondente, è necessario chiamare il metodo UpdateBatch.
Se proprio non hai la guida corrono voci, nel mondo underground degli
acchers, che qui ne trovi una GRATIS
www.msdn.microsoft.com
Ciao, Luca.

rs.Open SQL, conn
...
with rs
    .open strSql, conn, adopendynamic, adlockoptimistic
    .addnew
    .fields!Nomecampo = valoredadarealcampo
    >     'ripetere per tutti i campi che interessano
    .update
end with
ciao
ugo