USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Bd repetindo campo
AAA
OURINHOS
SP - BRASIL
Postada em 03/02/2008 06:03 hs            
Estou com o seguinte problema, na base de dados consta 18 registros, no form usando o recordcount aparece somente o total de 15 registros. Gera confusão na ordem dos registros, o que era para ser o último (moveMax) fica no meio da tabela) sem contar a repetição de dados. Ao abrir o bd com o Visual Data Manager, para navegar na tabela em alguns registros é preciso clicar duas vezes, tanto para o próximo como para o anterior, dando a impressão que o registro está duplicado. Eu uso caheve primária, Tem como resolver isto? Abaixo o trecho que uso para fazer a nova inclusão 
If TBeletronico.RecordCount = 0 Then
cod = "0001"
Else
TBeletronico.MoveMax
cod = TBeletronico("Codigo") + 1
End If
TBeletronico.AddNew
     
Roßerto
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 03/02/2008 07:40 hs            
como vc não colocou como vc abre a tabela, vou colocar como eu faço.
 
sSQL = "SELECT * FROM TABELA ORDER BY CODIGO "
SET tb = DBBANCO.OPENRECORDSET(sSQL, dbOpenDynaset)
 
If tb.EOF Then
    cod = "0001"
    tb.AddNew  'Atualizando o banco com o CODIGO utilizado, fazendo dessa maneira
na hora de salvar seus dados vc deve usar o metodo EDIT, fiz dessa maneira para
o sistema trabalhar em rede.
     tb!Codigo = cod
    tb.Update
Else
    tb.MoveMax
    cod = Cdbl(tb!Codigo) + 1
    cod = Format(cod,"0000")  'Colocando no formato 0000
    tb.AddNew  'Atualizando o banco com o CODIGO utilizado, fazendo dessa maneira
na hora de salvar seus dados vc deve usar o metodo EDIT, fiz dessa maneira para
o sistema trabalhar em rede.
     tb!Codigo = cod
    tb.Update
End If
 
Isso é apenas para vc ter uma noção de como fazer.
 
Qualquer duvida volte a postar.
 
Boa Sorte
 
Roberto
   
AAA
OURINHOS
SP - BRASIL
Postada em 03/02/2008 14:46 hs            
Roberto, testei sua duca porém, a propriedade movemax não funciona, deve em razão da forma que é aberto o bd, segue abaixo o código.
Set Banco = OpenDatabase(App.path & "Banco1.mdb")
Set TBeletronico = Banco.OpenRecordset("TBeletronico", dbOpenTable)
TBeletronico.Index = "ProcCodigo"
     
AAA
OURINHOS
SP - BRASIL
ENUNCIADA !
Postada em 03/02/2008 15:37 hs            
Roberto o bd pelo data manager, vi que os dados estão se repetindo e não consigo atualizá-lo. Se excluo todos os registros, no status aparece -3, ou seja três registros negativos, o "PocCodigo" é o nome da chave primária, observei também que foram sobrepostos alguns registros.
   
JOM
BOM JESUS DA LAPA
BA - BRASIL
ENUNCIADA !
Postada em 03/02/2008 20:04 hs            
Tenta esta rotina, comigo sempre da certo:
 
Dim vCodigo as Long

Dim vNovo As Integer

 

vNovo = MsgBox("Deseja fazer novo lançamento ?", vbYesNo + vbQuestion, "Novo")

If vNovo = vbYes Then

 

With cmd

    .ActiveConnection = cnn

    .CommandType = adCmdText

    .CommandText = " select max(cod) as ultimocod from tabela"

    Set rs = .Execute

End With

 

With rs

    If IsNull(rs!ultimocod) Then

    vCodigo = 1

    Else

    vCodigo = !ultimocod + 1

    End If

End With

   
Roßerto
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SAO PAULO
SP - BRASIL
Postada em 04/02/2008 05:17 hs            
AAA, o forum tem um pequeno BUG, quando escrevemos TB.MOVEL A S T, ele muda
para MOVEMAX.
 
Vc está abrindo a sua tabela de modo indexado, tem como vc me mandar o seu form
para poder dar uma analizada ?
 
Roberto
     
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página