none
como mover um registro especifico de uma tabela para outra RRS feed

  • Pergunta

  • olá pessoal, gostaria de saber como eu movo um registro de uma tabela para outra tabela idêntica, não é copiar de uma tabela para outra é mover mesmo, clicando na datagrid para selecionar e depois no botão e mover de uma tabela para outra, não tenho ideia de como fazer isso v b
    sábado, 27 de janeiro de 2018 20:28

Respostas

  • Prezado Arlindo.

    Pelo que entendi, você quer algo semelhante a transferir (retirar e depositar) R$ 100,00 da conta corrente para conta poupança.

    Para isto você deve fazer:

    Select dados da tabela origem

    Insert dados selecionados na tabela destino.

    Delete dados selecionados da tabela origem.

    Você pode fazer as operações uma a uma, confirmando se a anterior foi executada e realizando a próxima, porém aconsellho a utlizar transaction, onde as operações são feitas "simultaneamente" e, se houver erro, volta tudo ao estado anterior. (como se caísse o sistema durante a transferência e o dinheiro voltasse para a conta corrente).

    No site do Macoratti há muitos exemplos (no Google digite: transaction vb macoratti)

    Segue um exemplo em Access.

    Se ajudou, por gentileza, marque como útil/resposta.

    Dim CONN As New OleDbConnection()
            CONN.ConnectionString = Psr_ConnectionString
            Dim CMD As OleDbCommand = CONN.CreateCommand
    
            Try
                CONN.Open()
                
                        Dim trans As OleDbTransaction = CONN.BeginTransaction
                        CMD.Transaction = trans
                        Try
                            CMD.CommandText = "insert into cadastro_ccb (ccb_nome, ccb_cnpj, ccb_fundo_fixo, ccb_endereco, ccb_numero, ccb_complemento, ccb_bairro, ccb_cidade, ccb_uf, ccb_pais, ccb_cep, ccb_telefone, ccb_fax, ccb_email, ccb_site, " & _
                                                                             "ccb_observacao_1, ccb_observacao_2, ccb_observacao_3, ccb_observacao_4, ccb_observacao_5, ccb_observacao_6, ccb_observacao_7, ccb_observacao_8, ccb_operador, ccb_data_hora) " & _
                                                                             "values ('" & Lsr_Nome & "', '" & Lsr_CNPJ & "', '" & Lsr_Valor & "', '" & _
                                                                              Ar_Endereço(0) & "', '" & Ar_Endereço(1) & "', '" & Ar_Endereço(2) & "', '" & Ar_Endereço(3) & "', '" & Ar_Endereço(4) & "', '" & Ar_Endereço(5) & "', '" & _
                                                                              Ar_Endereço(6) & "', '" & Ar_Endereço(7) & "', '" & Ar_Contatos(0) & "', '" & Ar_Contatos(1) & "', '" & Ar_Contatos(2) & "', '" & Ar_Contatos(3) & "', '" & _
                                                                              Ar_Observação(0) & "', '" & Ar_Observação(1) & "', '" & Ar_Observação(2) & "', '" & Ar_Observação(3) & "', '" & Ar_Observação(4) & "', '" & Ar_Observação(5) & "', '" & Ar_Observação(6) & "', '" & Ar_Observação(7) & "', '" & Psr_Operador & "', #" & Now.ToString("MM/dd/yyyy HH:mm:ss") & "#)"
                            CMD.ExecuteNonQuery()
    
                            CMD.CommandText = "select top 1 ccb_id from cadastro_ccb where ccb_nome = '" & Lsr_Nome & "' order by ccb_id"
                            Psr_ID_CCB = CStr(CMD.ExecuteScalar)
    
                            CMD.CommandText = "insert into caixa values (" & Psr_ID_CCB & ", '" & Lsr_Valor & "', 0, 0, '" & Psr_Operador & "', #" & Now.ToString("MM/dd/yyyy HH:mm:ss") & "#, 'fundo fixo inicial', '" & Lsr_Valor & "')"
                            CMD.ExecuteNonQuery()
    
                            Dim CONN2 As New OleDbConnection()
                            CONN2.ConnectionString = Psr_ConnectionString
                            Dim CMD2 As OleDbCommand = CONN2.CreateCommand
                            CMD2.CommandText = "select item_codigo, item_descricao, item_preco from cadastro_item_geral"
                            CONN2.Open()
                            Dim RD As OleDbDataReader = CMD2.ExecuteReader
                            While RD.Read()
                                CMD.CommandText = "insert into cadastro_item values (" & Psr_ID_CCB & ", '" & RD.GetString(0) & "', '" & RD.GetString(1) & "', " & RD.GetDouble(2).ToString.Replace(",", ".") & ", 0, '" & Psr_Operador & "', #" & Now.ToString("MM/dd/yyyy HH:mm:ss") & "#)"
                                CMD.ExecuteNonQuery()
                            End While
                            trans.Commit()
                            RD.Close()
                            CONN2.Close()
                            Return 1
                        Catch ex As Exception
                            Try
                                trans.Rollback()
                            Catch ex1 As OleDbException
                                If CONN.State = 1 Then CONN.Close()
                                Psr_Erro = ex1.ToString
                                Return -1
                            End Try
                            If CONN.State = 1 Then CONN.Close()
                            Psr_Erro = ex.ToString
                            Return -1
                        End Try
    
                   
                CONN.Close()
                Return 1
            Catch ex As Exception
                If CONN.State = 1 Then CONN.Close()
                Psr_Erro = ex.ToString
                Return -1
            End Try
        End Function


    MARIANO1776

    domingo, 28 de janeiro de 2018 20:30

Todas as Respostas

  • Prezado Arlindo.

    Pelo que entendi, você quer algo semelhante a transferir (retirar e depositar) R$ 100,00 da conta corrente para conta poupança.

    Para isto você deve fazer:

    Select dados da tabela origem

    Insert dados selecionados na tabela destino.

    Delete dados selecionados da tabela origem.

    Você pode fazer as operações uma a uma, confirmando se a anterior foi executada e realizando a próxima, porém aconsellho a utlizar transaction, onde as operações são feitas "simultaneamente" e, se houver erro, volta tudo ao estado anterior. (como se caísse o sistema durante a transferência e o dinheiro voltasse para a conta corrente).

    No site do Macoratti há muitos exemplos (no Google digite: transaction vb macoratti)

    Segue um exemplo em Access.

    Se ajudou, por gentileza, marque como útil/resposta.

    Dim CONN As New OleDbConnection()
            CONN.ConnectionString = Psr_ConnectionString
            Dim CMD As OleDbCommand = CONN.CreateCommand
    
            Try
                CONN.Open()
                
                        Dim trans As OleDbTransaction = CONN.BeginTransaction
                        CMD.Transaction = trans
                        Try
                            CMD.CommandText = "insert into cadastro_ccb (ccb_nome, ccb_cnpj, ccb_fundo_fixo, ccb_endereco, ccb_numero, ccb_complemento, ccb_bairro, ccb_cidade, ccb_uf, ccb_pais, ccb_cep, ccb_telefone, ccb_fax, ccb_email, ccb_site, " & _
                                                                             "ccb_observacao_1, ccb_observacao_2, ccb_observacao_3, ccb_observacao_4, ccb_observacao_5, ccb_observacao_6, ccb_observacao_7, ccb_observacao_8, ccb_operador, ccb_data_hora) " & _
                                                                             "values ('" & Lsr_Nome & "', '" & Lsr_CNPJ & "', '" & Lsr_Valor & "', '" & _
                                                                              Ar_Endereço(0) & "', '" & Ar_Endereço(1) & "', '" & Ar_Endereço(2) & "', '" & Ar_Endereço(3) & "', '" & Ar_Endereço(4) & "', '" & Ar_Endereço(5) & "', '" & _
                                                                              Ar_Endereço(6) & "', '" & Ar_Endereço(7) & "', '" & Ar_Contatos(0) & "', '" & Ar_Contatos(1) & "', '" & Ar_Contatos(2) & "', '" & Ar_Contatos(3) & "', '" & _
                                                                              Ar_Observação(0) & "', '" & Ar_Observação(1) & "', '" & Ar_Observação(2) & "', '" & Ar_Observação(3) & "', '" & Ar_Observação(4) & "', '" & Ar_Observação(5) & "', '" & Ar_Observação(6) & "', '" & Ar_Observação(7) & "', '" & Psr_Operador & "', #" & Now.ToString("MM/dd/yyyy HH:mm:ss") & "#)"
                            CMD.ExecuteNonQuery()
    
                            CMD.CommandText = "select top 1 ccb_id from cadastro_ccb where ccb_nome = '" & Lsr_Nome & "' order by ccb_id"
                            Psr_ID_CCB = CStr(CMD.ExecuteScalar)
    
                            CMD.CommandText = "insert into caixa values (" & Psr_ID_CCB & ", '" & Lsr_Valor & "', 0, 0, '" & Psr_Operador & "', #" & Now.ToString("MM/dd/yyyy HH:mm:ss") & "#, 'fundo fixo inicial', '" & Lsr_Valor & "')"
                            CMD.ExecuteNonQuery()
    
                            Dim CONN2 As New OleDbConnection()
                            CONN2.ConnectionString = Psr_ConnectionString
                            Dim CMD2 As OleDbCommand = CONN2.CreateCommand
                            CMD2.CommandText = "select item_codigo, item_descricao, item_preco from cadastro_item_geral"
                            CONN2.Open()
                            Dim RD As OleDbDataReader = CMD2.ExecuteReader
                            While RD.Read()
                                CMD.CommandText = "insert into cadastro_item values (" & Psr_ID_CCB & ", '" & RD.GetString(0) & "', '" & RD.GetString(1) & "', " & RD.GetDouble(2).ToString.Replace(",", ".") & ", 0, '" & Psr_Operador & "', #" & Now.ToString("MM/dd/yyyy HH:mm:ss") & "#)"
                                CMD.ExecuteNonQuery()
                            End While
                            trans.Commit()
                            RD.Close()
                            CONN2.Close()
                            Return 1
                        Catch ex As Exception
                            Try
                                trans.Rollback()
                            Catch ex1 As OleDbException
                                If CONN.State = 1 Then CONN.Close()
                                Psr_Erro = ex1.ToString
                                Return -1
                            End Try
                            If CONN.State = 1 Then CONN.Close()
                            Psr_Erro = ex.ToString
                            Return -1
                        End Try
    
                   
                CONN.Close()
                Return 1
            Catch ex As Exception
                If CONN.State = 1 Then CONN.Close()
                Psr_Erro = ex.ToString
                Return -1
            End Try
        End Function


    MARIANO1776

    domingo, 28 de janeiro de 2018 20:30
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 31 de janeiro de 2018 18:02
    Moderador