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


3 participantes

    [Resolvido]Erro de Sintaxe - 3075

    avatar
    w_fabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 19/09/2010

    [Resolvido]Erro de Sintaxe - 3075 Empty [Resolvido]Erro de Sintaxe - 3075

    Mensagem  w_fabricio 4/10/2017, 01:44

    Caros, saudações!

    Estou com um formulário onde em uma consulta sql, se me retornar um registro igual, impeça o lançamento do registro. a instrução sql é:

    strSQL = "SELECT Tela.* FROM Tela " _
    & "WHERE (((Tela.IdTela)=" & Me.Cbo_Prod &") and ((Tela.Rolo)=" & Me.Comp & ") and ((Tela.Alt)=" & Me.Alt & "))"

    Onde todos os campos na tabela estão com formato número.

    Assim quando os campos "comp" e "alt" são números inteiros, a consulta funciona, mas quando número em fração, ex: 2,5, me retorna o erro de sixtase (virgula) na expressão de consulta.

    Onde estou errando?

    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Erro de Sintaxe - 3075 Empty Re: [Resolvido]Erro de Sintaxe - 3075

    Mensagem  CassioFabre 4/10/2017, 17:32

    Boa tarde,

    Tente usar o replace:
    Código:
    strSQL = "SELECT Tela.* FROM Tela " _
    & "WHERE (((Tela.IdTela)=" & Me.Cbo_Prod &") and ((Tela.Rolo)=" & Replace(Me.Comp, ",", ".") & ") and ((Tela.Alt)=" & Replace(Me.Alt, ",", ".") & "))"

    Abraço.
    avatar
    w_fabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 19/09/2010

    [Resolvido]Erro de Sintaxe - 3075 Empty Erro de Sintaxe - 3075

    Mensagem  w_fabricio 4/10/2017, 22:24

    Caro Cassio, Obrigado pelo retorno!

    Até que funfa, porém não retorno o número em formato correto, ele converte para 0.00 em vez de 0,00 - substitui o ponto pela virgula e aí volta o erro 3075.

    Já tentei:
    Código:
    Format(Me.Alt, "#,##0.00")

    E também da erro 3075
    avatar
    joão2017
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 75
    Registrado : 16/09/2017

    [Resolvido]Erro de Sintaxe - 3075 Empty Re: [Resolvido]Erro de Sintaxe - 3075

    Mensagem  joão2017 5/10/2017, 00:41

    Boa noite! E se tentar assim? Format(Me.Alt, 2)
    avatar
    w_fabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 19/09/2010

    [Resolvido]Erro de Sintaxe - 3075 Empty Erro de Sintaxe - 3075

    Mensagem  w_fabricio 5/10/2017, 01:01

    Caro João! muito obrigado, mas também não deu.

    Incrível que montei o código dcout da forma:

    Código:
    Sub verificaRegistro()
    '
        Dim criterio As String
    '
        If Not IsNull(Abrev) And Not IsNull(Comp) And Not IsNull(Alt) Then
    '
            If IsNull(Cbo_Prod) Then
                Cbo_Prod = DMax("IdTela", "Tela") + 1
            End If
    '
            criterio = "Abrev = '" & Abrev & "' And Rolo = " & Comp & " and Alt = " & Alt & ""
    '
            If DCount("Cod", "Tela", criterio) > 0 Then
    '
                If MsgBox("Ja existe lançamento idêntico cadastrado, localize e altere.", vbExclamation, "Atenção!") Then
                    DoCmd.SetWarnings False
                    DoCmd.RunCommand acCmdDeleteRecord
                    DoCmd.GoToRecord , , acPrevious
    '
                End If
    '
            End If
    '
        End If
    '
    End Sub

    E dá o mesmo erro.

    Será que vou ter que alterar os campos números para texto?
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Erro de Sintaxe - 3075 Empty Re: [Resolvido]Erro de Sintaxe - 3075

    Mensagem  CassioFabre 5/10/2017, 11:37

    Bom dia,

    Tentou colocar o replace() no critério e usar o DCount()? Não vi nada no seu código que retornasse "0.00" pois o DCount absolutamente sempre retornará um valor inteiro com a quantidade de registros encontrada para determinado critério.

    Se fosse usar um recordset pra fazer sua consulta, ficaria assim:

    Código:
    Dim db as database
    dim rs as recordset

    set db = currentdb
    set rs = db.Openrecordset("SELECT * FROM Tela WHERE IdTela =" & Me.Cbo_Prod &" and Rolo = " & Replace(Me.Comp, ",", ".") & " and Alt = " & Replace(Me.Alt, ",", ".") & ")

    If rs.RecordCount > 0 Then

    MsgBox "Ja existe lançamento idêntico cadastrado, localize e altere.", vbExclamation, "Atenção!"
    DoCmd.SetWarnings False
    DoCmd.RunCommand acCmdDeleteRecord
    DoCmd.GoToRecord , , acPrevious

    End if

    Testa aí.

    Abraço.


    .................................................................................
    Só não tem código pra morte!
    avatar
    w_fabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 19/09/2010

    [Resolvido]Erro de Sintaxe - 3075 Empty Erro de Sintaxe - 3075

    Mensagem  w_fabricio 5/10/2017, 12:17

    Caro Cassio!

    Acredito que possa funcionar, mas não consegui aqui.

    Erro do copilação
    Era esperado: Separador de Lista ou )

    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Erro de Sintaxe - 3075 Empty Re: [Resolvido]Erro de Sintaxe - 3075

    Mensagem  CassioFabre 5/10/2017, 12:46

    Bom dia,

    Eu esqueci uma " antes do ) do openrecordset. Segue código correto:

    Código:
    Dim db as database
    dim rs as recordset

    set db = currentdb
    set rs = db.Openrecordset("SELECT * FROM Tela WHERE IdTela =" & Me.Cbo_Prod &" and Rolo = " & Replace(Me.Comp, ",", ".") & " and Alt = " & Replace(Me.Alt, ",", ".") & "")

    If rs.RecordCount > 0 Then

    MsgBox "Ja existe lançamento idêntico cadastrado, localize e altere.", vbExclamation, "Atenção!"
    DoCmd.SetWarnings False
    DoCmd.RunCommand acCmdDeleteRecord
    DoCmd.GoToRecord , , acPrevious

    End if


    .................................................................................
    Só não tem código pra morte!
    avatar
    w_fabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 19/09/2010

    [Resolvido]Erro de Sintaxe - 3075 Empty Erro de Sintaxe - 3075

    Mensagem  w_fabricio 6/10/2017, 01:21

    Caro Cassio, não consigo!

    E dessa vez não funfa nada.

    Segue copia do bd:
    https://www.dropbox.com/s/nnfwsrwv7biscjh/SupConEX.mdb?dl=0
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Erro de Sintaxe - 3075 Empty Re: [Resolvido]Erro de Sintaxe - 3075

    Mensagem  CassioFabre 6/10/2017, 11:30

    Bom dia,

    Mande a copia do backend ou transforme a tabela em tabela local no arquivo que mandou.

    Abraço.


    .................................................................................
    Só não tem código pra morte!
    avatar
    w_fabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 19/09/2010

    [Resolvido]Erro de Sintaxe - 3075 Empty Erro de Sintaxe - 3075

    Mensagem  w_fabricio 6/10/2017, 15:56

    Bom dia Cassio! mas que vacilo meu.

    Segue

    https://www.dropbox.com/s/oxbrzoi3azbohn1/SupConEX.mdb?dl=0
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Erro de Sintaxe - 3075 Empty Re: [Resolvido]Erro de Sintaxe - 3075

    Mensagem  CassioFabre 6/10/2017, 17:41

    Boa tarde,

    Substitua a função CriterioLan por isso:

    Código:
    Dim db As Database
     Dim rs As Recordset

     Set db = CurrentDb
     Set rs = db.OpenRecordset("SELECT * FROM Tela WHERE IdTela =" & Me.Cbo_Prod & " and Rolo = " & Replace(Me.Comp, ",", ".") & " and Alt = " & Replace(Me.Alt, ",", ".") & "")

     If rs.RecordCount > 0 Then
        MsgBox "Ja existe lançamento idêntico cadastrado, localize e altere.", vbExclamation, "Atenção!"
     Else
        Lancar
     End If

    Abraço.
    Anexos
    [Resolvido]Erro de Sintaxe - 3075 AttachmentSupConEX.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (68 Kb) Baixado 9 vez(es)


    .................................................................................
    Só não tem código pra morte!
    avatar
    w_fabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 19/09/2010

    [Resolvido]Erro de Sintaxe - 3075 Empty Erro de Sintaxe - 3075

    Mensagem  w_fabricio 6/10/2017, 18:06

    Cassio, boa tarde!

    É o princípio! porém voce observou que ele não procura o valor com formato: 0,00, mas sim 0,0, ex:

    no campo Comp ou Alt é: 1,10 - ele lê 1,1

    E se não for exatamente igual, ele não identifica o registro.

    Tentei mudar o formato do campo e não resolvi, será que é no código mesmo?

    Abraço
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Erro de Sintaxe - 3075 Empty Re: [Resolvido]Erro de Sintaxe - 3075

    Mensagem  CassioFabre 6/10/2017, 20:06

    Isso é normal, é um princípio matemático. Que diferença faz voce escrever 1,1 ou 1,10? Nenhuma. Teste quando os valores forem 0,01 e 0,02 e veja se o sistema procura corretamente.


    .................................................................................
    Só não tem código pra morte!
    avatar
    w_fabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 19/09/2010

    [Resolvido]Erro de Sintaxe - 3075 Empty Erro de Sintaxe - 3075

    Mensagem  w_fabricio 6/10/2017, 20:51

    Caro Cassio!

    Entendi!

    Mas seguinte! na tabela, o produto é cadastro com um dos critérios de rolo e altura, onde ambos contém a menor fração em decimal, ou seja, no máximo 1,1 - nunca 1,11.

    Ja tentei mudando o formato do campo, tirando de padrão e deixando em branco, só assim colocamos o valor desejado. Coloque no campo alt valor 1,10 e ele não encontra esse valor na tabela, possibilitando o cadastro de produto em duplicidade.

    Teste aí procurando o registro: "Trançada - M1,5 / A16 - Pássaro" e coloque no campo comp = 25,00 e na Alt = 1,00 - ele deve impedir esse lançamento por ja existir produto lançado com esse comprimento e altura.

    abraço
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Erro de Sintaxe - 3075 Empty Re: [Resolvido]Erro de Sintaxe - 3075

    Mensagem  CassioFabre 9/10/2017, 14:08

    Bom dia,

    Altere os dois campos da tabela para tipo Número - Duplo - Padrão com 2 casas decimais.

    No formulário, substitua o comando do botão para
    Código:
    Function CriterioLan()
     Dim db As Database
     Dim rs As Recordset
     Dim str As String
     
    str = "SELECT * FROM Tela WHERE IdTela = " & Me.Cbo_Prod & " and "
    str = str & "Rolo = " & Replace(Format(Me.Comp, "#,##0.00"), ",", ".") & " and Alt = " & Replace(Format(Me.Alt, "#,##0.00"), ",", ".") & ""
        
     Set db = CurrentDb
     Set rs = db.OpenRecordset(str)
     
     MsgBox str
      MsgBox rs.RecordCount

     If rs.RecordCount > 0 Then

     MsgBox "Ja existe lançamento idêntico cadastrado, localize e altere.", vbExclamation, "Atenção!"
     Else
    '  Lancar
    MsgBox "passou"
     End If
    End Function

    Deixei uma msgbox mostrando o código informado no recordset. Se voce fizer algo e der "passou" quando não deveria ter dado, veja o código que está na msgbox na comparação do IdTela = " & Me.Cbo_Prod & ", vá até a tabela e veja se na linha desse campo o Rolo e Alt estão cadastrados com os valores que informou no formulário, pois o valor que voce me pediu pra verificar na mensagem acima não estava cadastrado.

    Deixei apenas a msgbox informando se passou ou não, depois voce altera ai pro seu codigo de gravação do registro.

    Abraço.
    Anexos
    [Resolvido]Erro de Sintaxe - 3075 AttachmentSupConEX.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (95 Kb) Baixado 8 vez(es)


    .................................................................................
    Só não tem código pra morte!
    avatar
    w_fabricio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 19/09/2010

    [Resolvido]Erro de Sintaxe - 3075 Empty Erro de Sintaxe - 3075

    Mensagem  w_fabricio 9/10/2017, 17:05

    Mestre, Mestre, Mestre Cassio!
    Uso de toda a minha gratidão para vossa pessoa pela tua paciência, inteligência, dedicação e parceria.

    Que DEUS continue te iluminando!

    Realmente a busca com o código do produto não validava a informações necessárias, fiz as devidas alterações e quanto ao problema dos valores dos campos "comp" e "alt" foram resolvidos e funcionou certinho, graças à tua ajuda.

    Segue o código que funcionou:
    Código:
    Function CriterioLan()
     Dim db As Database
     Dim rs As Recordset
     Dim str As String
     Dim st As String
    '
    str = "SELECT * FROM Tela WHERE Malha = '" & Me.Txt_Malha & "' and MatPrima = " & Me.Txt_MatPrima & " and "
    str = str & "Rolo = " & Replace(Format(Me.Comp, "#,##0.00"), ",", ".") & " and Alt = " & Replace(Format(Me.Alt, "#,##0.00"), ",", ".") & ""
    '
     Set db = CurrentDb
     Set rs = db.OpenRecordset(str)
    '
     If rs.RecordCount > 0 Then
      MsgBox "Ja existe lançamento idêntico cadastrado." & vbCrLf & "Tela(" & Me.Cbo_Prod & ") Rolo(" & Format(Me.Comp, "#,##0.00") & "), Alt(" & Format(Me.Alt, "#,##0.00") & ")" & vbCrLf & "Lançar como produto padrão!", vbExclamation, "Atenção!"
      Me.Txt_Sel.SetFocus
     Else
        Lancar
        If Me.Cbo_Tipo = "ENTRADA" Then
        BMatPrima
        End If
        Zerar
     End If
    End Function

    Mui Grato, Abraços
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Erro de Sintaxe - 3075 Empty Re: [Resolvido]Erro de Sintaxe - 3075

    Mensagem  CassioFabre 9/10/2017, 17:50

    Boa tarde,

    Não é pra tanto hehe Que bom que chegamos à solução.

    Abraço.


    .................................................................................
    Só não tem código pra morte!

    Conteúdo patrocinado


    [Resolvido]Erro de Sintaxe - 3075 Empty Re: [Resolvido]Erro de Sintaxe - 3075

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 21:22