CODIGO CHAVE SEQUENCIAL - ADO/SQL.

USUARIO.EXCLUIDOS 15/09/2006 16:18:01
#171731
Consegui dessa forma:

INSERT INTO Tabela1 ( codigo )
SELECT Max(Tabela1.codigo) + 1
FROM Tabela1;


Mas só funciona inserindo informações em somente um campo, em mais de um não consegui rodar ainda não...

mas to tentando, qualquer coisa eu posto aqui.
USUARIO.EXCLUIDOS 15/09/2006 16:31:29
#171737
Marcelo, pra inserir direto da forma que fez e com mais de um campo seria:

INSERT INTO Tabela1 ( codigo, nome )
VALUES((SELECT Max(Tabela1.codigo) + 1 FROM Tabela1), 'SeuNome');


Ou então:
INSERT INTO Tabela1 ( codigo, nome )
SELECT Max(Tabela1.codigo) + 1, 'SeuNome' As Nome
FROM Tabela1;


Falow...
USUARIO.EXCLUIDOS 15/09/2006 16:44:11
#171747
Matioli,

tentei isso viu cara, no Access e deu o erro que o maninho ali falou...

já havia tentado das duas formas que vc falou, ou eu fiz alguma coisa errada ou só funciona no SQL Server
F001E 15/09/2006 16:55:00
#171753
Marcelo....no SQL SERVER é desse jeito q vc faz::

If TBClientes.State = 1 Then TBClientes.Close
StringSQL = "Select MAX(Codigo) from Clientes"
TBClientes.Open StringSQL, Cnn, adOpenDynamic
If IsNull(TBClientes(0)) = True Then
MaxCodigo = "000001"
Else
MaxCodigo = Format(TBClientes(0) + 1, "000000")
End If

StringSQL = "Insert Into Clientes (Codigo) Values ('" & MaxCodigo & "')

o Maxcodigo esta com format para o codigo ficar assim...
000001
000002
000003 e assim sucessivamente.....

espero que possa ajudar.....
USUARIO.EXCLUIDOS 15/09/2006 16:57:52
#171755
Citação:

MARCELOHF escreveu:
Matioli,

tentei isso viu cara, no Access e deu o erro que o maninho ali falou...

já havia tentado das duas formas que vc falou, ou eu fiz alguma coisa errada ou só funciona no SQL Server



xi...desculpa então...^^
USUARIO.EXCLUIDOS 15/09/2006 17:01:08
#171759
acontece né MATIOLI... é da vida! haha

F001E, assim tudo bem né, agente até sabe, agente anda apanhando pra fazer tudo na mesma instrução SQL.
F001E 15/09/2006 17:06:31
#171762
pode cre.... é q eu nunca tentei fazer na mesma instrução.....
F001E 15/09/2006 17:12:46
#171764
mas eu estava vendo o comentario da Elaine.... ela falou q poderá ter problemas com multiusuario....bom.. ela pode gerar o Codigo quando ele for gravar....assim quando o SQL nunca vai gravar dois Códigos iguais...ou é um ou é o outro....nunca vai bater os Codigo...eu uso assim e funciona..a não ser q seja com duas tabelas....daí e de outra forma....
USUARIO.EXCLUIDOS 15/09/2006 17:22:29
#171770
é... se eu não me engano isso já foi até postado aqui também...

mais ai o assunto foi indo e chegamos nesse assunsto de Insert e Select juntos em banco Access que não funfa de jeito nenhum! hehe
USUARIO.EXCLUIDOS 15/09/2006 18:09:54
#171783
Olá Pessoal,

Eu faço da maneira abaixo utilizando Access. Eu pego o código no momento que o usuário grava as informações e não qdo ele inicia a inclusão do registro. Mesmo rodando em multiusuários não ocorre de gerar códigos duplicados.


Dim RsConfirma As New ADODB.Recordset
Sql = "Select COD_CLI, [NOME/RAZ_SOC] from Clientes order by COD_CLI"
RsConfirma.Open Sql, cnn, adOpenDynamict, adLockReadOnly
If Not RsConfirma.EOF Then
RsConfirma.MoveLast
CODIGO = RsConfirma!cod_cli + 1
RsConfirma.MoveFirst
RsConfirma.Find "[NOME/RAZ_SOC] = '" + txtNome.text + "'"
If Not RsConfirma.EOF Then
X = MsgBox("Cliente já cadastrado.", 16, "XXXX")
Screen.MousePointer = 0
txtNome.SetFocus
Exit Sub
End If
Else
CODIGO = 1
End If
RsConfirma.Close



Espero poder ter ajudado...

Flw...

Abraços.
Página 2 de 4 [32 registro(s)]
Tópico encerrado , respostas não são mais permitidas