Certo
Codice: Seleziona tutto
private sub cmdNew(oEvent) ' DEFINIZIONE NUOVA RIGA
dim oForm, oConn as object ' OGGETTI SU CUI SI OPERA
dim NBWRK as integer
'---------------------------------------------'
oForm = oEvent.Source.Model.Parent ' ACQ. FORM CORRENTE
oConn = oForm.ActiveConnection ' ACQ. CONN. DB CORRENTE
NBWRK = Fn_SelVN(oConn, "SELECT MAX(NBWRK) FROM T_WRKTES") + 1
oForm.moveToInsertRow() ' MI SPOSTO SULLA NUOVA RIGA
'---------------------------------------------' SCRIVO DATI DI RIGA
oForm.getbyname("NBWRK").text = NBWRK '
oForm.getbyname("NBWRK").commit = true '
oForm.insertrow() ' LA INSERISCO IN DB
end sub ' FINE
Dove la Fn_SelVN acquisisce e controlla la presa del dato da tabella con il seguente codice:
Codice: Seleziona tutto
Public Function Fn_SelVN(DBConn, SQLXC) ' SEL. VAL. NUMERICO DA BD
'---------------------------------------------'
' Apertura resultset attraverso la connessione DBConn e selezione del valore
' numerico contenuto nel primo record trovato che soddisfa la condizione di
' selezione contenuta nell'argomento SQLXC. Gestisce l'errore per sintassi
' SQL errata (Fn_SelVN = -1) e la selezione nulla (Fn_SelVN = 0)
'---------------------------------------------'
dim OBJRSET as object ' VAR. PER RESULTSET
dim NBER as Double
dim DESCR as String
'---------------------------------------------' APERTURA RESULTSET
on error resume next ' GESTIONE ERRORE
OBJRSET = DBConn.createStatement.executeQuery(SQLXC) ' APERTURA RESULTSET
if not isnull(OBJRSET) then ' IF RESULTSET VALIDO
OBJRSET.next ' VADO A PRIMO RECORD
if OBJRSET.row > 0 then ' IF RECORD TROVATO
Fn_SelVN = Val(OBJRSET.getString(1)) ' NUMERO LETTO DA TABELLA
else ' ELSE RESULTSET VUOTO
Fn_SelVN = 0 ' RESTITUISCO 0
endif ' ENDIF RECORD TROVATO O NO
OBJRSET.Close ' CHIUSURA RECORDSET
else ' ELSE RESULTSET NON VALIDO
Fn_SelVN = -1 ' RESTITUISCO -1
End If ' ENDIF PER EOF
End Function ' FINE
Il tutto si basa sull'acquisizione del nuovo numero di protocollo dalla tabella.
La mia tabella si chiama T_WRKTES e la chiave numerica da incrementare è nel campo NBWRK... ovviamente questi nomi li devi personalizzare secondo le tue necessità
Il compitino da svolgere è il seguente:
1) Creare la form per operare sulla tua tabella
2) Creare un bottone che chiamerai ad esempio:
cmdNew con didascalia
Nuovo al quale associ la macro
cmdNew nell'evento
Esegui l'azione
3) Salvi il formulario, lo provi e... ci fai sapere
4) Non c'è un 4!!! Basta così... Al limite se qualcosa non ti torna metti un piccolo esempio del tuo DB con il formulario in cui hai provato il tutto, lo alleghi e vediamo quali problemi sono ancora rimasti
Ok? Saluti e... buon divertimento