AUTONUMERACAO
Aguem sabe me informar como encontrar ou criar o codigo de uma autonumeração para que não repita o cadastro (codigo) em VB 6.0
Ex: cada cadastro com seu codigo.
Ex: cada cadastro com seu codigo.
Você pode usar o recurso direto no banco de dados usando campos de auto-numeração (MySQL, SQL Server, Access) ou uma Sequence (Oracle e Postgree). Usar uma rotina de numeração externa (como era usado nos tempos do Clipper e DBase III) em uma tabela externa você pode gerar dois númeos ao mesmo tempo e gerar confusão na sua aplicação.
uso o access
usa essa função conserteza vai dar certo!
Public Function AutoCod(TData As data, Campo As String, Tabela As String) As Integer
If TData.Recordset.RecordCount = 0 Then
AutoCod = 1
Else
TData.RecordSource = [Ô]SELECT * FROM [Ô] + Tabela + [Ô] ORDER BY [Ô] + Campo
TData.Refresh
TData.Recordset.MoveLast
AutoCod = TData.Recordset(Campo) + 1
TData.Recordset.AddNew
End If
End Function
Public Function AutoCod(TData As data, Campo As String, Tabela As String) As Integer
If TData.Recordset.RecordCount = 0 Then
AutoCod = 1
Else
TData.RecordSource = [Ô]SELECT * FROM [Ô] + Tabela + [Ô] ORDER BY [Ô] + Campo
TData.Refresh
TData.Recordset.MoveLast
AutoCod = TData.Recordset(Campo) + 1
TData.Recordset.AddNew
End If
End Function
dim sSql as string
dim codigo as integer
sSql = [Ô]SELECT TOP 1 (CODIGO) FROM TABELA
sSql = sSql & [Ô] ORDER BY CODIGO DESC
*aux.open ssql,conexão,adopenkeyset
if aux.recordcount <= 0
codigo = 1
else
codigo = aux!codigo + 1
endif
* aux é o meu recordset,vc deve usar o nome do seu recordset.
Esse é um jeito que pode te ajudar ,se o seu campo no banco de dados não é do tipo identity.
dim codigo as integer
sSql = [Ô]SELECT TOP 1 (CODIGO) FROM TABELA
sSql = sSql & [Ô] ORDER BY CODIGO DESC
*aux.open ssql,conexão,adopenkeyset
if aux.recordcount <= 0
codigo = 1
else
codigo = aux!codigo + 1
endif
* aux é o meu recordset,vc deve usar o nome do seu recordset.
Esse é um jeito que pode te ajudar ,se o seu campo no banco de dados não é do tipo identity.
Citação:PARREIRA escreveu:
dim sSql as string
dim codigo as integer
sSql = [Ô]SELECT TOP 1 (CODIGO) FROM TABELA [Ô]
sSql = sSql & [Ô] ORDER BY CODIGO DESC[Ô]
*aux.open ssql,conexão,adopenkeyset
if aux.recordcount <= 0
codigo = 1
else
codigo = aux!codigo + 1
endif
* aux é o meu recordset,vc deve usar o nome do seu recordset.
Esse é um jeito que pode te ajudar ,se o seu campo no banco de dados não é do tipo identity.
Oh vei usa autoNumeração (NumeraçãoAutomatica) o acess tem isso!
Quanto a Função TOP pode causa duplicidade em um sistema em rede se por ventura o numero for requerido antes do Update e demorar efetuar o update. tipo Assim vc abre o cadastro em maquinas diferentes requer o numero do registro o numero vai ser o mesmo caso nao haja update.
Quanto a Função TOP pode causa duplicidade em um sistema em rede se por ventura o numero for requerido antes do Update e demorar efetuar o update. tipo Assim vc abre o cadastro em maquinas diferentes requer o numero do registro o numero vai ser o mesmo caso nao haja update.
como posso fazer isto no access, o meu é access 2007. Obrigado a todos que puderem me ajudar sou novato no assunto.
no tipo de Campo, onde vc escolhe se é numero, texto, data e assim por diante, deve ter algo com autonumeração ou numeraçãoautomatica.
O tipo de Dados Sera inteiro Long do sem o acess 2007 ma seria assim:
O tipo de Dados Sera inteiro Long do sem o acess 2007 ma seria assim:
On Local Error GoTo codigo
cliente.MoveFirst
While Not cliente.EOF
x = cliente!codigo
cliente.MoveNext
Wend [ô] finaliza o while
txtcodigo.Text = x + 1
Exit Sub
codigo:
txtcodigo.Text = 1
custumo usar isto..da certo e no caso de demorar o update, crio no botão cadastrar uma verificação para descobrir a existência deste código, caso exsista, ele irá clicar no botão novo e gerar novo código
cliente.MoveFirst
While Not cliente.EOF
x = cliente!codigo
cliente.MoveNext
Wend [ô] finaliza o while
txtcodigo.Text = x + 1
Exit Sub
codigo:
txtcodigo.Text = 1
custumo usar isto..da certo e no caso de demorar o update, crio no botão cadastrar uma verificação para descobrir a existência deste código, caso exsista, ele irá clicar no botão novo e gerar novo código
Tópico encerrado , respostas não são mais permitidas