Ir para conteúdo
caguerra

Ajuda Vba Banco De Dados De Inventario

Recommended Posts

Eu não tenho muita experiência no desenvolver um código VBA. Estou tentandocriar um DataBase, mas está indo totalmente muito bem.

Os dados que eu preciso já está no arquivo do excel

Eu estu tentando atualizar a lista, adicionar, excluir pessoasou itens, mas está indo tudo errado ele nao adiciona ou muda nenhum dados da planilha

O botão (pesquisa, adicionar e outros funcionam,mas não fazem a ação correta



Eu não sei o que eu fiz de errado

desde ja agardeco pela ajuda

Option Explicit


Dim blnNew As Boolean
Dim TRows, i As Long

 

Private Sub AddNew_Click()
blnNew = True
TextVendor.Text = ""
TextPON.Text = ""
    TextPartNo.Text = ""
    TextSN.Text = ""
    TextItemCondition.Text = ""
    TextDescription.Text = ""
    TextPOP.Text = ""
    TextDR.Text = ""
    
    CloseButton.Caption = "Cancel"
    SaveButton.Enabled = False
    DeleteButton.Enabled = False

End Sub

Private Sub CloseButton_Click()
If CloseButton.Caption = "Close" Then
Unload Me
Else
CloseButton.Caption = "Close"
AddNew.Enabled = True
DeleteButton.Enabled = True
End If

'If Trim(TextVendor.Text) = "" Then
'MsgBox "Enter Vendor Name", vbCritical, "Save"
'End If
'Call prSave
End Sub

Private Sub DeleteButton_Click()
TRows = Worksheets("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
 Dim strDel
  strDel = MsgBox("Delete ?", vbYesNo, "Delete")
  If strDel = vbYes Then
    For i = 2 To TRows
      If Trim(Worksheets("Inventory Assets").Cells(i, 1).Value) = Trim(VendorSelect.Text) Then
    'Sheet1.Range(i & ":" & i).Delete
     Worksheets("Inventory Assets").Range(i & ":" & i).Delete

    TextVendor.Text = ""
    TextPON.Text = ""
    TextPartNo.Text = ""
    TextSN.Text = ""
    TextItemCondition.Text = ""
    TextDescription.Text = ""
    TextPOP.Text = ""
    TextDR.Text = ""
    Call ComboBoxFill
    Exit For
     End If
     Next i
     If Trim(VendorSelect.Text) = "" Then  
    SaveButton.Enabled = False
    DeleteButton.Enabled = False
     Else
    SaveButton.Enabled = True
    DeleteButton.Enabled = True
     End If
'     If Trim(PON.Text) = "" Then  
'    cmdSave.Enabled = False
'    cmdDelete.Enabled = False
'     Else
'    cmdSave.Enabled = True
'    cmdDelete.Enabled = True
'     End If
'    If Trim(PartNoSelect.Text) = "" Then  
'    cmdSave.Enabled = False
'    cmdDelete.Enabled = False
'     Else
'    cmdSave.Enabled = True
'    cmdDelete.Enabled = True
'     End If
'      If Trim(SNSelect.Text) = "" Then  
'    cmdSave.Enabled = False
'    cmdDelete.Enabled = False
'     Else
'    cmdSave.Enabled = True
'    cmdDelete.Enabled = True
'     End If
'      If Trim(ItemCondtionSelect.Text) = "" Then  
'    cmdSave.Enabled = False
'    cmdDelete.Enabled = False
'     Else
'    cmdSave.Enabled = True
'    cmdDelete.Enabled = True
'     End If
'     If Trim(DescriptionSelect.Text) = "" Then  
'    cmdSave.Enabled = False
'    cmdDelete.Enabled = False
'     Else
'    cmdSave.Enabled = True
'    cmdDelete.Enabled = True
'     End If
'     If Trim(POPSelect.Text) = "" Then 
'    cmdSave.Enabled = False
'    cmdDelete.Enabled = False
'     Else
'    cmdSave.Enabled = True
'    cmdDelete.Enabled = True
'     End If
'     If Trim(DRSelect.Text) = "" Then  
'    cmdSave.Enabled = False
'    cmdDelete.Enabled = False
'     Else
'    cmdSave.Enabled = True
'    cmdDelete.Enabled = True
'     End If
  End If
    
End Sub
Private Sub SaveButton_Click()
If Trim(TextVendor.Text) = "" Then
MsgBox "Enter Vendor Name", vbCritical, "Save"
End If
Call prSave

End Sub
Private Sub SearchButton_Click()
blnNew = False
    TextVendor.Text = ""
    TextPON.Text = ""
    TextPartNo.Text = ""
    TextSN.Text = ""
    TextItemCondition.Text = ""
    TextDescription.Text = ""
    TextPOP.Text = ""
    TextDR.Text = ""

    TRows = Worksheets("Inventory Assets").Range("A3").CurrentRegion.Rows.Count
    For i = 3 To TRows
        If Val(Trim(Worksheets("Inventory Assets").Cells(i, 1).Value)) = Val(Trim(VendorSelect.Text)) Then
 
                TextVendor.Text = Worksheets("Inventory Assets").Cells(i, 1).Value
                TextPON.Text = Worksheets("Inventory Assets").Cells(i, 2).Value
                TextPartNo.Text = Worksheets("Inventory Assets").Cells(i, 3).Value
                TextSN.Text = Worksheets("Inventory Assets").Cells(i, 4).Value
                TextItemCondition.Text = Worksheets("Inventory Assets").Cells(i, 5).Value
                TextDescription.Text = Worksheets("Inventory Assets").Cells(i, 6).Value
                TextPOP.Text = Worksheets("Inventory Assets").Cells(i, 7).Value
                TextDR.Text = Worksheets("Inventory Assets").Cells(i, 8).Value
                Exit For
        End If
        Next i
    If TextVendor.Text = "" Then
    Else
        SaveButton.Enabled = True
        DeleteButton.Enabled = True
    End If
    
End Sub
Private Sub prSave()

    If blnNew = True Then
    TRows = Worksheets("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    With Worksheets("Inventory Assets").Range("A1")
        .Offset(TRows, 0).Value = TextVendor.Text
        .Offset(TRows, 1).Value = TextPON.Text
        .Offset(TRows, 2).Value = TextPartNo.Text
        .Offset(TRows, 3).Value = TextSN.Text
        .Offset(TRows, 4).Value = TextItemCondition.Text
        .Offset(TRows, 5).Value = TextDescription.Text
        .Offset(TRows, 6).Value = TextPOP.Text
        .Offset(TRows, 7).Value = TextDR.Text
    End With
        TextVendor.Text = ""
        TextPON.Text = ""
        TextPartNo.Text = ""
        TextSN.Text = ""
        TextItemCondition.Text = ""
        TextDescription.Text = ""
        TextPOP.Text = ""
        TextDR.Text = ""
        Call ComboBoxFill
    Else
    For i = 2 To TRows
     If Trim(Worksheets("Inventory Assets").Cells(i, 1).Value) = (VendorSelect.Text) Then
        Worksheets("Inventory Assets").Cells(i, 1).Value = TextVendor.Text
        Worksheets("Inventory Assets").Cells(i, 2).Value = TextPOP.Text
        Worksheets("Inventory Assets").Cells(i, 3).Value = TextPartNo.Text
        Worksheets("Inventory Assets").Cells(i, 4).Value = TextSN.Text
        Worksheets("Inventory Assets").Cells(i, 5).Value = TextItemCondition.Text
        Worksheets("Inventory Assets").Cells(i, 6).Value = TextDescription.Text
        Worksheets("Inventory Assets").Cells(i, 7).Value = TextPOP.Text
        Worksheets("Inventory Assets").Cells(i, 8).Value = TextDR.Text
        TextVendor.Text = ""
        TextPOP.Text = ""
        TextPartNo.Text = ""
        TextSN.Text = ""
        TextItemCondition.Text = ""
        TextDescription.Text = ""
        TextPOP.Text = ""
        TextDR.Text = ""
        Exit For
    End If
Next i
End If
blnNew = False
End Sub
Private Sub ComboBoxFill()
    TRows = Worksheets("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    VendorSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Worksheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub

''Private Sub ComboBoxFill()
'    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
'    PON.Clear
'    For i = 2 To TRows
'        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
'    Next i
'End Sub
''Private Sub ComboBoxFill()
'    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
'    PartNoSelect.Clear
'    For i = 2 To TRows
'        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
'    Next i
'End Sub
''Private Sub ComboBoxFill()
'    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
'    SNSelect.Clear
'    For i = 2 To TRows
'        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
'    Next i
'End Sub
''Private Sub ComboBoxFill()
'    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
'    ItemCondtionSelect.Clear
'    For i = 2 To TRows
'        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
'    Next i
'End Sub
''Private Sub ComboBoxFill()
'    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
'    DescriptionSelect.Clear
'    For i = 2 To TRows
'        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
'    Next i
'End Sub
''Private Sub ComboBoxFill()
'    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
'    POPSelect.Clear
'    For i = 2 To TRows
'        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
'    Next i
'End Sub
''Private Sub ComboBoxFill()
'    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
'    DRSelect.Clear
'    For i = 2 To TRows
'        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
'    Next i
'End Sub

'Rows(7).Select
'Columns(2).Select( para pegar a coluna e fileira

Private Sub Test_Initialize()
    Call prCommBoxFill
    
    SaveButton.Enable = False
    DeleteButton.Enable = False

End Sub

Private Sub VendorSelect_Change()
TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    VendorSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Worksheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub
Private Sub PONSelect_Change()
 TRows = Workplace("Inventory Assets").Range("B2").CurrentRegion.Rows.Count
    PON.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Worksheets("Inventory Assets").Cells(i, 1).Value
    Next i

End Sub
Private Sub PartNoSelect_Change()
'Private Sub ComboBoxFill()
    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    PartNoSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Worksheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub
Private Sub SNSelect_Change()
'Private Sub ComboBoxFill()
    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    SNSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Worksheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub
Private Sub ItemConditionSelect_Change()
'Private Sub ComboBoxFill()
    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    ItemCondtionSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub
Private Sub DescriptionSelect_Change()
'Private Sub ComboBoxFill()
    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    DescriptionSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub
Private Sub POPSelect_Change()
'Private Sub ComboBoxFill()
    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    POPSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Worksheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub
Private Sub DRSelect_Change()
'Private Sub ComboBoxFill()
    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    DRSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub
Private Sub Search_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

End Sub


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Vagner Nunes
      Prezados,
       
      Tenho um ambiente, que tem cerca de uns 80 sites publicados, o problema que está ocorrendo, que além da lentidão, hora aparece a mensagem A connection attempt failed because the connected party did nor properly respond a period of time, or established connection failed because connected host has failed to respond. 
       
      Neste ambiente, as minhas páginas são em ASP.NET com C#, com conexão ao banco de dados MySql.
       
      Não sei como proceder nesta situação, poderiam me ajudar?
       

       
    • Por Fábio.info7
      Olá pessoal, estou precisando de uma grande ajuda, tenho duas tabelas no postgres, são elas: PESSOA e a outra é  ENDERECOS, elas estão relacionadas, oq acontece é que no php eu preciso recuperar o valor do id através da função nextval('nome_da_sequnce'), e não estou sabendo fazer, preciso recuperar o ultimo id e depois realizar o insert nas tabelas relacionadas, poderiam me dar um exemplo de como implementar isso? abaixo deixo o meu codigo php, acredito que esteja errado pois não esta gravando no banco.
       
      Minhas tabelas do banco: CREATE TABLE public.pessoa ( codigo_aluno integer NOT NULL DEFAULT nextval('pessoa_codigo_aluno_seq'::regclass), cpf character varying(11) COLLATE pg_catalog."default" NOT NULL, nome character varying(30) COLLATE pg_catalog."default" NOT NULL, sexo character varying(30) COLLATE pg_catalog."default" NOT NULL, nascimentodata date NOT NULL, email character varying(50) COLLATE pg_catalog."default" NOT NULL, endereco integer, CONSTRAINT pessoa_pkey PRIMARY KEY (codigo_aluno), CONSTRAINT pessoa_endereco_fkey FOREIGN KEY (endereco) REFERENCES public.enderecos (codigo_endereco) ) CREATE TABLE public.enderecos ( codigo_endereco integer NOT NULL DEFAULT nextval('enderecos_codigo_endereco_seq'::regclass), logradouro character varying(200) COLLATE pg_catalog."default" NOT NULL, bairro character varying(80) COLLATE pg_catalog."default" NOT NULL, cidade character varying(100) COLLATE pg_catalog."default" NOT NULL, uf character varying(2) COLLATE pg_catalog."default" NOT NULL, cep character varying(20) COLLATE pg_catalog."default" NOT NULL, CONSTRAINT enderecos_pkey PRIMARY KEY (codigo_endereco) ) ****** ABAIXO O PHP *************************************** <?php try { require_once "conexao.php"; $dados = filter_input_array(INPUT_POST, FILTER_DEFAULT); $sql = "select nextval('pessoa_codigo_aluno_seq')"; $seq = $conn->prepare($sql); $id = $seq->execute(); $id = $seq->fetchAll(PDO::FETCH_ASSOC); $sql = "insert into pessoa (cpf, nome, sexo, nascimentodata, email, endereco ) values (:cpf, :nome, :sexo, :nascimentodata, :email, :fk_endereco )"; $inserir = $conn->prepare($sql); $inserir->bindParam(":cpf", $dados["cpf"]); $inserir->bindParam(":nome", $dados["nome"]); $inserir->bindParam(":sexo", $dados["sexo"]); $inserir->bindParam(":nascimentodata", $dados["nascimentodata"]); $inserir->bindParam(":email", $dados["email"]); $inserir->bindParam(":fk_endereco", $id['codigo_endereco']); $inserir->execute(); // Gravando dados de endereço $sql_end = "insert into enderecos (codigo_endereco, logradouro, bairro, cidade, uf, cep, pessoa )values(:codigo_endereco, :logradouro,:bairro,:cidade,:uf,:cep, :pessoa)"; $end = $conn->prepare($sql_end); $end->bindParam(":codigo_endereco", $id['codigo_endereco']); $end->bindParam(":logradouro", $dados["logradouro"]); $end->bindParam(":bairro", $dados["bairro"]); $end->bindParam(":cidade", $dados["cidade"]); $end->bindParam(":uf", $dados["uf"]); $end->bindParam(":cep", $dados["cep"]); $end->execute(); echo "Dados gravados com sucesso!"; } catch (Exception $e) { echo "Mensagem: " . $e->getMessage() . "<br/>"; echo "Linha do Erro: " . $e->getLine() . "<br/>"; } PRECISO CONSEGUIR INSERIR OS DADOS NAS DUAS TABELAS INSERINDO OS IDS RECUPERADOS PELO NEXTVAL()
    • Por FIM1999
      Preciso montar um sistema para geração automática de carteirinha para membros de um clube de benefícios. Alguém já tem alguma codificação pronta para isso?
      Ou então sabe como fazer?
    • Por luisfeliperm2
      Quero selecionar 10 noticias do banco de dados, irei utilizar paginação, então na próxima pagina será selecionada da 11-20, 21-30. Só que em todos esses select eu quero que venha a noticia principal que é definida pela coluna "destaque".  O motivo é que eu não quero usar 2 select pra buscar noticias.
      Pra ser bem resumido, eu quero selecionar a noticia principal e depois selecionar mais 10 que podem ser qualquer uma
       
      Tentei da seguinte forma:
      select * from news where destaque = true UNION select * from news ORDER BY id DESC LIMIT 10 OFFSET 1;
    • Por cleitonkloc
      Olá, estou desenvolvendo um banco de dados para coletar informações e relatar para a Diretoria as despesas e custos dos veículos.
      Estou um pouco enferrujado, devido minha área atualmente ser a contabilidade.
       
      Preciso que quando informado a Placa do veículo ao descer para o próximo input seja informado o tipo de combustível que aquele veículo utiliza (variando entre Gasolina e Diesel) puxando do cadastro do veículo.
      Por exemplo: Selecionei a placa MMA5554 e ao descer para o próximo input ou na hora que selecionar a placa ele busca no bando de dados e informa o tipo de combustível (para evitar erro no lançamento e facilitar o registro).
      <label>VEÍCULO:</label><br/> <select class="campo_digitar" name="veiculo"> <option>-- Selecione --</option> <?php $consultasql = "SELECT * FROM kloc_panelcontrol.veiculo order by id "; $lista_empresa = $con->query($consultasql); while ($dados = $lista_empresa->fetch()) { ?> <option value="<?php echo $dados['id'];?>"><?php echo $dados['placa'];?></option> <?php } ?> </select><br/> <label>TIPO DE COMBUSTÍVEL:</label><br/>  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.