VB 6.0 GRAVANDO ORDEM CRESCENTE, AJUDA?
Galera, sou novo no forum. Preciso de uma ajudinha, o problema é o seguinte:
Tenho que gravar as informações em ordem crescente no Access, tipo, codigo do cliente, e na txtCodigo tenho que colocar o numero do proximo codigo a ser gravado. Assim, eu vou gravando em ordem crescente normalmente, mas quando fecho e depois abro novamente, ele começa a gravar a partir do 1.
Private Sub cmdGravar_Click()
Status = [Ô]Gravadas[Ô]
Call Desativar
dtpNasc.Value = Date
Conectar.Execute [Ô]Insert Into Clientes(Codigo, Nome, Sobre_Nome, CEP, Sexo, Residencial, Comercial, Celular, Recados, Dt_Nasc, Fumante, Numero, Complemento) values([ô][Ô] & txtCodigo & [Ô][ô], [ô][Ô] & txtNome & [Ô][ô], [ô][Ô] & txtSNome & [Ô][ô], [ô][Ô] & mskCEP & [Ô][ô], [ô][Ô] & L_OptMF & [Ô][ô], [ô][Ô] & mskRes & [Ô][ô], [ô][Ô] & mskCom & [Ô][ô], [ô][Ô] & mskCel & [Ô][ô], [ô][Ô] & mskRec & [Ô][ô], [ô][Ô] & dtpNasc & [Ô][ô], [ô][Ô] & L_Fumo & [Ô][ô], [ô][Ô] & txtNum & [Ô][ô], [ô][Ô] & txtCompl & [Ô][ô])[Ô]
Call cmdNovo_Click
Call Aviso_1
Call Ativar
End Sub
qual é o tipo do campo código na tabela? se for texto altere paea numero ou auto numeração
Ele esta como Numero, mas tenho que usar numero, faz parte da lógica. Sabe algo pra introduzido na codificação?
Mude o campo Código para Autonumeração no banco de dados, eremova a citação dele na instrução SQL:
Conectar.Execute [Ô]Insert Into Clientes(Nome, Sobre_Nome, CEP, Sexo, Residencial, Comercial, Celular, Recados, Dt_Nasc, Fumante, Numero, Complemento) values([ô][Ô] & txtNome & [Ô][ô], [ô][Ô] & txtSNome & [Ô][ô], [ô][Ô] & mskCEP & [Ô][ô], [ô][Ô] & L_OptMF & [Ô][ô], [ô][Ô] & mskRes & [Ô][ô], [ô][Ô] & mskCom & [Ô][ô], [ô][Ô] & mskCel & [Ô][ô], [ô][Ô] & mskRec & [Ô][ô], [ô][Ô] & dtpNasc & [Ô][ô], [ô][Ô] & L_Fumo & [Ô][ô], [ô][Ô] & txtNum & [Ô][ô], [ô][Ô] & txtCompl & [Ô][ô])[Ô]
Dim rs As Recordset
Dim sSQL As String
sSQL = [Ô]SELECT MAX(Codigo) as MaxCod From Clientes[Ô]
Set rs = Conectar.Execute(sSQL)
If Not IsNull(rs!MaxCod) Then
txtCodigo.Text = Val(rs!MaxCod + 1)
End If
Isso vai aumentar de forma crescente.
Dim sSQL As String
sSQL = [Ô]SELECT MAX(Codigo) as MaxCod From Clientes[Ô]
Set rs = Conectar.Execute(sSQL)
If Not IsNull(rs!MaxCod) Then
txtCodigo.Text = Val(rs!MaxCod + 1)
End If
Isso vai aumentar de forma crescente.
vou te dar uma dica de como eu faço aqui:
1° chamo essas duas função no botão de gravar:
Grava_dados [ô]grava os dados uma função que eu criei para fazer o processo de gravação
Verifica_dados [ô]verifica se é o ultimo registro, ex. que vc não gravou nenhum registro então vai gravar o codigo 1 se não o ultimo registro
2° função gravar dados
Conexao.Execute [Ô]INSERT INTO nomeTB (campo1TB,campo2TB,campo3TB) VALUES[Ô] & _ [ô]aqui são os campos da tabela
[Ô]([ô][Ô] & objeto1.propriedade & [Ô][ô],[ô][Ô] & text2.Text & [Ô][ô],[ô][Ô] & label ou que seja.caption & [Ô][ô])[Ô] [ô]aqui são os objetos text.txt, label.caption, combo.index etc...
3° função que verifica os dados
Dim RS As Recordset
Dim sSQL As String
[ô] esta sub desenvolvi para criar o codigo do proximo registro, tipo numeração
sSQL = [Ô]SELECT MAX(codigo) As UltimoCodigo FROM agenda[Ô] [ô] aqui faço um select que pega o ultimo codigo incluido (MAX(codigo))
Set RS = Conexao.Execute(sSQL)
If IsNull(RS!ultimocodigo) = True Then [ô] se o banco ainda estiver vazio então será incluido o numero 1
MsgBox ([Ô]Você não Tem Nenhum Registro Cadastrado![Ô]), vbInformation
Limpa_campos [ô] uma função que criei para limpar os campos
Else
If Not (RS.EOF And RS.BOF) Then
codigo.Caption = RS!ultimocodigo [ô](+ 1)[ô] [ô] depois adiciono mais um a este ultimo codigo
End If
espero ter ajudado, mais se quiser tirar mais duvidas, diga onde é o erro, como ta os campos da tabela e as propriedades assim fica mais facil para o pessoal ajudar....
um forte abraço e Jesus te Ama!
http://www.youtube.com/watch?feature=player_embedded&v=JxS38NeUoXc
1° chamo essas duas função no botão de gravar:
Grava_dados [ô]grava os dados uma função que eu criei para fazer o processo de gravação
Verifica_dados [ô]verifica se é o ultimo registro, ex. que vc não gravou nenhum registro então vai gravar o codigo 1 se não o ultimo registro
2° função gravar dados
Conexao.Execute [Ô]INSERT INTO nomeTB (campo1TB,campo2TB,campo3TB) VALUES[Ô] & _ [ô]aqui são os campos da tabela
[Ô]([ô][Ô] & objeto1.propriedade & [Ô][ô],[ô][Ô] & text2.Text & [Ô][ô],[ô][Ô] & label ou que seja.caption & [Ô][ô])[Ô] [ô]aqui são os objetos text.txt, label.caption, combo.index etc...
3° função que verifica os dados
Dim RS As Recordset
Dim sSQL As String
[ô] esta sub desenvolvi para criar o codigo do proximo registro, tipo numeração
sSQL = [Ô]SELECT MAX(codigo) As UltimoCodigo FROM agenda[Ô] [ô] aqui faço um select que pega o ultimo codigo incluido (MAX(codigo))
Set RS = Conexao.Execute(sSQL)
If IsNull(RS!ultimocodigo) = True Then [ô] se o banco ainda estiver vazio então será incluido o numero 1
MsgBox ([Ô]Você não Tem Nenhum Registro Cadastrado![Ô]), vbInformation
Limpa_campos [ô] uma função que criei para limpar os campos
Else
If Not (RS.EOF And RS.BOF) Then
codigo.Caption = RS!ultimocodigo [ô](+ 1)[ô] [ô] depois adiciono mais um a este ultimo codigo
End If
espero ter ajudado, mais se quiser tirar mais duvidas, diga onde é o erro, como ta os campos da tabela e as propriedades assim fica mais facil para o pessoal ajudar....
um forte abraço e Jesus te Ama!
http://www.youtube.com/watch?feature=player_embedded&v=JxS38NeUoXc
Muito obrigado, conseguir resolver, obrigado mesmo!!
encerre o tópico amigo e poste como vc conseguiu para quem esta aprendendo usar tbm a dica.
Tópico encerrado , respostas não são mais permitidas