CONTADOR ALGUEM AJUDA?

JAMESBOND007 31/05/2010 15:46:58
#343428
No meu projeto queria desenvolver um contador ex:
codigo = 1 cliente = vbmania
na hora que eu for cadastrar outro ele ja mostrace assim
no txtcodigo = 2
que contase automaticamente.
contador = contador + 1.
e que nele não poça ter duplicidade na chave primaria que seria o codigo.
se alguem puder ajudar
MOREIRA 31/05/2010 15:55:44
#343429
Public Sub Matri_Func() [ô]Matricula Cadastral do Funcionario
Sql = [Ô]Select Max(Matricula) As Matric From Tbl_Colobarador[Ô]
Set Rst = Conexao.Execute(Sql)
If IsNumeric(Rst!Matric) = False Then
Frm_CadColabor.TxtMatricula.Text = 1
Else
Frm_CadColabor.TxtMatricula.Text = Format(Rst!Matric + 1, [Ô]000000[Ô])
End If
Frm_CadColabor.TxtMatricula.Text = Frm_Cad_Funcionarios.TxtMatricula.Text
End Sub


no meu caso eu coloquei dentro de um modulo.



JAMESBOND007 31/05/2010 15:56:56
#343430
entendi nada
MOREIRA 31/05/2010 16:02:01
#343432
Resposta escolhida
crie um modulo e cole essa função que postei ai pra você...

depois poste ai a função que vc usa pra gravar os dados.....
JAMESBOND007 31/05/2010 16:03:46
#343434
Public Sub Matri_Func() [ô]Matricula Cadastral do Funcionario
SQL = [Ô]Select Max(código) As Matric From cad_cli[Ô]
Set Rst = objConexao.Execute(SQL)
If IsNumeric(adoRecord!Código) = False Then
Form8.txtcod.Text = 1
Else
Form8.txtcod.Text = Format(adoRecord!Código + 1, [Ô]000000[Ô])
End If
Form8.txtcod.Text = Form8.txtcoc.Text
End Sub
MOREIRA 31/05/2010 16:06:30
#343435
qual a função que você esta usando para gravar os Dados....
JAMESBOND007 31/05/2010 16:10:54
#343436
Private Sub sub_Salva_Dados()
Dim Ssql As String
Dim adoRecord As New ADODB.Recordset
[ô]
Ssql = [Ô]Select [Ô] _
& [Ô] *[Ô] _
& [Ô]From [Ô] _
& [Ô] cad_cli [Ô] _
& [Ô]Where [Ô] _
& [Ô] cad_cli.código = [ô][Ô] & txtcod.Text & [Ô][ô][Ô]

adoRecord.Open Ssql, objConexao, adOpenKeyset, adLockBatchOptimistic
[ô]
If adoRecord.EOF Then
adoRecord.AddNew
adoRecord!Código = txtcod.Text
End If
[ô]
adoRecord!Código = txtcod.Text & [Ô][Ô]
adoRecord!nome_cli = txclinome.Text & [Ô][Ô]
adoRecord!fone_cli = mskFone.Text & [Ô][Ô]
adoRecord!cel_cli = mskCelu.Text & [Ô][Ô]
adoRecord!email_cli = txtcliem.Text & [Ô][Ô]
adoRecord!veic_cli = txtclivei.Text & [Ô][Ô]
adoRecord!ano_cli = mskano.Text & [Ô][Ô]
adoRecord!km_cli = txtclikm.Text & [Ô][Ô]
adoRecord!placa_cli = txtplaca.Text & [Ô][Ô]

[ô]
adoRecord.UpdateBatch adAffectCurrent
[ô]
[ô]sub_Salva_Grid
[ô]
adoRecord.Close
Set adoRecord = Nothing

contador = contador + 1
txtcod.Text = contador
[ô]
End Sub
MOREIRA 31/05/2010 16:15:36
#343437
Private Sub sub_Salva_Dados()
Dim Ssql As String
Dim adoRecord As New ADODB.Recordset
[ô]
Ssql = [Ô]Select [Ô] _
& [Ô] *[Ô] _
& [Ô]From [Ô] _
& [Ô] cad_cli [Ô] _
& [Ô]Where [Ô] _
& [Ô] cad_cli.código = [ô][Ô] & txtcod.Text & [Ô][ô][Ô]

adoRecord.Open Ssql, objConexao, adOpenKeyset, adLockBatchOptimistic
[ô]
If adoRecord.EOF Then
adoRecord.AddNew
adoRecord!Código = txtcod.Text
End If
[ô]
adoRecord!Código = txtcod.Text & [Ô][Ô]
adoRecord!nome_cli = txclinome.Text & [Ô][Ô]
adoRecord!fone_cli = mskFone.Text & [Ô][Ô]
adoRecord!cel_cli = mskCelu.Text & [Ô][Ô]
adoRecord!email_cli = txtcliem.Text & [Ô][Ô]
adoRecord!veic_cli = txtclivei.Text & [Ô][Ô]
adoRecord!ano_cli = mskano.Text & [Ô][Ô]
adoRecord!km_cli = txtclikm.Text & [Ô][Ô]
adoRecord!placa_cli = txtplaca.Text & [Ô][Ô]

[ô]
adoRecord.UpdateBatch adAffectCurrent
[ô]
[ô]sub_Salva_Grid
[ô]
adoRecord.Close
Set adoRecord = Nothing

[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô] contador = contador + 1 nao usar mais
[ô] [ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]txtcod.Text = contador nao usar mais


call Matri_Func <<<------ chamar a função que voce colocou no modulo

MAS... LEMBRANDO EM MUDAR A FUNÇÃO A SUA NECESSIDADE...



End Sub
MSMJUDAS 31/05/2010 16:22:30
#343438
Função para o próximo código:

Public Function ProximoCodigo(vTabela As String, vCampo As String, vCondicao As String)
Dim Rs As New ADODB.Recordset
Sql = [Ô]SELECT MAX([Ô] & Trim(vCampo) & [Ô]) AS CODIGO FROM [Ô] & Trim(vTabela) & [Ô][Ô] & vCondicao & [Ô][Ô]
Rs.Open Sql, dbBanco, adOpenKeyset, adLockReadOnly
If IsNull(Rs([Ô]CODIGO[Ô])) = True Then
ProximoCodigo = 1
Else
ProximoCodigo = Rs([Ô]CODIGO[Ô]) + 1
End If
Rs.Close: Set Rs = Nothing
End Function

Chame assim:

TxtCodigo.Text = ProximoCodigo [Ô]CLIENTES[Ô], [Ô]CLI_CODIGO[Ô]
MOREIRA 31/05/2010 16:24:50
#343439
Seque um exemplo funcional.

[ô]--Grava na Tabela
Sql = [Ô]Insert Into Tbl_Venda (Cod_Cliente, Cliente, End_Cliente)[Ô]
[ô]--
Sql = Sql & [Ô]Values ([Ô]
[ô]--
Sql = Sql & [Ô][ô][Ô] & TxtCod_Cliente.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & TxtCliente.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & Ender & [Ô][ô])[Ô]

Conexao.Execute (Sql)

call Matri_Func [ô]Número da matricula

MsgBox ([Ô]Dados Gravados com Sucesso[Ô]), vbExclamation, [Ô]ATENÇAO[Ô]

OBS: Com Conexao ADO..
Tópico encerrado , respostas não são mais permitidas