AUTONUMERACAO

RALECO 26/11/2009 10:02:58
#328592
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.
NETMANIA 26/11/2009 10:11:00
#328595
Resposta escolhida
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.
RALECO 26/11/2009 10:12:55
#328596
uso o access
ABDON 26/11/2009 11:56:25
#328607
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
PARREIRA 27/11/2009 10:07:02
#328670
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.
PARREIRA 27/11/2009 10:10:30
#328671
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.

LORDAUTUNM 27/11/2009 18:30:38
#328709
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.

RALECO 27/11/2009 21:30:45
#328718
como posso fazer isto no access, o meu é access 2007. Obrigado a todos que puderem me ajudar sou novato no assunto.
LORDAUTUNM 30/11/2009 17:48:53
#328874
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:
RENNERFERNANDES 30/11/2009 18:02:44
#328875
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
Tópico encerrado , respostas não são mais permitidas