Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

  • Conteúdo Similar

    • Por biza
      Boa tarde, 
      tenho um problema com VBA, que gostaria que me ajudassem a resolver, pretendo com recurso a código em VBA agregar os dados  de forma a que eles sejam somados.
      Em baixo, existe uma imagem , com o exemplo do pretendido. A esquerda a tabela que possui os dados de forma massiva e a direita o pretendido.
      Será que alguém me pode auxiliar a resolver isto!
      Obrigado.

    • Por Elisame Araújo
      Seguinte,
      Eu tenho uma página de atualização de lista de faixas que estão agrupados por álbum, com os dados vindo através de parâmetros na url como o albumID e detalhes e são retornados dentro de um while.
      O que eu queria é que ele atualizasse todos os campos que fossem editados se eles fossem modificados, mas o que o ocorre é que apenas o último registro é atualizado.
       
      O script que traz as faixas:
       
      <tr> <form class="form-group" method="post" action="includes/funcoes/atualizar-faixas.php"> <?php while($sqlSelect = mysqli_fetch_assoc($result)) { ?> <td><input type="text" value="<?php echo $sqlSelect['trackNumero'] ?>" class="form-control" name="trackNumero"></td> <td><input type="text" value="<?php echo $sqlSelect['trackTitulo'] ?>" class="form-control" name="trackTitulo"></td> <td><input type="text" value="<?php echo $sqlSelect['trackTraducao'] ?>" class="form-control" name="trackTraducao"></td> <td><input type="text" value="<?php echo $sqlSelect['trackID'] ?>" class="form-control" name="trackID" readonly></td> <td><input type="text" value="<?php echo $sqlSelect['albumID'] ?>" class="form-control" name="albumID" readonly></td> </tr> <?php } ?> <tr><a href="albuns-lista.php"><button name="cancelar" id="cancelar" class="btn btn-danger mb-3 mr-1" type="button"> <i class="fa-solid fa-arrow-left"></i> Voltar</button></a></tr> <tr><button name="update" id="update" class="btn btn-success mb-3" type="submit" value=""><i class="fa-solid fa-arrow-up-from-bracket"></i> Atualizar</button></tr> </form>  
       
      E esse é o resultado do código acima:

       
      E este é o código que uso pra fazer o UPDATE no banco de dados:
      <?php require_once "../db/albuns.php"; if(isset($_POST['update'])){ $trackNumero = $_POST['trackNumero']; $trackTitulo = mysqli_real_escape_string($conecta2, $_POST['trackTitulo']); $trackTraducao = $_POST['trackTraducao']; $trackID = $_POST['trackID']; $albumID = $_POST['albumID']; $sqlUpdate = "UPDATE `faixas` SET `trackTitulo` = '$trackTitulo', `trackNumero` = '$trackNumero', `trackTraducao` = '$trackTraducao' WHERE `albumID` = $albumID AND `trackID` = $trackID"; if($atualizaDados = mysqli_query($conecta2, $sqlUpdate) == true){ var_dump($sqlUpdate); //header("location: ../../albuns.php?update=sucesso"); } else { //header("location: ../../albuns.php?update=erro"); } } ?> Como eu faria para que cada linha fosse atualizada individualmente? Já tentei diversos métodos, mas o resultado continua sendo a atualização apenas do último registro no banco, ignorando o restante das atualizações.
    • Por luiz0o
      Estou fazendo um projeto para faculdade, e tenho um formulário, esse formulário precisa enviar as respostas tanto para um banco de dados, mas também tem que enviar para uma API que envia para meu email, mas não sei como fazer essas duas coisas ao mesmo tempo
    • Por rsnow
      Bom dia a todos;
      Estou com problema na leitura de um arquivo .CSV, 
      a coluna que contém número de CNPJ está vindo convertido em notação científica e não estou conseguindo converter para numeração correta
      Ex: 3,04918E+12
      eu quero mostrar o valor que se encontra convertido que no caso é 3049181000139
      porém faço isso manual no próprio excel e isso se torna muito trabalhoso toda vez.
       
      alguma luz?

×

Informação importante

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