Oppure

Loading
24/11/07 13:26
moet
il set di record corrente non supporta l' aggiornamento. Potrebbe trattarsi di una limitazione del provider o del tipo di blocco selezionato.

e mi evidenzia la stringa rs.AddNew


Private Sub Form_Load()



stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
stringa = stringa & App.Path & "/inserimento.mdb"
Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset

    cn.Open stringa
    rs.Open "SELECT * FROM tabella1", cn, 1
    
    If rs.EOF Then
    
     risposta = MsgBox("E' LA PRIMA VOLTA CHE UTILIZZI IL PROGRAMMA VUOI IMPOSTARE LE COMMESSE?", vbInformation + vbYesNo, "HELPDESK")
     If risposta = vbYes Then
     
         
         comm = InputBox("INSERISCI COMMESSA MARTINA", "HELPDESK")
        commsy = InputBox("INSERISCI COMMESSA SHIPYARD", "HELPSDESK")
        
        rs.AddNew
        rs("commessa") = comm
        rs("commessasy") = commsy
        rs.Update
     End If
     
    Else
      Label7.Visible = True
      Label8.Visible = True
      
    End If
End Sub

aaa
24/11/07 18:26
P4p3r0g4
ho trovato una scrittura alternativa.
 rs.AddNew
rs("commessa") = comm
rs("commessasy") = commsy
rs.Update 

diventa
rs.AddNew Array("commessa","commessay") Array(comm,commy)
rs.Update 


Anche se secondo me non sta li l'errore..
Ultima modifica effettuata da P4p3r0g4 24/11/07 18:28
aaa
25/11/07 17:30
moet
NO infatti ma non capisco dove...
aaa
25/11/07 19:22
LuigiBiasi
Ciao, il problema è quello di aggiornare i record?? Io l'ho risolto cosi.
Devi creare un altro campo insieme ai precedenti, chiamalo per esempio id. Che deve andare ad incrementare di un 1, io in SQL Server ho la possibilità di farlo incrementare automaticamente, credo si possa fare in access.
Comunque dovresti avere:
dove ID, Commessa e Commessasy sono i campi del database.

ID Commessa Commessasy
1 lucia aaa
2 federica dcc
3 sabrina fdd
i valori dovrebbero essere incolonnati.
cioè avrai il campo id che servirà da indice.
il campo id è settato come valore chiave.
Adesso nel codice userai.
dim cn as new adodb.connection
cn.open "File Name="&connstring

cn.Execute ("Delete from sample1 where id = " + CStr(2))


attento all'ultima riga di codice.
Va ad eliminare il record che ha come valore id 2.
Quindi avremo:
ID Commessa Commessasy
1 lucia aaa
3 sabrina fdd
Spero di esserti stato di aiuto.
Ciao.
Ultima modifica effettuata da LuigiBiasi 25/11/07 19:29
aaa
25/11/07 19:31
moet
La cosa bella è che l' avevo gia settata!

ho impostato ID come contatore ed ho aggiunto al chiave primaria.

il problema non è risolto purtroppo !
aaa
26/11/07 6:40
LuigiBiasi
ma quando aggiungi i record al database, Id viene incrementato sempre di uno, cioè:
id commessa commessasy
1 nome aaaa
2 aa aaa
3 fff ddf

Id è un campo d tipo numerico.
I valori sono incolonnati cosi:
i numeri sotto id
nome aa e fff incolonnati sotto commessa e aaaa aaa ddf sotto commessasy.
cioè alla fine ottieni cosi il database?
Dimenticavo, nel mio esempio sample1 è il nome della mia tabella.
cn.execute "Delete from nometabella where id= "  & cstr(2)

Ciao.
Ultima modifica effettuata da LuigiBiasi 26/11/07 6:48
aaa
26/11/07 12:54
moet
si esatto il database mi viene perfetto cosi come lo descrizi tu. con campo id numerico contatore che si incrementa a ogni inserimento nuovo e i due campi commessa e commessasy.

no ma per i database sono sempre riuscito bene a farli non mi hanno mai dato problemi escluso questa volta che non capisco come mai !
aaa
26/11/07 14:13
LuigiBiasi
ma sei riuscito ad eliminare un solo record con il mio metodo cioè usando:
cn.Execute "Delete from nometabella where id = 2"

questo codice elimina il record che ha come valore di ID il 2.
Io con questo metodo riesco ad aggiornare il mio database, cioè a eliminare un solo record.
Ultima modifica effettuata da LuigiBiasi 26/11/07 14:13
aaa