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
não registrado
Postada em 04/02/2008 15:05 hs   

Roberto, abaixo segue o código do MDI e do form onde são feitas as inclusões, alterações e exclusões, tirei alguns códigos porque entendo que não são necessários (perfumaria), são validações de controles (enable), focus, cor etc... Acho que foi isto que você pediu?

Form MDI

 

‘Base de materiais

Set Banco = OpenDatabase(App.path & "Banco1.mdb")

 

‘Base de dados de usuários

Set BDS = OpenDatabase(App.path & "Banco.mdb")

 

‘Tabela do material

Set TBeletronico = Banco.OpenRecordset("TBeletronico", dbOpenTable)

 

‘Índice da tabela

TBeletronico.Index = "ProcCodigo"

 

 

Form Eletrônicos (onde quase tudo acontece)

 

Private Declare Function ShellExecute Lib "shell32.dll" _

Alias "ShellExecuteA" (ByVal hwnd As Long, _

ByVal lpOperation As String, ByVal lpFile As String, _

ByVal lpParameters As String, ByVal lpDirectory _

As String, ByVal nShowCmd As Long) As Long

Private Const SW_SHOWNORMAL = 1

Private Sub CboVoltag_GotFocus()

SendKeys "%{DOWN}"

End Sub

 

Private Sub CmdAlterar_Click()

DesLokedEle ‘código está em módulo, bloqueia alguns controles, função LOCKED

TBeletronico.Edit

 

End Sub

 

Private Sub CmdAnterior_Click()

On Error GoTo erro

TBeletronico.MovePrevious

If TBeletronico.BOF = True Then

TBeletronico.MoveNext

End If

MostrarELE  ‘função que está em módulo, copiado no final da página

erro:

Select Case Err

Case 3021

MsgBox "O banco de dados está vázio!", vbCritical

End Select

Exit Sub

End Sub

 

Private Sub CmdExcluir_Click()

On Error GoTo erro

If MsgBox("Confirma Exclusão ?", vbYesNo) = vbYes Then

                        Banco.Execute "DELETE * FROM tbEletronico where codigo like'" & txtCodigo.Text & "'"

                        TBeletronico.MoveMin

                         lblCont.Caption = TBeletronico.RecordCount

End If

Exit Sub

erro:

Select Case Err

Case 3021

                        MsgBox "O banco de dados está vazio!", vbCritical

                        CmdSalvar.Enabled = False

                        LimparEle

                        lblCont.Caption = TBeletronico.RecordCount

            Exit Sub

            Case 3167

                        MsgBox "Todos os registros foram excluídos!", vbCritical

                        CmdSalvar.Enabled = False

                        LimparEle

                        lblCont.Caption = TBeletronico.RecordCount

                        End Select

            Exit Sub

End Sub

 

Private Sub CmdLocalizar_Click()

Dim ProcuraCodigo As String

ProcuraCodigo = InputBox("Digite o Codigo a ser Consultado")

TBeletronico.Seek "=", ProcuraCodigo

If TBeletronico.NoMatch = True Then

MsgBox "Material não Encontrado", vbExclamation

TBeletronico.MovePrevious

End If

MostrarELE

End Sub

 

PARA A INCLUSÃO DE UM NOVO REGISTRO, ONDE ESTÁ DANDO ERRO (EU ACHO”)

Private Sub CmdNovo_Click()

DesLokedEle ‘desbloquear controles

LimparEle ‘limpar controles

Combo1.Enabled = True

txtTipo.SetFocus

Dim cod As Long

If TBeletronico.RecordCount = 0 Then

cod = "0001"

Else

TBeletronico.MoveMax

cod = TBeletronico("Codigo") + 1

End If

txtCodigo.Text = cod

TBeletronico.AddNew

Combo1.SetFocus

End Sub

 

 

 

Private Sub CmdProximo_Click()

On Error GoTo erro

TBeletronico.MoveNext

If TBeletronico.EOF = True Then

TBeletronico.MovePrevious

End If

MostrarELE

erro:

Select Case Err

Case 3021

MsgBox "O banco de dados está vázio!", vbCritical

End Select

Exit Sub

End Sub

 

Private Sub CmdSalvar_Click()

If TxtSec.Text = "" Then

MsgBox "Especifique o destino", vbExclamation

Combo1.SetFocus

Exit Sub

End If

            .

            AQUI SEGUEM AS VALIDAÇÕES DOS CAMPOS

            .

 

TBeletronico!Codigo = txtCodigo.Text

TBeletronico!eleTipo = txtTipo.Text

TBeletronico!eleModelo = txtModelo.Text

TBeletronico!eleMarca = txtMarca.Text

TBeletronico!eleSerie = txtSerie.Text

TBeletronico!eleAcessorio = txtAcessorio.Text

TBeletronico!eleDescricao = txtDescricao.Text

TBeletronico!elePatrimonio = txtPat.Text

TBeletronico!eleOrigem = txtOrigem.Text

TBeletronico!eleDestino = Combo1.Text

TBeletronico!eleRecibo = txtRecebido.Text

TBeletronico.Update

End Sub

 

Private Sub Combo1_GotFocus() ‘PREENCHE A COMBOX COM DADOS DA TB USUÁRIOS

If Combo1.Text = "" Then

Set TbSec = BDS.OpenRecordset("TbSecao", dbOpenTable)

TbSec.Index = "Proc"

End If

Do While Not TbSec.EOF

Combo1.AddItem TbSec("Nome")

Combo1.Refresh

TbSec.MoveNext

Loop

SendKeys "%{DOWN}"

End Sub

 

Private Sub Form_Load()

lblCont.Caption = TBeletronico.RecordCount

MostrarELE

LokedEle

If lblCont.Caption = 0 Then

LimparEle

End If

End Sub

 

Public Function MostrarELE()

On Error GoTo erro

frmElet.txtCodigo.Text = TBeletronico!Codigo

frmElet.txtTipo.Text = TBeletronico!eleTipo

frmElet.txtMarca.Text = TBeletronico!eleMarca

frmElet.txtModelo.Text = TBeletronico!eleModelo

frmElet.txtSerie.Text = TBeletronico!eleSerie

frmElet.txtAcessorio.Text = TBeletronico!eleAcessorio

frmElet.txtDescricao.Text = TBeletronico!eleDescricao

frmElet.txtPat.Text = TBeletronico!elePatrimonio

frmElet.txtOrigem.Text = TBeletronico!eleOrigem

frmElet.TxtSec.Text = TBeletronico!eleDestino

frmElet.txtRecebido.Text = Format(TBeletronico!eleRecibo, "dd/mm/yy")

erro:

Select Case Err

    Case 3021

    MsgBox "O banco de dados está vázio!", vbCritical

    End Select

    Exit Function

End Function

     
Roßerto
não registrado
Postada em 04/02/2008 16:36 hs   


Private Sub CmdNovo_Click()

DesLokedEle 'desbloquear controles

LimparEle 'limpar controles

Combo1.Enabled = True

txtTipo.SetFocus

Dim cod As Long
Dim tb As Recordset
Dim sSQL As String

sSQL = "Select * From tb order by Codigo"

SET tb = banco.OpenRecordset(ssql,dbopendynaset)

If tb.EOF = 0 Then
    cod = "0001"
Else
    tb.Movel a s t
    cod = tb("Codigo") + 1
End If

txtCodigo.Text = cod

Combo1.SetFocus

End Sub

 

Private Sub CmdSalvar_Click()

If TxtSec.Text = "" Then

MsgBox "Especifique o destino", vbExclamation

Combo1.SetFocus

Exit Sub

End If

tb.Addnew

tb!Codigo = txtCodigo.Text

tb!eleTipo = txtTipo.Text

tb!eleModelo = txtModelo.Text

tb!eleMarca = txtMarca.Text

tb!eleSerie = txtSerie.Text

tb!eleAcessorio = txtAcessorio.Text

tb!eleDescricao = txtDescricao.Text

tb!elePatrimonio = txtPat.Text

tb!eleOrigem = txtOrigem.Text

tb!eleDestino = Combo1.Text

tb!eleRecibo = txtRecebido.Text

tb.Update

End Sub

e adicionando a seguinte declaração no form

DIM TB AS RECORDSET

Roberto

     
AAA
não registrado
Postada em 04/02/2008 21:35 hs   
Roberto, obrigado pela dica, coloquei o código e por enquanto está dando certo, vou fazer mais testes. Valeu
     
Roßerto
não registrado
Postada em 04/02/2008 22:29 hs   
Agnaldo, do jeito que eu fiz, não tem como o programa trabalhar em rede
 
agora lendo o codigo, cometi alguns erros(codificar sem VB é triste)
acredito que vc deve ter percebido. hehehehe
 
boa sorte
 
Roberto
     
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
Postada em 05/02/2008 12:31 hs            
Tente desta forma
 
If TBeletronico.RecordCount =0 Then
cod = "0001"
Else
TBeletronico.MoveL_st' _ = a move para o ultimo registro
cod = format(TBeletronico("Codigo") +1,"0000") ' e acrescenta +1 a este
End If
TBeletronico.AddNew
TBeletronico("codigo")=cod' se não tiver esta linha ele não vai salvar a alteração
TBeletronico.Update
 
veja se funciona desta forma
TÓPICO EDITADO
   
AAA
OURINHOS
SP - BRASIL
ENUNCIADA !
Postada em 06/02/2008 09:34 hs            
Roberto, fiz os ajustes e deu certo, até agora não deu erro algum.
Treze, vou testar seu código, é bom ter uma carta na manga, hehehehe.
Valeu.
   
Página(s): 2/2     « ANTERIOR  


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