Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - ERRORE RUN TIME 3251
Forum - Visual Basic 6 - ERRORE RUN TIME 3251

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
moet (Normal User)
Pro


Messaggi: 185
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 14:26
Sabato, 24/11/2007
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

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form_Load()
  2.  
  3.  
  4.  
  5. stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
  6. stringa = stringa & App.Path & "/inserimento.mdb"
  7. Set cn = New ADODB.Connection
  8.     Set rs = New ADODB.Recordset
  9.  
  10.     cn.Open stringa
  11.     rs.Open "SELECT * FROM tabella1", cn, 1
  12.    
  13.     If rs.EOF Then
  14.    
  15.      risposta = MsgBox("E' LA PRIMA VOLTA CHE UTILIZZI IL PROGRAMMA VUOI IMPOSTARE LE COMMESSE?", vbInformation + vbYesNo, "HELPDESK")
  16.      If risposta = vbYes Then
  17.      
  18.          
  19.          comm = InputBox("INSERISCI COMMESSA MARTINA", "HELPDESK")
  20.         commsy = InputBox("INSERISCI COMMESSA SHIPYARD", "HELPSDESK")
  21.        
  22.         rs.AddNew
  23.         rs("commessa") = comm
  24.         rs("commessasy") = commsy
  25.         rs.Update
  26.      End If
  27.      
  28.     Else
  29.       Label7.Visible = True
  30.       Label8.Visible = True
  31.      
  32.     End If
  33. End Sub


PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 19:26
Sabato, 24/11/2007
ho trovato una scrittura alternativa.
Codice sorgente - presumibilmente Plain Text

  1. rs.AddNew
  2. rs("commessa") = comm
  3. rs("commessasy") = commsy
  4. rs.Update


diventa
Codice sorgente - presumibilmente Plain Text

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



Anche se secondo me non sta li l'errore..

Ultima modifica effettuata da P4p3r0g4 il 24/11/2007 alle 19:28
PM Quote
Avatar
moet (Normal User)
Pro


Messaggi: 185
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 18:30
Domenica, 25/11/2007
NO infatti ma non capisco dove...

PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 20:22
Domenica, 25/11/2007
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.
Codice sorgente - presumibilmente Visual Basic 6

  1. dim cn as new adodb.connection
  2. cn.open "File Name="&connstring
  3.  
  4. 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 il 25/11/2007 alle 20:29
PM Quote
Avatar
moet (Normal User)
Pro


Messaggi: 185
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 20:31
Domenica, 25/11/2007
La cosa bella è che l' avevo gia settata!

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

il problema non è risolto purtroppo !

PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 7:40
Lunedì, 26/11/2007
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.
Codice sorgente - presumibilmente Visual Basic 6

  1. cn.execute "Delete from nometabella where id= "  & cstr(2)


Ciao.

Ultima modifica effettuata da LuigiBiasi il 26/11/2007 alle 7:48
PM Quote
Avatar
moet (Normal User)
Pro


Messaggi: 185
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 13:54
Lunedì, 26/11/2007
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 !

PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 15:13
Lunedì, 26/11/2007
ma sei riuscito ad eliminare un solo record con il mio metodo cioè usando:
Codice sorgente - presumibilmente Visual Basic 6

  1. 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 il 26/11/2007 alle 15:13
PM Quote
Avatar
moet (Normal User)
Pro


Messaggi: 185
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 15:17
Lunedì, 26/11/2007
Ma perche il mio è un inserimento non una cancellazione. :-|

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo