MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Importar registro via VBA.

    Compartilhe
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 509
    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
    avatar
    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12230
    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.]
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 509
    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,
    avatar
    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12230
    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.]
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 509
    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.
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9255
    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 & _



    .................................................................................
    Contribua com o maximoaccess, ajude a melhorar este que é o seu site na NET.

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

    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.]
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 509
    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.
    avatar
    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12230
    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.]
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 509
    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.]
    avatar
    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12230
    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.]
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 509
    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.
    avatar
    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12230
    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.]
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 509
    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)
    avatar
    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12230
    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.]
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 509
    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,
    avatar
    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12230
    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.]
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 509
    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,
    avatar
    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12230
    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: Sex 23 Jun 2017, 18:07