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

    Erro em um SQL

    Compartilhe

    amorimeleon
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 14/10/2016

    Erro em um SQL

    Mensagem  amorimeleon em Ter 25 Out 2016, 13:03

    Bom dia, segue abaixo o código que está apresentando erro, mas não acho o motivo para tal. Se alguém puder ajudar...




    Private Sub Form_Open(Cancel As Integer)

    Me.nrDiasOS = DateAdd("d", Nz(getParametro("nrDiasFiltroOS"), 0) * -1, Date)
    vLimite = Nz(getParametro("limNrRegistrosInicioConsultas"), 500)

    If vLimite > 0 Then
    If InStr(1, Me.RecordSource, " TOP ") = 0 Then
    vSQLInicial = Left(Me.RecordSource, 7) & "TOP " & vLimite & " " & Right(Me.RecordSource, Len(Me.RecordSource) - 7)
    (linha apontado de erro:) vSQLInicial = Left(vSQLInicial, InStr(1, vSQLInicial, "WHERE ") - 1) & "WHERE nrDocto >0 ORDER BY nrDocto DESC"

    End If
    Me.RecordSource = vSQLInicial
    Else
    vSQLInicial = Me.RecordSource
    End If



    End Sub
    avatar
    philipp.moreira
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 256
    Registrado : 05/02/2016

    Re: Erro em um SQL

    Mensagem  philipp.moreira em Dom 30 Out 2016, 20:28

    Código:




    Private Sub Form_Open(Cancel As Integer)

       Me.nrDiasOS = DateAdd("d", Nz(getParametro("nrDiasFiltroOS"), 0) * -1, Date)

       vLimite = Nz(getParametro("limNrRegistrosInicioConsultas"), 500)


       If vLimite > 0 Then
          
          If InStr(1, Me.RecordSource, " TOP ") = 0 Then
             
             'Creio que aqui falte o comando sELECT inicialmente para que fique tipo 'Select TOP 200 [campo1], [campo2] .....'
             vSQLInicial = Left(Me.RecordSource, 7) & "TOP " & vLimite & " " & Right(Me.RecordSource, Len(Me.RecordSource) - 7) & " "

             'E nesta parte ele pode não estar localizando o where, logo ele esta tentando fazer 0-1.... voce ja debugou o codigo e conferiu se na linha acima ele pega exatamente até o where?
             'linha apontado de erro:
             vSQLInicial = Left(vSQLInicial, InStr(1, vSQLInicial, "WHERE ") - 1) & "WHERE nrDocto >0 ORDER BY nrDocto DESC"

          End If
          
          Me.RecordSource = vSQLInicial

       Else
          vSQLInicial = Me.RecordSource
       End If

    End Sub

      Data/hora atual: Seg 20 Nov 2017, 05:46