Jump to content
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


 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Roberto S. Santos
      Boa noite devs.
      Poderiam me ajudar ?
      Estou querendo fazer o seguinte em um formulário PHP...
      O usuário deve cadastrar a sua data e horário do uso na churrasqueira e quando chegar nesta data e no horário final ele apaga os dados do cadastro desta reserva.
      Como posso fazer isto com PHP ?
      Temos...
      data reserva
      hora reserva  (hora inicial)
      hora final (já vai estar pré definida na base de dados)
      Banco de Dados : clientes
      Tabela : reserva
      Deus abençoe a todos.
       
    • By patrickjnunes1995
      Bom dia, estou tendo dificuldades em recuperar dados de uma tabela do banco de dados, pelo PHP.
      <?php require_once('conexao_bd.php'); $consulta = "SELECT * FROM table"; $con = $mysqli->query($consulta) or die ($mysql->error); echo $dado["nome"]; ?>  
      E o arquivo conexão_bd.php está ok.
       
      Não pude encontrar em nenhuma página pela internet essa solução.
       
      Quero que exiba na página PHP, valores como algum nome, gravado na tabela do banco de dados.
       
      Desde já obrigado.
    • By Priscila1307
      CREATE TABLE CLIENTE( Idcliente int, nome varchar(60), dtnascimento date, cpf varchar(11), CONSTRAINT pk_cliente PRIMARY KEY (Idcliente) ); CREATE TABLE PEDIDO( Idpedido int, Idcliente int, datapedido date, vltotal decimal(10,2), CONSTRAINT pk_pedido PRIMARY KEY (Idpedido), CONSTRAINT fk_pedido_cliente FOREIGN KEY (Idcliente) REFERENCES CLIENTE(Idcliente) ); CREATE TABLE PRODUTO( Idproduto int, descricao varchar(100), quantidade int, CONSTRAINT pk_produto PRIMARY KEY (Idproduto) ); CREATE TABLE ITEMPEDIDO( Idpedido int, Nritem int, valor decimal(10,2), quantidade int, Idproduto int, CONSTRAINT pk_itempedido PRIMARY KEY (Idpedido, Nritem), CONSTRAINT fk_Idpedido FOREIGN KEY (Idpedido) REFERENCES PEDIDO (Idpedido), CONSTRAINT fk_itempedido_produto FOREIGN KEY (Idproduto) REFERENCES PRODUTO (Idproduto) ); CREATE TABLE LOG( Idlog int, data date, descricao varchar(255), CONSTRAINT pk_log PRIMARY KEY (Idlog) ); INSERT INTO CLIENTE VALUES (1, 'Hugo Batista', TO_DATE('05/02/1990', 'DD/MM/YYYY'), '51898608253'); INSERT INTO CLIENTE VALUES (2, 'José Antonio', TO_DATE('02/05/1985', 'DD/MM/YYYY'), '51144722241'); INSERT INTO CLIENTE VALUES (3, 'João Carlos', TO_DATE('03/05/1993', 'DD/MM/YYYY'), '84882273292'); INSERT INTO CLIENTE VALUES (4, 'Edivaldo Santana', TO_DATE('01/06/2000', 'DD/MM/YYYY'), '30609426176'); INSERT INTO CLIENTE VALUES (5, 'Cristina Oliveira', TO_DATE('16/08/1999', 'DD/MM/YYYY'), '56313586700'); INSERT INTO CLIENTE VALUES (6, 'Artur da Silva', TO_DATE('06/05/2001', 'DD/MM/YYYY'), '67491246583'); INSERT INTO CLIENTE VALUES (7, 'Adrina Domingues', TO_DATE('01/02/1972', 'DD/MM/YYYY'), '22044617250'); INSERT INTO PRODUTO VALUES (1, 'SAMSUNG J7 - PRIME', 10); INSERT INTO PRODUTO VALUES (2, 'SAMSUNG J5 - PRIME', 10); INSERT INTO PRODUTO VALUES (3, 'IPHONE X', 10); INSERT INTO PRODUTO VALUES (4, 'MOTO G 5S', 10); INSERT INTO PRODUTO VALUES (5, 'IPHONE 6S', 10); INSERT INTO PEDIDO VALUES (1, 4, TO_DATE('10/03/2018', 'DD/MM/YYYY'), 1400.99); INSERT INTO ITEMPEDIDO VALUES (1, 1, 800.99, 1, 1); INSERT INTO ITEMPEDIDO VALUES (1, 2, 600.00, 1, 2); INSERT INTO PEDIDO VALUES (2, 2, TO_DATE('17/03/2018', 'DD/MM/YYYY'), 1349.50); INSERT INTO ITEMPEDIDO VALUES (2, 1, 749.50, 1, 4); INSERT INTO ITEMPEDIDO VALUES (2, 2, 600.00, 1, 2); INSERT INTO PEDIDO VALUES (3, 1, TO_DATE('20/03/2018', 'DD/MM/YYYY'), 2590.10); INSERT INTO ITEMPEDIDO VALUES (3, 1, 1800.71, 1, 5); INSERT INTO ITEMPEDIDO VALUES (3, 2, 789.39, 1, 4); INSERT INTO PEDIDO VALUES (4, 5, TO_DATE('21/03/2018', 'DD/MM/YYYY'), 2590.10); INSERT INTO ITEMPEDIDO VALUES (4, 1, 5099.00, 1, 3); INSERT INTO PEDIDO VALUES (5, 7, TO_DATE('10/03/2018', 'DD/MM/YYYY'), 1800.00); INSERT INTO ITEMPEDIDO VALUES (5, 1, 600.00, 3, 2); "Crie um select que exibe quais são os três PRODUTOS com a maior quantidade de PEDIDOS. Exiba o nome e o código do produto"
       
      Oi pessoal. por favor preciso da ajuda de vocês . 
      Eu queria criar um SELECT que exiba os três PRODUTOS com a maior quantidade de PEDIDOS.
      Retornando nome do produto ( PRODUTO.DESCRICAO )  e  o código dele ( PRODUTO.IDPRODUTO )
       
      Eu tentei das seguintes formas mas não consegui . estou novinha ainda em oracle
       
       
      SELECT PRODUTO.DESCRICAO, PRODUTO.IDPRODUTO, ITEMPEDIDO.QUANTIDADE FROM ITEMPEDIDO, PEDIDO, PRODUTO WHERE ITEMPEDIDO.IDPEDIDO = PEDIDO.IDPEDIDO AND PRODUTO.IDPRODUTO = ITEMPEDIDO.IDPRODUTO GROUP BY IDPRODUTO  
      neste código só roda sem erro se eu tirar o GROUP BY IDPRODUTO.  Mas não gera o resultado esperado 

       
      SELECT ITEMPEDIDO.IDPRODUTO, COUNT(*) AS VENDIDO FROM ITEMPEDIDO GROUP BY IDPRODUTO ORDER BY VENDIDO DESC  
       
      Aqui eu até consegui chegar perto mas não consegui acrescentar o nome do produto ( que é PRODUTO.DESCRICAO) e o produto com idproduto 2 ( que é o J5 ) não são só 3 vendidos. SÃO 5 !!! ai ai ai ai
       
      ....e apos muita batalha eu consegui fazer isso ... que tbm ainda não é o ideal
       
      SELECT * FROM (SELECT ITEMPEDIDO.IDPRODUTO, COUNT(*) AS VENDIDO FROM ITEMPEDIDO GROUP BY IDPRODUTO ORDER BY VENDIDO DESC) WHERE ROWNUM <4  

       
      ... demorei horrores pra fazer esse WHERE ROWNUM <4  rodar sem erro... pois é pessoal. só historia triste ! kkkkk
       
       
      Agora estou tentando esse aqui mas não terminei 
       
      SELECT PRODUTO.DESCRICAO AS NOME, ITEMPEDIDO.IDPRODUTO FROM PRODUTO, ITEMPEDIDO WHERE PRODUTO.IDPRODUTO = ITEMPEDIDO.IDPRODUTO
       
       
      acabei parando no meio do caminho e decidi recorrer ao imasters ! 
       
      vou continuar tentando ... sera que consigo antes de alguem aparecer aqui ? rsrsrs
       
      obrigada ! boa sorte pessoal.
       
       
       
      ah ! já ia esquecendo estou usando o livesql.oracle.com
       
      e vou deixar aqui tbm a consulta das tabelas 
       
       

    • By fideles
      Caros,
       
      Tenho 6 inputs para preencher que recebo como base uma planilha em Excel, tenho que fazer manualmente cada coluna no seu respectivo input, alguém já tentou ou sabe se tem alguma forma de copiar a linha do Excel e jogar nos inputs? Ou seja, ao copiar a linha do Excel, ele joga as 6 colunas com os resultados dentro dos inputs. 
    • By Junior Ni10
      Bom dia,
       
      tenho uma necessidade matemática de passar alguns valores em $x e $y e ele me retornar o mesmo resultado que a função INCLINAÇÃO do excel retorna.
       
      $y[] = 10; $y[] = 23; $y[] = 25; $y[] = 27; $y[] = 56; $y[] = 55; $y[] = 84; $y[] = 87; $y[] = 115; $y[] = 115; $y[] = 125; $y[] = 132; $y[] = 138; $y[] = 153; $y[] = 181; $y[] = 191; $y[] = 198; $y[] = 199; $y[] = 201; $y[] = 205; $x[] = 3; $x[] = 8; $x[] = 10; $x[] = 12; $x[] = 24; $x[] = 25; $x[] = 39; $x[] = 40; $x[] = 55; $x[] = 56; $x[] = 61; $x[] = 64; $x[] = 66; $x[] = 73; $x[] = 90; $x[] = 93; $x[] = 96; $x[] = 97; $x[] = 98; $x[] = 99; Tenho esse array acima com os dados, no excel o retorno é 1,996159717, preciso que minha aplicação retorne o mesmo.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.