MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Importar registro via VBA.

    Compartilhe

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 459
    Registrado : 20/01/2014

    [Resolvido]Importar registro via VBA.

    Mensagem  XPTOS em Ter 18 Mar 2014, 16:36

    Prezados, boa tarde,

    Crédito do código ao Harysonh!!!

    Estou adaptando o código abaixo para usao em meu sistema de gestão de pagamentos, ou seja, quando eu selecionar um registro na caixa de combinação do formulário o código faz um comparativo de registros semelhantes e envia para tblComparativo.

    Minha dúvida é a seguinte: É possível fazer o grifo em vermelho importar para outra tabela somente os dados selecionados na combox?

    obs: Isso é feito após a comparação dos registros semelhantes.

    ----------------------------------------
    Dim rsEnviados As DAO.Recordset
    Dim rsComparativo As DAO.Recordset
    Dim StrSQLRec As String
    Dim ncount As Long
    '-------------------------------------------------------------------------------------------------------------
    'Carrego a variável com a SQL da tabela recebidos filtrados pelo campo senhaAutorizaao tendo
    'como critério o valor selecionado na cboEnviados. A cboEnviados por sua vez é baseada na tabela Enviados
    'Assim o recordset baseado na tabela recebidos conterá apenas os registros cuja guia esteja na tabela enviados
    '---------------------------------------------------------------------------------------------------------------
    StrSQLRec = "SELECT * FROM Recebido WHERE senhaAutorizacao = '" & Me.cboEnviados & "'"
    '--------------------------------------
    'Seto o recordset com a sql da consulta
    '--------------------------------------
    Set rsRecebidos = CurrentDb.OpenRecordset(StrSQLRec)
    '------------------------------------------------------------------
    'Movo o ponteiro do recordset para o final em seguida para o início
    '------------------------------------------------------------------
    rsRecebidos.MoveLast: rsRecebidos.MoveFirst
    '-------------------------------------------------------------------------------------
    'Caso retorne 1 ou mais registros seta o recordset baseado na tabela comparativo
    'executo loop pelo recordset baseado na tabela Recebidos, adicionando um novo registro
    'na tabela comparativo. Observe que fiz apenas para dois campo, siga a mesma
    'lógica para os demais
    '-------------------------------------------------------------------------------------
    If rsRecebidos.RecordCount > 0 Then
    Set rsComparativo = CurrentDb.OpenRecordset("Comparativo")

    Do While Not rsRecebidos.EOF

    With rsComparativo

    .AddNew
    '
    !NomeUsuário = rsRecebidos!nomeBeneficiario 'Enviado
    '
    !CódUsuário = rsRecebidos!numeroCarteira 'Enviado
    '
    !CódGuia = rsRecebidos!senhaAutorizacao 'Enviado
    '
    !DtAtendimento = rsRecebidos!dataHoraInternacao 'Enviado
    '
    !DtAlta = DLookup("DtAlta", "Enviado", "CódGuia = '" & rsRecebidos!senhaAutorizacao & "'") 'Enviado
    '
    !CódServiço = rsRecebidos!codigo 'Enviado
    '
    !NomeServiço = rsRecebidos!descricao 'Enviado
    '
    !QtdRecebido = rsRecebidos!quantidade 'Recebido
    '
    !valorUnitario = rsRecebidos!valorUnitario 'Recebido
    '
    !valorTotalRecebido = rsRecebidos!valorTotal 'Recebido
    '
    !Nota = DLookup("Nota", "Enviado", "CódGuia = '" & rsRecebidos!senhaAutorizacao & "'") 'Enviado
    '
    !Fechamento = DLookup("Fechamento", "Enviado", "CódGuia = '" & rsRecebidos!senhaAutorizacao & "'") 'Enviado
    '
    .Update
    '
    End With
    '----------------------------------------------------------------
    'Incremento o contador para exibir mensagem de registros copiados
    '----------------------------------------------------------------
    ncount = ncount + 1
    rsRecebidos.MoveNext

    Loop
    '------------------------------------
    CurrentDb.Execute "INSERT INTO EnviadoConf ( NomeUsuário, CódUsuário, CódGuia, DtAtendimento, DtAlta, CódServiço, NomeServiço, QuantidadeServiço, Referencia, ValorPago, Fechamento, Nota )" & vbCrLf & _
    "SELECT Enviado.NomeUsuário, Enviado.CódUsuário, Enviado.CódGuia, Enviado.DtAtendimento, Enviado.DtAlta, Enviado.CódServiço, Enviado.NomeServiço, Sum(Enviado.QuantidadeServiço) AS SomaDeQuantidadeServiço, Enviado.Referencia, Sum(Enviado.ValorPago) AS SomaDeValorPago, Enviado.Fechamento, Enviado.Nota" & vbCrLf & _
    "FROM Enviado" & vbCrLf & _
    "GROUP BY Enviado.NomeUsuário, Enviado.CódUsuário, Enviado.CódGuia, Enviado.DtAtendimento, Enviado.DtAlta, Enviado.CódServiço, Enviado.NomeServiço, Enviado.Referencia, Enviado.Fechamento, Enviado.Nota;"

    'Deleta os arquivos da tabela Enviado
    '------------------------------------
    CurrentDb.Execute "DELETE * FROM Enviado WHERE CódGuia = '" & Me.cboEnviados & "'"
    'Deleta os arquivos da tabela Recebido
    '------------------------------------
    CurrentDb.Execute "DELETE * FROM Recebido WHERE senhaAutorizacao = '" & Me.cboEnviados & "'"
    '---------------------------
    'Emite mensagem de terminado
    '---------------------------
    MsgBox "A consulta localizou e enviou para tabela Comparativo. " & ncount & " Registro(s)", vbInformation, "COMPARANDO DADOS..."
    End If

    End Sub

    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12246
    Registrado : 01/03/2011

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  HARYSOHN em Qua 19 Mar 2014, 00:53

    A consulta deve conter uma cláusula WHERE para filtrar os dados que deseja..

    Cumprimentos.


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    CLIQUE AQUI E VEJA O VÍDEO >>> BIOMETRIA EM ACCESS

    Iniciando no Access? Então veja esse tópico e também esse


    BUSCA NO FÓRUM - CLIQUE AQUI!!!

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 459
    Registrado : 20/01/2014

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  XPTOS em Qua 19 Mar 2014, 10:50

    a cláusula eu já tenho, seria: "SELECT * FROM Enviado WHERE CódGuia = '" & Me.cboEnviados & "'"
    Agora aonde devo encaixar ela nesse código:
    CurrentDb.Execute "INSERT INTO EnviadoConf ( NomeUsuário, CódUsuário, CódGuia, DtAtendimento, DtAlta, CódServiço, NomeServiço, QuantidadeServiço, Referencia, ValorPago, Fechamento, Nota )" & vbCrLf & _
    "SELECT Enviado.NomeUsuário, Enviado.CódUsuário, Enviado.CódGuia, Enviado.DtAtendimento, Enviado.DtAlta, Enviado.CódServiço, Enviado.NomeServiço, Sum(Enviado.QuantidadeServiço) AS SomaDeQuantidadeServiço, Enviado.Referencia, Sum(Enviado.ValorPago) AS SomaDeValorPago, Enviado.Fechamento, Enviado.Nota" & vbCrLf & _
    "FROM Enviado" & vbCrLf & _
    "GROUP BY Enviado.NomeUsuário, Enviado.CódUsuário, Enviado.CódGuia, Enviado.DtAtendimento, Enviado.DtAlta, Enviado.CódServiço, Enviado.NomeServiço, Enviado.Referencia, Enviado.Fechamento, Enviado.Nota;"


    Tentei aplicar e deu erro de sintaxe.

    Grato,

    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12246
    Registrado : 01/03/2011

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  HARYSOHN em Qua 19 Mar 2014, 13:06

    Coloque esta consulta em uma consulta grafica, abra em modo design, coloque o critério em critérios depois veja o VBA da mesma.

    Cumprimentos.


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    CLIQUE AQUI E VEJA O VÍDEO >>> BIOMETRIA EM ACCESS

    Iniciando no Access? Então veja esse tópico e também esse


    BUSCA NO FÓRUM - CLIQUE AQUI!!!

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 459
    Registrado : 20/01/2014

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  XPTOS em Qua 19 Mar 2014, 17:04

    Fiz como orientou e ficou assim:

    CurrentDb.Execute "INSERT INTO EnviadoConf ( NomeUsuário, CódUsuário, CódGuia, DtAtendimento, DtAlta, CódServiço, NomeServiço, QuantidadeServiço, Referencia, ValorPago, Fechamento, Nota )" & vbCrLf & _
    "SELECT * FROM Enviado WHERE CódGuia = '" & Me.cboEnviados & "'" & vbCrLf & _
    "FROM Enviado" & vbCrLf & _
    "GROUP BY Enviado.NomeUsuário, Enviado.CódUsuário, Enviado.CódGuia, Enviado.DtAtendimento, Enviado.DtAlta, Enviado.CódServiço, Enviado.NomeServiço, Enviado.Referencia, Enviado.Fechamento, Enviado.Nota;"


    Porém, ainda aparece mensagem de erro 3075 - Erro de sintaxe, operador faltando.

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8907
    Registrado : 04/11/2009

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  JPaulo em Qua 19 Mar 2014, 17:29

    Pitaco;

    Esta linha está a mais;

    "FROM Enviado" & vbCrLf & _



    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 459
    Registrado : 20/01/2014

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  XPTOS em Qua 19 Mar 2014, 17:38

    Agradeço a sugestão!

    Deu o erro 3121: Não é possível agrupar campos com '*' asterisco.

    Caso queira, posso posta o BD.

    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12246
    Registrado : 01/03/2011

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  HARYSOHN em Qua 19 Mar 2014, 19:19

    Poste-o

    Cumprimentos.


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    CLIQUE AQUI E VEJA O VÍDEO >>> BIOMETRIA EM ACCESS

    Iniciando no Access? Então veja esse tópico e também esse


    BUSCA NO FÓRUM - CLIQUE AQUI!!!

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 459
    Registrado : 20/01/2014

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  XPTOS em Qua 19 Mar 2014, 19:30

    Segue!

    No Form_Itens enviados eu seleciono o registro na combox cboenviado e ao clicar no btnExecutar que está dando esse erro.

    [Você precisa estar registrado e conectado para ver este link.]

    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12246
    Registrado : 01/03/2011

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  HARYSOHN em Sex 21 Mar 2014, 11:43

    Executar Guia?

    Cumprimentos.


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    CLIQUE AQUI E VEJA O VÍDEO >>> BIOMETRIA EM ACCESS

    Iniciando no Access? Então veja esse tópico e também esse


    BUSCA NO FÓRUM - CLIQUE AQUI!!!

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 459
    Registrado : 20/01/2014

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  XPTOS em Sex 21 Mar 2014, 11:49

    btnExecutar que está marcado em azul no form.

    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12246
    Registrado : 01/03/2011

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  HARYSOHN em Sex 21 Mar 2014, 11:53

    O que está escrito no caption deste botão?


    Cumprimentos.


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    CLIQUE AQUI E VEJA O VÍDEO >>> BIOMETRIA EM ACCESS

    Iniciando no Access? Então veja esse tópico e também esse


    BUSCA NO FÓRUM - CLIQUE AQUI!!!

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 459
    Registrado : 20/01/2014

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  XPTOS em Sex 21 Mar 2014, 12:01

    Caption está escrito como btnExecutar no formulário (Form_Itens enviados)

    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12246
    Registrado : 01/03/2011

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  HARYSOHN em Sex 21 Mar 2014, 21:16

    Eu poderia abrir o form em modo design e ver o nome do botão..
    Mas eu perguntei: O que está escrito no botão?

    Cumprimentos.


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    CLIQUE AQUI E VEJA O VÍDEO >>> BIOMETRIA EM ACCESS

    Iniciando no Access? Então veja esse tópico e também esse


    BUSCA NO FÓRUM - CLIQUE AQUI!!!

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 459
    Registrado : 20/01/2014

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  XPTOS em Sex 21 Mar 2014, 22:39

    Sim, me equivoquei!

    No botão está escrito Executar Guia.

    Atenciosamente,

    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12246
    Registrado : 01/03/2011

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  HARYSOHN em Seg 24 Mar 2014, 09:50

    Basicamente é como está ai abaixo, deves especificar os nomes dos campos quando utiliza uma consulta agrupada..
    Este código ao colocar em teu projeto dará erro.. pois a quantidade de campos que agrupo não condiz com a quantidade de campos que vão receber os dados.

    Verifique e corrija isto.

    Cumprimentos.


    CurrentDb.Execute "INSERT INTO EnviadoConf ( NomeUsuário, CódUsuário, CódGuia, DtAtendimento, DtAlta, CódServiço, NomeServiço, QuantidadeServiço, Referencia, ValorPago, Fechamento, Nota )" & vbCrLf & _
    "SELECT Enviado.NomeUsuário, Enviado.CódUsuário, Enviado.CódGuia, Enviado.DtAtendimento, Enviado.DtAlta, Enviado.CódServiço, Enviado.NomeServiço, Enviado.Referencia, Enviado.Fechamento, Enviado.Nota FROM Enviado WHERE CódGuia = '" & Me.cboEnviados & "'" & vbCrLf & _
    "GROUP BY Enviado.NomeUsuário, Enviado.CódUsuário, Enviado.CódGuia, Enviado.DtAtendimento, Enviado.DtAlta, Enviado.CódServiço, Enviado.NomeServiço, Enviado.Referencia, Enviado.Fechamento, Enviado.Nota;"


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    CLIQUE AQUI E VEJA O VÍDEO >>> BIOMETRIA EM ACCESS

    Iniciando no Access? Então veja esse tópico e também esse


    BUSCA NO FÓRUM - CLIQUE AQUI!!!

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 459
    Registrado : 20/01/2014

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  XPTOS em Seg 24 Mar 2014, 11:20

    Harysohn, bom dia,

    Muito obrigado pelas valiosas dicas.

    Conseguir acertar o código e ficou assim depois de resolvido:

    CurrentDb.Execute "INSERT INTO EnviadoConf ( NomeUsuário, CódUsuário, CódGuia, DtAtendimento, DtAlta, CódServiço, NomeServiço, QuantidadeServiço, Referencia, ValorPago, Fechamento, Nota )" & vbCrLf & _
    "SELECT Enviado.NomeUsuário, Enviado.CódUsuário, Enviado.CódGuia, Enviado.DtAtendimento, Enviado.DtAlta, Enviado.CódServiço, Enviado.NomeServiço, Sum(Enviado.QuantidadeServiço) AS SomaDeQuantidadeServiço, Enviado.Referencia, Sum(Enviado.ValorPago) AS SomaDeValorPago, Enviado.Fechamento, Enviado.Nota" & vbCrLf & _
    "FROM Enviado WHERE CódGuia = '" & Me.cboEnviados & "'" & vbCrLf & _
    "GROUP BY Enviado.NomeUsuário, Enviado.CódUsuário, Enviado.CódGuia, Enviado.DtAtendimento, Enviado.DtAlta, Enviado.CódServiço, Enviado.NomeServiço, Enviado.Referencia, Enviado.Fechamento, Enviado.Nota;"


    Grato,

    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12246
    Registrado : 01/03/2011

    Re: [Resolvido]Importar registro via VBA.

    Mensagem  HARYSOHN em Seg 24 Mar 2014, 21:56

    O Fórum agradece o retorno.


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    CLIQUE AQUI E VEJA O VÍDEO >>> BIOMETRIA EM ACCESS

    Iniciando no Access? Então veja esse tópico e também esse


    BUSCA NO FÓRUM - CLIQUE AQUI!!!

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]

      Data/hora atual: Qua 07 Dez 2016, 08:35