Aiuto su vb6 e access..istruzione sql

lunedì 11 febbraio 2008 - 18.09

Mimmozzo87 Profilo | Junior Member

salve ragazzi...ho un problema ke nn mi permette di terminare il programma...

sto effettuando un programma di emissione fattura...e lo terminato...ora mi hanno kiesto ke al primo avvio del programma dopo l'nstallazione mi venga kiesto da quanto far partire l'incrementatore ID...siccome appena si installa il programma il primo record parte da 1...

io ho creato una form prima di avviare la form vera e propria del programma in cui indico l'id su cui effettuare la prossima fattura e la inserisco in una variabile ke chiamo id_inizio...

ora.. x entrare nel database di access uso l'oggetto ADODC e cerco di modificare l'incremento della tabella di nome 'emesse' e ho scritto questo:




Private Sub ok_Click()

Dim id_inizio As Integer

id_inizio = txtid.Text

Dim s As String



s = "ALTER TABLE emesse AUTO_IMCREMENT='id_inizio';"


data2.RecordSource = s
data2.CommandType = adCmdText

'data2.Refresh

'DataGrid2.SetFocus

Form1.data2.Recordset!id_partenza = Str(id_inizio)

Form1.data2.Recordset.Update


Form1.data2.Refresh

MsgBox "OK OK OK"


End Sub




mi sapete dire se l'istruzione sql è esatta o dove ho sbagliato??? xke continua a incrementare normalmente..grazie

Dainesi Profilo | Senior Member

Il primo metodo è quello di creare n record e quindi cancellarli (Access mantiene in memoria attraverso le tabelle di sistema l'ultimo ID di una tabella con contatore univoco).

L'altro metodo, che ti consiglio, è quello di crearti una funzione trigger che ti estrae il prossimo ID (estrae il Max(ID) e aggiunge 1).

Mimmozzo87 Profilo | Junior Member

sando il database di php myadmyn ho visto ke proprio quell'istruzione ke ho scritto..ovvero "AFTER TABLE emesse auto_increment=30" mi permette ke il prossimo record ke inserisco è proprio il numero 30..e il successivo è il 31..e se cancello il record con id 31 ed inserisco un altro il record avrà id 32..quindi l'incremento funziona correttamente..

se invece si mette un id inferiore a quello massimo presente l'id nn verrà modificato..

ora il mio problema è se ho scritto correttamente quella istruzione in modo ke access me la legga per dire..se la variable va tra apici o virgolette..o se nn si puo fare proprio... spero ke qualkuno possa aiutarmi, grazie

Dainesi Profilo | Senior Member

Essendo il campo contatore un Long (legato ad un trigger) è indubbio che devi passare un numero e non una stringa. Leva gli apici.

Mimmozzo87 Profilo | Junior Member

ho provato ma niente.. tu come la scriveresti questa procedura?? grazie per l'aiuto

Dainesi Profilo | Senior Member

s = "ALTER TABLE emesse AUTO_IMCREMENT='id_inizio';"

Noti nulla di "strano" ?

AUTO_INCREMENT e non AUTO_IMCREMENT

dante Profilo | Junior Member

scusa, ma perchè non ti crei tu un contatore invece di usare quello di access?
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5