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

    Dúvida Right join

    avatar
    rbbahia
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 14/05/2012

    Dúvida Right join Empty Dúvida Right join

    Mensagem  rbbahia 1/3/2013, 06:42

    Bom dia pessoal,

    Fiz a consulta abaixo e tem algo errado pois retorna sempre o erro:
    Erro em tempo de execução '3135'
    Erro de sintaxe na operação JOIN



    strSql = "SELECT RMT.NUM_LINHA, importa_linha.F1, importa_linha.F2, importa_linha.F5 FROM RMT " & _
    "RIGHT JOIN importa_linha ON RMT.NUM_LINHA = importa_linha.F1" & _
    "WHERE ((([formulários]![cadastro].[num_linha])=[importa_linha].[f1]));"
    DoCmd.RunSQL strSql

    Peço por gentileza que alguém me explique o que está errado na sintaxe.

    Desde já agradeço a atenção.

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  Alexandre Neves 1/3/2013, 06:47

    Bom dia,
    Tente assim:
    strSql = "SELECT RMT.NUM_LINHA, importa_linha.F1, importa_linha.F2, importa_linha.F5 FROM RMT " & _
    "RIGHT JOIN importa_linha ON RMT.NUM_LINHA = importa_linha.F1 " & _
    "WHERE [formulários]![cadastro].[num_linha]=[importa_linha].[f1];"


    .................................................................................
    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
    rbbahia
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 14/05/2012

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  rbbahia 1/3/2013, 06:56

    Dessa forma aparecem os erros:

    Erro em tempo de execução '2342'
    uma ação executarsql requer um argumento consistindo em uma instrução SQL
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  Alexandre Neves 1/3/2013, 06:58

    Pois, não reparei. A instrução que lhe passei estará certa, mas o runsql pede uma instrução de execução (p. ex. update ou delete)
    Se pretende obter um recordset, deve criar variável e obter através de openrecordset


    .................................................................................
    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
    rbbahia
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 14/05/2012

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  rbbahia 1/3/2013, 07:07

    Sim pretendo obter um recordset mas não sei como fazer isso, vi exemplos mas não consegui colocar no meu código, você pode me ajudar?

    att.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  Alexandre Neves 1/3/2013, 07:12

    Procure no fórum. Tem muitos exemplos
    http://maximoaccess.forumeiros.com/t9691-resolvidodistribuicao-de-tarefas
    http://maximoaccess.forumeiros.com/t11383-resolvidomacro-para-clicar-em-botao
    http://maximoaccess.forumeiros.com/t8641-resolvidopercorrer-registros-de-um-tabela
    ...


    .................................................................................
    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
    rbbahia
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 14/05/2012

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  rbbahia 1/3/2013, 10:15

    Olá, procurei nos tópicos mas ainda não funcionou, modifiquei todo o código e agora recebo o erro na linha Data1.recordsource=strsql

    Erro:
    erro em tempo de execução 424
    o objeto é obrigatório


    Código:


    Dim dbs As dao.Database
    Dim rsSQL As dao.Recordset
    Dim strSQL As String

    strSQL = "SELECT RMT.NUM_LINHA, importa_linha.F1, importa_linha.F2, importa_linha.F5 FROM RMT " & _
    "RIGHT JOIN importa_linha ON RMT.NUM_LINHA = importa_linha.F1 " & _
    "WHERE [formulários]![cadastro].[num_linha]=[importa_linha].[f1];"
    Data1.RecordSource = strSQL

    Set dbs = CurrentDb

    Set rsSQL = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
    Set Data1.Recordset = rsSQL
    Debug.Print rsSQL.Name
    Debug.Print Data1.RecordSource
    Data1.Refresh


    mais uma vez agradeço a ajuda
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  Alexandre Neves 1/3/2013, 10:48

    Comece por acertar o SQL. Cole o código SQL numa nova consulta e substitua as variáveis por valores que permitam verificar a funcionalidade.
    SELECT RMT.NUM_LINHA, importa_linha.F1, importa_linha.F2, importa_linha.F5 FROM RMT RIGHT JOIN importa_linha ON RMT.NUM_LINHA = importa_linha.F1 WHERE [formulários]![cadastro].[num_linha]=[importa_linha].[f1];
    Tendo esta parte certa, partirá para a seguinte


    .................................................................................
    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
    rbbahia
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 14/05/2012

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  rbbahia 1/3/2013, 12:39

    Eu criei uma consulta que funciona e retirei a sql dela que é essa.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  Alexandre Neves 1/3/2013, 12:40

    E o que é Data1?


    .................................................................................
    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
    rbbahia
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 14/05/2012

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  rbbahia 1/3/2013, 15:50

    Olá,

    é nem sei o que é data1, tanta coisa pra ver se funciona. Removi e deixei o código assim:

    Dim dbs As dao.Database
    Dim rsSQL As dao.Recordset
    Dim strSQL As String

    Set dbs = CurrentDb

    strSQL = "SELECT RMT.NUM_LINHA, importa_linha.F1, importa_linha.F2, importa_linha.F5 FROM RMT " & _
    "RIGHT JOIN importa_linha ON ((RMT.NUM_LINHA = importa_linha.F1))" & _
    "WHERE ((([formulários]![cadastro].[num_linha])=[importa_linha].[f1]));"

    Set rsSQL = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
    DoCmd.RunSQL strSQL



    Ele apresenta erro na linha:Set rsSQL = dbs.OpenRecordset(strSQL, dbOpenSnapshot)

    Diz "parâmetros insuficientes, eram esperados 1"

    Quando levo o mouse sobre o "dbopensnapshot" ele mostra que é igual a 4

    Você sabe o que pode ser?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  Alexandre Neves 1/3/2013, 16:07

    Reveja os nomes dos campos


    .................................................................................
    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
    rbbahia
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 14/05/2012

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  rbbahia 1/3/2013, 16:15

    Verifiquei e os nomes estão corretos, segue os campos das tabelas e do formulário que estou utilizando.

    tabema: RMT
    campo: num_linha

    tabela: importa_linha
    campos: F1, F2, F5


    formulário: Cadastro
    Campo: num_linha

    você consegue ver algum erro no preenchimento do sql com relação a nomenclatura dos campos?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  Alexandre Neves 1/3/2013, 16:18

    Esse campo no formulário, como se chama o controlo? tem o mesmo nome? se sim, pode ser dúbio e altere para nome normalizado TxtNumLinha, CxcNumLinha, etc.


    .................................................................................
    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
    rbbahia
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 14/05/2012

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  rbbahia 1/3/2013, 16:33

    Muito obrigado era esse o problema. Agora só mais uma coisa, como vaço para mostrar o resultado na propriedade value de um textbox?

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  Alexandre Neves 1/3/2013, 18:19

    Já devia ter visto dezenas de alertas para a nomenclatura normalizada.
    Não sei o que pretende atribuir, mas seja o que for coloque TxtQualquer=12345


    .................................................................................
    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

    Conteúdo patrocinado


    Dúvida Right join Empty Re: Dúvida Right join

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 20:03