MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    avatar
    weuros
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 16
    Registrado : 16/06/2010

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  weuros 28/9/2012, 10:21

    Boas,

    Tenho uma tabela onde lanço os dados referentes a recebimento de cheques de clientes com os campos: ID, codcliente, nome, banco, ncheque, valor, depositado, datadeposito

    O campo depositado é um campo sim/não que utilizo para saber se o cheque já foi depositado ou não. Ou seja criei uma consulta que me filtra os que ainda não foram depositados e depois são apresentados num formulário continuo.

    O que pretendo e não sei como fazer, é no formulário continuo através de um botão de comando inserir numa tabela temporária "CHdepositoTMP" apenas os cheques em que coloco o visto no campo depositado.

    Como consigo fazer isso?

    Obrigado.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  Alexandre Neves 28/9/2012, 16:15

    Boa tarde, euros

    Currentdb.execute "SELECT * INTO CHdepositoTMP FROM TabelaOndeLancaOsCheques WHERE Depositado;"


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    weuros
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 16
    Registrado : 16/06/2010

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  weuros 28/9/2012, 16:16

    Ainda não consegui chegar lá, mas já consegui por o seguinte código:
    Tenho 3 registos inseridos e ao rodar o código ele insere 3 vezes o mesmo registo.
    Onde está o erro?

    Dim rs As DAO.Recordset
    Dim strSQL As String
    Dim strBookmark As String

    Set rs = Me.RecordsetClone
    rs.MoveFirst

    Do While Not rs.EOF
    If Me.Depositado = -1 Then
    strBookmark = rs.Bookmark
    strSQL = "INSERT INTO CHdepositosTMP (codcliente, Nome, chounum, banco, ncheque,valor, depositado, datadep )VALUES (codcliente, Nome, cn, banco, ncheque,valor, depositado, datadep);"

    DoCmd.RunSQL strSQL

    End If

    rs.MoveNext
    Loop

    rs.Close
    avatar
    weuros
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 16
    Registrado : 16/06/2010

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  weuros 28/9/2012, 16:22

    Alexandre Neves Hoje à(s) 4:15 pm
    Boa tarde, euros

    Currentdb.execute "SELECT * INTO CHdepositoTMP FROM TabelaOndeLancaOsCheques WHERE Depositado;"


    Com o código acima ele vai enviar todos os registos (cheques) onde ainda não tem o visto no campo "depositado". Eu pretendo que apenas insira os que escolher no formulário.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  Alexandre Neves 28/9/2012, 16:30

    O código registará os que têm o visto no campo depositado.
    Não percebi que só queria os contidos no form que estivessem marcados
    Para tal, utilize
    Dim rs As DAO.Recordset

    Set rs = Me.RecordsetClone
    Do While Not rs.EOF
    If rs("Depositado") Then
    Currentdb.execute "INSERT INTO CHdepositosTMP (codcliente, Nome, chounum, banco, ncheque,valor, depositado, datadep) VALUES (" & rs("codcliente") & ",'" & rs("Nome") & "'," & rs("cn") & "," & rs("banco") & "," & rs("ncheque") & "," & rs("valor") & "," & rs("depositado") & ",#" & rs("datadep") & "#);"
    End If
    rs.MoveNext
    Loop
    rs.Close
    rs=nothing

    Confira a formatação da DataDep


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    weuros
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 16
    Registrado : 16/06/2010

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  weuros 28/9/2012, 16:36

    Boa tarde Alexandre,

    Dá erro em: rs = Nothing

    Compile: error
    Invalid use of property
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  Alexandre Neves 28/9/2012, 16:37

    set rs=nothing


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    weuros
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 16
    Registrado : 16/06/2010

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  weuros 28/9/2012, 16:49

    Não dá nenhum erro mas também não insere nenhum registo.

    Retirando o if:
    Dim rs As DAO.Recordset

    Set rs = Me.RecordsetClone
    Do While Not rs.EOF
    'If rs("Depositado") Then
    CurrentDb.Execute "INSERT INTO CHdepositosTMP (codcliente, Nome, chounum, banco, ncheque,valor, depositado, datadep) VALUES (" & rs("codcliente") & ",'" & rs("Nome") & "'," & rs("cn") & "," & rs("banco") & "," & rs("ncheque") & "," & rs("valor") & "," & rs("depositado") & ",#" & rs("datadep") & "#);"

    'End If
    rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing


    Dá o seguinte erro:
    Run-time error '3075'
    Erro de sintaxe (operador em falta) na expressão de consulta 'Caixa Nova'

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  Alexandre Neves 28/9/2012, 16:59

    Dim rs As DAO.Recordset

    Set rs = Me.RecordsetClone
    Do While Not rs.EOF
    msgbox rs("Depositado")'veja o resultado. Só valor True ou Sim é válido para a execução do código dentro do If
    If rs("Depositado") Then'páre o código aqui > linha seleccionada, prima F9. Para continuar, instrução a instrução, prima F8
    CurrentDb.Execute "INSERT INTO CHdepositosTMP (codcliente, Nome, chounum, banco, ncheque,valor, depositado, datadep) VALUES (" & rs("codcliente") & ",'" & rs("Nome") & "'," & rs("cn") & "," & rs("banco") & "," & rs("ncheque") & "," & rs("valor") & "," & rs("depositado") & ",#" & rs("datadep") & "#);"
    End If
    rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing

    1º Deve já existir a tabela CHdepositosTMP, caso contrário, o código tem de ser reformulado
    2º Campos da tabela carregada pelo formulário > campos da tabela CHdepositosTMP
    codcliente > codcliente : número
    Nome > Nome : texto
    cn > chounum : número
    banco > banco : número
    ncheque > ncheque : número
    valor > valor : número
    depositado > depositado : número (pode ser sim/não)
    datadep > datadep : data


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    weuros
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 16
    Registrado : 16/06/2010

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  weuros 28/9/2012, 17:32

    1º Deve já existir a tabela CHdepositosTMP, caso contrário, o código tem de ser reformulado --> Sim a tabela já existe
    2º Campos da tabela carregada pelo formulário > campos da tabela CHdepositosTMP
    codcliente > codcliente : número
    Nome > Nome : texto
    cn > chounum : número --> texto
    banco > banco : número --> texto
    ncheque > ncheque : número
    valor > valor : número --> Euro (moeda)
    depositado > depositado : número (pode ser sim/não) --> sim/não
    datadep > datadep : data

    No if não está a detectar o campo depositado como estando selecionado. Tirando o if dá erro: erro de sintaxe na data na expressão de consulta '##'.
    Nos restantes campos que são texto em vez de número coloquei as aspas simples.

    Envio exemplo em anexo.



    Última edição por weuros em 28/9/2012, 17:33, editado 1 vez(es) (Motivo da edição : inserir anexo)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  Alexandre Neves 28/9/2012, 17:35

    O resultado msgbox rs("Depositado") o que dá?


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    weuros
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 16
    Registrado : 16/06/2010

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  weuros 28/9/2012, 17:37

    O anexo

    http://www.4shared.com/folder/ZS8jiLkl/_online.html
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  Alexandre Neves 28/9/2012, 17:38

    Coloque num sítio livre de registo, dropbox por exemplo


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    weuros
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 16
    Registrado : 16/06/2010

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  weuros 28/9/2012, 17:41

    Aqui vai:

    https://www.dropbox.com/s/x2a09gvmsq386n7/cheques.zip
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  Alexandre Neves 28/9/2012, 17:52

    Testei e funcionou
    Veja se funciona bem
    Código:
    Private Sub Comando29_Click()
        Dim rs As DAO.Recordset
        Set rs = Me.RecordsetClone
        Do While Not rs.EOF
            If rs("Depositado") Then
                CurrentDb.Execute "INSERT INTO CHdepositosTMP (codcliente, Nome, chounum, banco, ncheque,valor, depositado, datadep) VALUES (" & rs("codcliente") & ",'" & rs("Nome") & "','" & rs("cn") & "','" & rs("banco") & "'," & rs("ncheque") & "," & rs("valor") & "," & rs("depositado") & ",#" & rs("datadep") & "#);"
            End If
            rs.MoveNext
        Loop
        rs.Close
        Set rs = Nothing
    End Sub

    Private Sub Depositado_AfterUpdate()
        Select Case Depositado
        Case -1
            Datadep = Date
            DoCmd.GoToRecord acActiveDataObject, , acNext
        Case 0
            Datadep = ""
        End Select
    End Sub

    Nomeie os controlos de forma normalizada


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    weuros
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 16
    Registrado : 16/06/2010

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  weuros 28/9/2012, 17:59

    Funciona em parte, pois se eu selecionar o 1º e o 3º registo, apenas passa o 1º.

    O 3º apesar de estar selecionado na msgbox dá como false.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  Alexandre Neves 28/9/2012, 18:06

    Tenta
    Private Sub Comando29_Click()
    Dim rs As DAO.Recordset
    Me.Recalc
    Set rs = Me.RecordsetClone
    rs.MoveFirst
    Do While Not rs.EOF
    If rs("Depositado") Then
    CurrentDb.Execute "INSERT INTO CHdepositosTMP (codcliente, Nome, chounum, banco, ncheque,valor, depositado, datadep) VALUES (" & rs("codcliente") & ",'" & rs("Nome") & "','" & rs("cn") & "','" & rs("banco") & "'," & rs("ncheque") & "," & rs("valor") & "," & rs("depositado") & ",#" & rs("datadep") & "#);"
    End If
    rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    weuros
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 16
    Registrado : 16/06/2010

    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  weuros 28/9/2012, 18:12

    Certissimo.

    Muito Obrigado.

    Conteúdo patrocinado


    [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária Empty Re: [Resolvido]Inserir apenas registos selecionados num formulário continuo numa tabela temporária

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 06:21