Newsgroup: it.comp.lang.visual-basic
Titolo: Esecuzione comando INSERT

Salve,
dovrei immagazzinare i valori delle variabili x,y,z,t che variano
dinamicamente all'interno di un database ACCESS.
L'istruzione per l'immagazzinamento dei dati è scritta qui sotto e non
funziona.
Qualcuno sa dirmi come modificarla per farla funzionare???
Vi ringrazio in anticipo
Dim rsMyRS As ADODB.Recordset
Dim strSQL As String
Dim cnnDati As ADODB.Connection
Dim cmmInsert As ADODB.Command
Dim rstDati As ADODB.Recordset
Dim strConnect As String
    strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path
& "\dati.mdb;Persist Security Info=False"
    cnnDati.Open (strConnect)
    strSQL = "INSERT INTO Dati_Bio (pos_x, pos_y, pressure, tempo) VALUES ("
& "'" & x & "'" & ", " & "'" & y & "'" & ", " & "'" & z & "'" & ", " & "'" &
t & "'" & ")"
    With cmmInsert
        .ActiveConnection = strConnect
        .CommandType = adCmdText
        .CommandText = strSQL
    End With
    Set rstDati.Open = cnnDati.Execute(cmmInsert)


Non ho nemmeno guardato se la query è sintatticamente corretta, ma per
eseguire una INSERT INTO usa direttamente la connection:
cmnDati.Execute strSQL
ciaociao

 Non ho nemmeno guardato se la query è sintatticamente corretta
io si.
se sta mettendo dei valori in campi numerici, ci sono un sacco di apici di
troppo.
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo


I valori delle variabili da inserire sono LONG mentre i campi delle colonne
del database Access sono TESTO.
Quindi dovrei togliere gli apici?? che includono le variabili???
Comunque gli apici li ho tolti e rieseguendo il programma mi dà l'errore:
    Dim strConnect As String
    strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path
& "\dati.mdb;Persist Security Info=False"
    strSQL = "INSERT INTO Dati_Bio (pos_x, pos_y, pressure, tempo) VALUES ("
& x & ", " & y & ", " & ", " & z & ", " & t & ")"
    cnnDati.Open (strConnect)
    cnnDati.Execute (strSQL)


Ahhh scusate...l'errore è (ERR-RUNTIME 91):
Variabile oggetto o variabile del blocco With non impostata. E che errore è
se il blocco With non esiste all'interno del codice???

 ha scritto nel messaggio
news:6pYuc.18048$G%.8238@tornado.fastwebnet.it...

Ciao,
Una query di comando non restituisce recordset quindi
----------------
....
....
SET cmmInsert = NEW ADODB.Command
     With cmmInsert
         .ActiveConnection = strConnect
         .CommandType = adCmdText
         .CommandText = strSQL
         .Execute
     End With
SET cmmInsert =Nothing
---------------------
Ciao Giorgio

 news:6pYuc.18048$G%.8238@tornado.fastwebnet.it...
[CUT]
dimenticavo....
se già apri cnnDati per la connessione  è inutile aprirne un'altra
----------------
....
....
SET cmmInsert = NEW ADODB.Command
     With cmmInsert
         .ActiveConnection = cnnDati
         .CommandType = adCmdText
         .CommandText = strSQL
         .Execute
     End With
SET cmmInsert =Nothing
----------------
Ciao Giorgio


A parte il fatto che un blocco With c'è.... ;-)
comunque l'errore dice anche 'Variabile oggetto'
ciaociao

 se il blocco With non esiste all'interno del codice???
Io vedo che gli oggetti Connection ecc. non sono inizializzati.....
                            Ciao
                                        Zephiross

 Salve,
[cut]
Mancano tutte le allocazioni degli oggetti.
Dopo averli dichiarati come variabili, se non fai nemmeno un Set Oggetto =
New qualcosa, col cavolo che funziona quel codice ;-)

    End With
Domanda numero 1. Perche' metti tutti apici? sono valori stringa?
Domanda numero 2: dove vengono istanziati gli oggetti (hai presente
New??)? Da qualche altra parte?
--
Ciao!
Luca Menegotto


Opps, avevate risposto prima voi......
--
Ciao!
Luca Menegotto