Incremento di un campo tabella

lunedì 25 settembre 2006 - 16.15

Slave Profilo | Junior Member

ho un altro problema.... la prima domanda per poterlo risolvere è:
-è possibile,impostando un capo di una tabella access come contatore,farlo partire da un numero a mia scelta diverso da uno?

in alternativa avevo pensato di leggere il primo valore del campo(lo inserisco io manualmente)e tramite vb e una connessione ado
leggere questo valore e incrementarlo di uno nel record successivo....in questo modo:

stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
stringa = stringa & "C:\Documents and Settings\Christian Bozzonetti\Desktop\NuovoProgetto\new.mdb"

Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

cn.Open stringa
rs.Open ("rendisposizioni"), cn, 3, 3
Dim a As Integer
Dim b As Integer
rs.MoveLast
a = rs("iddisposizione")
b = a + 1
rs.AddNew

rs("Iddisposizione") = b

rs.Update


ma non porta a niente perche invece di incrementarmi il valore riparte da uno...non so spiegarmi perche...

in alternativa avevo pensato anche a questo:


stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
stringa = stringa & "C:\Documents and Settings\Christian Bozzonetti\Desktop\NuovoProgetto\new.mdb"

Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

cn.Open stringa
rs.Open ("rendisposizioni"), cn, 3, 3
Dim a As Integer
Dim b As Integer
a= rs.recordcount
b = a + 100001'il mio primo numero del contatore deve essere 100000
rs.AddNew

rs("Iddisposizione") = b

rs.Update

ma nemmeno questo funziona...

come posso fare?????

sanbiz Profilo | Senior Member

Se hai impostato un campo contatore non puoi intervenire modificandone il valore.
In sql server è possibile impostare un valore di partenza ed un incremento, ma in Access no.

Ti conviene gestire l'incremento manualmente, leggendo, prima dell'update, il valore massimo e poi incrementandolo.
Non è molto bello, ma ci si accontenta.


--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/

Slave Profilo | Junior Member

grazie...ma...come faccio a leggere il valore massimo,salvarlo e incrementarlo?????

sanbiz Profilo | Senior Member

Dovresti prima fare una select max(mioValore) as ValoreMassimo from miaTabella da cui prelevi il valore massimo e successivamente lo utilizzi, incrementato di uno, per valorizzare il nuovo record.


--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/

Slave Profilo | Junior Member

niente da fare....mi da sempre zero come risultato....

sanbiz Profilo | Senior Member

Ma hai cambiato il campo contatore in Access e fatto diventare, ad esempio, intero lungo?
Se lasci il campo impostato a contatore non puoi intervenire impostandone a mano il valore.

--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/

Slave Profilo | Junior Member

certo certo....cmq sono riuscito a risolvere....grazie comunque!!!

sanbiz Profilo | Senior Member

Per completezza, posta la soluzione in modo da poter chiudere il thread.
--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/

Slave Profilo | Junior Member

Private Sub Cmdsalva_Click()

On Error Resume Next
stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
stringa = stringa & "C:\Documents and Settings\Christian Bozzonetti\Desktop\NuovoProgetto\new.mdb"


Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

rs.Open "SELECT *FROM disposizioni", cn, 1

rs.MoveLast
Dim a, b, risul As Long
a = rs.Fields("iddisposizione").Value
b = CLng(Label1.Caption)
risul = a + 1



rs.AddNew

rs("Iddisposizione") = risul

rs.update
Set cn = Nothing
Set rs = Nothing


End Sub


Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5