Ciao a tutti gli utenti presenti e passati,
ho tentato moltissime soluzioni proposte ma nulla. E quindi... Come si fa a creare un campo che si autoincrementa di 1?
Altro quesito strettamente collegato, quando il campo che si autincrementa andrà azzerato qual è la procedura?
Grazie a tutti gli appassionati di OOo
Campo numerico che si incrementa +1 ed azzeramento
Campo numerico che si incrementa +1 ed azzeramento
OpenOffice 3.3 / win 8
Re: Campo numerico che si incrementa +1 ed azzeramento
Semplice!!!
Se vuoi una certezza del risultato puoi farlo solo tramite macro su un campo numerico normale (non autoincrementante)
Saluti
Se vuoi una certezza del risultato puoi farlo solo tramite macro su un campo numerico normale (non autoincrementante)
Saluti
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
Re: Campo numerico che si incrementa +1 ed azzeramento
Ciao Mizio, anzitutto ti ringrazio della risposta.
ok, le macro ma come faccio praticamente? Mi puoi dare qualche indicazione in più?
grazie mille
ok, le macro ma come faccio praticamente? Mi puoi dare qualche indicazione in più?
grazie mille
OpenOffice 3.3 / win 8
Re: Campo numerico che si incrementa +1 ed azzeramento
Certo
Dove la Fn_SelVN acquisisce e controlla la presa del dato da tabella con il seguente codice:
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
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
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
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
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.