MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    Preencher campos de formulário com sql

    avatar
    Gilson40
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 80
    Registrado : 18/07/2011

    Preencher campos de formulário com sql Empty Preencher campos de formulário com sql

    Mensagem  Gilson40 em 12/6/2020, 00:20

    Estou com algum erro na composição da sql abaixo para preencher os campos do meu formulário:

    strSQL = "SELECT public_pedidos.id_pedidos, public_pedidos.id_status, public_pedidos.id_vendedor, public_pedidos.total, public_pedidos.numero_pedido, public_pedidos.data, id_cliente.nome, public_fabricas.fabrica FROM id_cliente INNER JOIN (public_pedidos INNER JOIN public_fabricas ON public_pedidos.id_fabricas = public_fabricas.id_fabricas) ON id_cliente.id_clientes = public_pedidos.id_clientes WHERE (((public_pedidos.data) > Date - 120) And ((id_cliente.nome) Like " * " + [Formulários]![lista_pedidos]![Texto21] & " * ")) Or (((public_pedidos.numero_pedido) Like " * " + [Formulários]![lista_pedidos]![Texto21] & " * ") And ((public_pedidos.data) > Date - 120)) Or (((public_pedidos.data) > Date - 90) And ((public_fabricas.fabrica) Like " * " + [Formulários]![lista_pedidos]![Texto21] & " * "))ORDER BY public_pedidos.numero_pedido DESC"

    Da erro de tipos incompativeis.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2097
    Registrado : 22/11/2016

    Preencher campos de formulário com sql Empty Re: Preencher campos de formulário com sql

    Mensagem  DamascenoJr. em 12/6/2020, 00:35

    Tente colocar um espaço antes do order by

    )) ORDER BY

    e não

    ))ORDER BY

    Se não funcionar, copie sua instrução SQL, crie uma nova consulta, entre no modo SQL, cole sua instrução e mude para o modo folha de dados ou design para ver se funciona.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    Gilson40
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 80
    Registrado : 18/07/2011

    Preencher campos de formulário com sql Empty preencher-campos-de-formulario-com-sql

    Mensagem  Gilson40 em 12/6/2020, 01:59

    Coloquei o espaço, mas não era isso. Continua dando Tipo Incompativel. Na verdade eu copiei essa string de uma consulta que funciona, mas quando colo ela lá no load do form ela dá erro.

    String original que funciona :

    SELECT public_pedidos.id_pedidos, public_pedidos.id_status, public_pedidos.id_vendedor, public_pedidos.total, public_pedidos.numero_pedido, public_pedidos.data, id_cliente.nome, public_fabricas.fabrica
    FROM id_cliente INNER JOIN (public_pedidos INNER JOIN public_fabricas ON public_pedidos.id_fabricas = public_fabricas.id_fabricas) ON id_cliente.id_clientes = public_pedidos.id_clientes
    WHERE (((public_pedidos.data)>Date()-120) AND ((id_cliente.nome) Like "*"+[Formulários]![lista_pedidos]![Texto21] & "*")) OR (((public_pedidos.numero_pedido) Like "*"+[Formulários]![lista_pedidos]![Texto21] & "*") AND ((public_pedidos.data)>Date()-120)) OR (((public_pedidos.data)>Date()-90) AND ((public_fabricas.fabrica) Like "*"+[Formulários]![lista_pedidos]![Texto21] & "*"))
    ORDER BY public_pedidos.numero_pedido DESC;


    Esta é abaixo não funciona:

    strSQL = "SELECT public_pedidos.id_pedidos, public_pedidos.id_status, public_pedidos.id_vendedor, public_pedidos.total, public_pedidos.numero_pedido, public_pedidos.data, id_cliente.nome, public_fabricas.fabrica FROM id_cliente INNER JOIN (public_pedidos INNER JOIN public_fabricas ON public_pedidos.id_fabricas = public_fabricas.id_fabricas) ON id_cliente.id_clientes = public_pedidos.id_clientes WHERE (((public_pedidos.data) > Date - 120) And ((id_cliente.nome) Like " * " + [Formulários]![lista_pedidos]![Texto21] & " * ")) Or (((public_pedidos.numero_pedido) Like " * " + [Formulários]![lista_pedidos]![Texto21] & " * ") And ((public_pedidos.data) > Date - 120)) Or (((public_pedidos.data) > Date - 90) And ((public_fabricas.fabrica) Like " * " + [Formulários]![lista_pedidos]![Texto21] & " * ")) ORDER BY public_pedidos.numero_pedido DESC"
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2097
    Registrado : 22/11/2016

    Preencher campos de formulário com sql Empty Re: Preencher campos de formulário com sql

    Mensagem  DamascenoJr. em 12/6/2020, 02:14

    Outro detalhe, troque "formulários" por "forms". O VBA não reconhece termos em português.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    Gilson40
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 80
    Registrado : 18/07/2011

    Preencher campos de formulário com sql Empty Re: Preencher campos de formulário com sql

    Mensagem  Gilson40 em 12/6/2020, 02:48

    Fiz isso mas o erro persiste
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2097
    Registrado : 22/11/2016

    Preencher campos de formulário com sql Empty Re: Preencher campos de formulário com sql

    Mensagem  DamascenoJr. em 12/6/2020, 02:54

    Não tenho mais sugestões senão a de sugerir anexar o arquivo para análise.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    Gilson40
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 80
    Registrado : 18/07/2011

    Preencher campos de formulário com sql Empty Re: Preencher campos de formulário com sql

    Mensagem  Gilson40 em 12/6/2020, 03:39

    Com esse código está funcionando parcialmente. Meu objetivo é carregar um formulario continuo, mas só está carregando uma linha, no caso a última linha.

    Está faltando algum comando aí

    Private Sub Form_Load()

    DoCmd.MoveSize 0, 0, 18500, 10600
    DoCmd.GoToControl "Texto21"
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strSQL As String

    strSQL = "SELECT public_pedidos.id_pedidos, public_pedidos.id_status, public_pedidos.id_vendedor, public_pedidos.total, public_pedidos.numero_pedido, public_pedidos.data, id_cliente.nome, public_fabricas.fabrica FROM id_cliente INNER JOIN (public_pedidos INNER JOIN public_fabricas ON public_pedidos.id_fabricas = public_fabricas.id_fabricas) ON id_cliente.id_clientes = public_pedidos.id_clientes WHERE ((public_pedidos.data) > #1/1/20#) ORDER BY public_pedidos.numero_pedido DESC"


    Set db = CurrentDb
    Set rs = db.OpenRecordset(strSQL)
    If Not rs.BOF Then
    Me.Combinação19 = rs("id_status")
    Me.Combinação21 = rs("id_vendedor")
    Me.fabrica = rs("fabrica")
    Me.nome = rs("nome")
    Me.numero_pedido = rs("numero_pedido")
    Me.total = rs("total")
    Me.data = rs("data")
    rs.MoveNext
    End If
    rs.Close

    Set rs = Nothing
    db.Close
    Set db = Nothing
    End Sub


    Eloirp
    Eloirp
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 15/06/2013

    Preencher campos de formulário com sql Empty Re: Preencher campos de formulário com sql

    Mensagem  Eloirp em 12/6/2020, 13:12

    talvez assim:

       Do While Not rs.EOF

           rs!SeuCampo

           rs.MoveNext
       Loop

    não assim:
    If Not rs.BOF Then

           rs!SeuCampo

           rs.MoveNext
       Loop

    Código:
       Call Cnn_Open
        strRS = "SELECT * FROM tbl_Usuario_CtrlAcesso WHERE CodigoUser=" & Me.cmbUser.Column(0) & " AND Sistema Like '%" & Me.cmbSistema & "%' AND Status='Ativo' ORDER BY Sistema, nmFormulario"
        Set rs = cnn.Execute(strRS)
        
        Do While Not rs.EOF

            Me.Lista.RowSourceType = "Value List"
            Me.Lista.AddItem rs!Codigo & ";" & rs!Filial & ";" & rs!Sistema & ";" & rs!nmFormulario & ";" & rs!Formulario & ";" & strNovo & ";" & strSalvar & ";" & strAlterar & ";" & strExcluir & ";" & strConsultar & ";" & rs!Data
            
            rs.MoveNext
        Loop
        
        Set rs = Nothing: Close
        Set cnn = Nothing: Close
    avatar
    Gilson40
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 80
    Registrado : 18/07/2011

    Preencher campos de formulário com sql Empty Re: Preencher campos de formulário com sql

    Mensagem  Gilson40 em 12/6/2020, 19:54

    Legal, mas pelo que entendi este código é para uma lista de valores, ou funciona para um formulário contínuo? aquele Me.Lista seria no formulario contínuo substituido pelo que?
    Eloirp
    Eloirp
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 15/06/2013

    Preencher campos de formulário com sql Empty Re: Preencher campos de formulário com sql

    Mensagem  Eloirp em 12/6/2020, 19:59

    Sim, neste exemplo é para uma lista, mas foi do mostrar a montagem do loop que é onde está seu erro! Se vc inseriu uma linha a inserção no form está corrreta!

    Seu código inicia com If not e deve ser do while!

      Data/hora atual: 5/7/2020, 07:59