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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  passar dados de uma tabela para outra
Marcio Pergola
não registrado
ENUNCIADA !
Postada em 29/07/2011 16:39 hs   
estou pedindo ajudar pois estou alguns dias em cima deste problema e não estou encontrando o erro. ja procurei em sites e não obtive sucesso.
 
 vou passar meu codigo
 
Private Sub txtInventario_GotFocus()
    Dim cnnComando As New ADODB.Command
    Dim rsSelecao As New ADODB.Recordset
    Dim rs2Selecao As New ADODB.Recordset
    On Error GoTo errSelecao
    Screen.MousePointer = vbHourglass
'---Busca Inventario no Cadastro
    With cnnComando
        .ActiveConnection = cnnEstoque
        .CommandType = adCmdTable
        .CommandText = "Inventario"
        Set rsSelecao = .Execute
    End With
    With rsSelecao
        If .EOF And .BOF Then
           'Se o recordset está vazio, não retornou registro com esse código:
           vSelInv = 1
           txtInventario.Text = vSelInv
           txtData.Text = Date
           vInventarioNovo = True
        Else
           'Senão vai para o ultimo registro
           .MoveMax
           If !Status = True Then
              'se o inventario já foi atualizado = true
               vSelInv = !Inventario + 1
               txtInventario.Text = vSelInv
               txtData.Text = Date
               vInventarioNovo = True
           Else
              'se o ainda não foi atualizado = False
               vSelInv = !Inventario
               txtInventario.Text = vSelInv
               txtData.Text = !dt_inventario
               vInventarioNovo = False
               Toolbar1.Buttons(1).Enabled = True
           End If
        End If
    End With
    If vInventarioNovo = True Then
        With cnnComando
           .ActiveConnection = cnnEstoque
           .CommandType = adCmdText
           .CommandText = "SELECT * FROM EstoqueBoxProduto;"
           Set rs2Selecao = .Execute
        End With
        With rs2Selecao 'tabela Estoque
            If Not (.EOF And .BOF) Then
               .MoveMin
              Do While Not .EOF
'---aqui da o erro
                  rs2Selecao.AddNew
'nessa linha
                  rsSelecao("Inventario") = "& txtInventario.Text &"
                  rsSelecao("dt_Inventario") = txtData.Text
                  rsSelecao("CodUser") = vCodUser
                  rsSelecao("CodBox") = !CodBox
                  rsSelecao("CodProduto") = !CodProduto
                  rsSelecao("NumCaixa") = !NumCaixa
                  rsSelecao("Movimento") = 0
                  rsSelecao("Status") = ""
                  rs2Selecao.Update
                  .MoveNext
               Loop
            End If
        End With
    End If
    'Desabilita a digitação do campo
     txtInventario.Enabled = False
     txtData.Enabled = False
     txtBox.SetFocus
Saida:
    'Elimina o command e o recordset da memória:
    Set rsSelecao = Nothing
    Set cnnComando = Nothing
    Screen.MousePointer = vbDefault
    Exit Sub
   
errSelecao:
    With Err
        If .Number <> 0 Then
           MsgBox "Houve um erro na recuperação do registro solicitado.", _
                  vbExclamation + vbOKOnly + vbApplicationModal, "Aviso"
          
           .Number = 0
           GoTo Saida
        End If
    End With
End Sub
 
na hora de adicionar o registro esta dando erro
 
   
Eduardo
não registrado
Postada em 30/07/2011 21:40 hs   
 With cnnComando
.ActiveConnection = cnnEstoque
.CommandType = adCmdText
.CommandText = "SELECT * FROM EstoqueBoxProduto;"
Set rs2Selecao = .Execute
End With
With rs2Selecao 'tabela Estoque
If Not (.EOF And .BOF) Then
.MoveMin
Do While Not .EOF
'---aqui da o erro
rs2Selecao.AddNew
'nessa linha
rsSelecao("Inventario") = "& txtInventario.Text &"
rsSelecao("dt_Inventario") = txtData.Text
rsSelecao("CodUser") = vCodUser
rsSelecao("CodBox") = !CodBox
rsSelecao("CodProduto") = !CodProduto
rsSelecao("NumCaixa") = !NumCaixa
rsSelecao("Movimento") = 0
rsSelecao("Status") = ""
rs2Selecao.Update
.MoveNext
Loop
End If
End With
End If
Como fazer o update se não tem nada para adicionar.Todos são
rsSelecao("Inventario") = "& txtInventario.Text &"
rsSelecao("dt_Inventario") = txtData.Text
rsSelecao("CodUser") = vCodUser
rsSelecao("CodBox") = !CodBox
rsSelecao("CodProduto") = !CodProduto
rsSelecao("NumCaixa") = !NumCaixa
rsSelecao("Movimento") = 0
rsSelecao("Status") = ""
não é rs2Selecao("CodUser")=vCodUser
rs2Selecao("CodBox") = !CodBox
Tente dessa forma.
     
Marcio Pergola
não registrado
ENUNCIADA !
Postada em 01/08/2011 08:59 hs   
Primeiro quero agradecer o eduardo por tentar me ajudar.

na verdade acho que passei o codigo errado e não expliquei bem qual o meu problema.

vou passar novamento o techo do codigo de minha dificuldade.

------
    If vInventarioNovo = True Then
----------------------------------------------------------------------------------------------
--- aqui se for um novo inventario ele vai buscar os dados na tabela estoque aqui
--- carregada como "rs2Selecao" e gravar os produtos na "rsSelecao" que é a
--- tabela Inventario.
-----------------------------------------------------------------------------------------------
        With cnnComando
           .ActiveConnection = cnnEstoque
           .CommandType = adCmdText
           .CommandText = "SELECT * FROM EstoqueBoxProduto;"
           Set rs2Selecao = .Execute
        End With
        With rs2Selecao 'tabela Estoque
            If Not (.EOF And .BOF) Then
               .MoveMin
              Do While Not .EOF
--- aqui da o erro quando tento adcionar um novo registro na tabela Inventario "rsSelecao"
--- na linha do commando rsSelecao.AddNew o sistema retorna um erro
                  rsSelecao.AddNew
                  rsSelecao("Inventario") = "& txtInventario.Text &"
                  rsSelecao("dt_Inventario") = txtData.Text
                  rsSelecao("CodUser") = vCodUser
                  rsSelecao("CodBox") = !CodBox    ' aqui poderia ser rs2Selecao("CodBox") ?
                  rsSelecao("CodProduto") = !CodProduto
                  rsSelecao("NumCaixa") = !NumCaixa
                  rsSelecao("Movimento") = 0
                  rsSelecao("Status") = ""
                  rsSelecao.Update     'acredito que a execução nem chegou aqui ainda pois o
                                                'erro se da na hora de adcionar
                  .MoveNext
               Loop
            End If
        End With
    End If


ps. Sou Iniciante em vb / sql sou programador clipper e ainda tenho muitas duvidas
   
Eduardo
não registrado
Postada em 02/08/2011 18:19 hs   
Marcio,tem forma mais simples e eficiente para transferir dados de uma tabela para outra.
Basta postar seu Email que envio para você um exemplo.Quanto ao Update e insert do ADODB.Command ele é um pouco diferente.
     
Juan Carlos R.A
Pontos: 2843
MACEIO
AL - BRASIL
Postada em 03/08/2011 10:01 hs            
QUAL ERRO QUE ESTA DANDO? O RSSELECAO JA FOI INICIADO?
     
Marcio Pergola
não registrado
Postada em 03/08/2011 15:42 hs   
eduardo, me ajuda ai vai...
esta dificil de entender o "Update" no codigo anterior consegui resolver usando o "Insert", mas nesta nova etapa do sistema cai novamente no tal de "Update"
Se voce puder me passar uma forma mais simple e eficiente eu agradeço. marciopergola@hotmail.com

--------------------------------------------------------------------------------------------------
no código abaixo tenho que pegar na tabela "inventario" o campo box e produto e pesquisar na tabela "estoque" se encontrar o box e produto gravar nas duas tabelas no campo "Movimento" o numero "0" (sem movimento) se não encontrar gravar "1" (incluido), depois, ainda não escrito no código abaixo, os registros da tabela "estoque" que o campo "Movimento" continuo "null" gravaria na tabela "inventario" com o campo "movimento" = "2" (excluidos).
----------------------------------------------------------------------------------------------
Private Sub AtualizaEstoque()
   Dim cnnComando As New ADODB.Command
   Dim vOk As Integer
   On Error GoTo errExclusao
   vOk = MsgBox("Corrigir o Estoque com este Inventário?", _
                vbApplicationModal + vbDefaultButton2 + vbQuestion + vbYesNo, _
                "Exclusão")
   If vOk = vbYes Then
      Screen.MousePointer = vbHourglass
      With cnnComando
        .ActiveConnection = cnnEstoque
        .CommandType = adCmdText
         'Monta o comando SELECT para selecionar o registro na tabela:
        .CommandText = "SELECT * FROM InventarioBoxProduto WHERE Inventario = " & txtInventario.Text & ";"
        Set rsSelecao = .Execute
      End With
      With rsSelecao
          If Not (.EOF And .BOF) Then
              .MoveMin
              While Not .EOF
                  aBox = !CodBox
                  aProduto = !CodProduto
                  aMov = ""
                  With cnnComando
                       .ActiveConnection = cnnEstoque
                       .CommandType = adCmdText
                       .CommandText = "SELECT * FROM EstoqueBoxProduto WHERE (CodBox = '" & aBox & "' And CodProduto = '" & aProduto & "' And Movimento is Null);"
                       Set rs2Selecao = .Execute
                  End With
                  With rs2Selecao
                       If Not (.EOF And .BOF) Then
                          .MoveMin
                           If Not .EOF Then
                              aMov = 0
                              .Update Movimento, 0
                           Else
                              aMov = 1
                              cnnComando.Execute "INSERT INTO Estoque (CodBox, CodProduto, Movimento) VALUES ('" & aBox & "', '" & aProduto & "', 1);"
                           End If
                       End If
                  End With
                  If aMov <> "" Then
                     .Update (Movimento = aMov)
                  End If
                  .MoveNext
              Wend
          End If
      End With
   End If
  
Saida:
   Screen.MousePointer = vbDefault
   Set cnnComando = Nothing
   Set rsSelecao = Nothing
   Set rs2Selecao = Nothing
   Exit Sub

errExclusao:
   With Err
      If .Number <> 0 Then
         MsgBox "Houve um erro durante a exclusão do registro.", _
                vbExclamation + vbOKOnly + vbApplicationModal, "Erro"
         .Number = 0
         GoTo Saida
      End If
   End With
End Sub
     
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-2026   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página