O QUE PODE ESTAR ERRADO
Bom dia, tenho a seguinte funcao e sempre da erro na formula.
Se alguem puder ajudar, valeu.
Se alguem puder ajudar, valeu.
Public Sub imprimir()
Dim formula As String
abrir_banco
sql = "select * from conven"
rs.Open sql, cn, adOpenDynamic, adLockBatchOptimistic
If rs.RecordCount = 0 Then
Exit Sub
Else
rs.MoveFirst
End If
formula = "{conven.nomecli}= " & txt_nom.Text And "{conven.pago}=" & False
cry_fec.ReportFileName = App.Path & "\impressão\Fechamento de contas.rpt"
cry_fec.SelectionFormula = formula
cry_fec.RetrieveDataFiles
cry_fec.Action = 0
fechar_banco
End Sub
bom, naum entendo muito de banco de dados,
mas acho que pode estar ocorrendo erro na hora de informar o endereço do arquivo em:
pq se o programa estiver rodando na raiz, App.Patch retorna x:\
ficando por exemplo c:\\impressão.....
você pode dár um
ou então
falwos,
mas acho que pode estar ocorrendo erro na hora de informar o endereço do arquivo em:
cry_fec.ReportFileName = App.Path & "\impressão\Fechamento de contas.rpt"
pq se o programa estiver rodando na raiz, App.Patch retorna x:\
ficando por exemplo c:\\impressão.....
você pode dár um
cry_fec.ReportFileName = replace(App.Path & "\impressão\Fechamento de contas.rpt", "\\","\")
ou então
if mid(App.Path, len(App.Path)) = "\" then
cry_fec.ReportFileName = App.Path & "impressão\Fechamento de contas.rpt"
else
cry_fec.ReportFileName = App.Path & "\impressão\Fechamento de contas.rpt"
end if
falwos,
Tente colocar o código abaixo, inseri aspas simples na sua fórmula e mudei o and de lugar, pois, ele estava como sendo uma variável, fora das " , veja se funciona
Se não funcionar vo,te a postar.
Public Sub imprimir()
Dim formula As String
abrir_banco
sql = "select * from conven"
rs.Open sql, cn, adOpenDynamic, adLockBatchOptimistic
If rs.RecordCount = 0 Then
Exit Sub
Else
rs.MoveFirst
End If
formula = "{conven.nomecli}= '" & txt_nom.Text "' and {conven.pago}=" & False
cry_fec.ReportFileName = App.Path & "\impressão\Fechamento de contas.rpt"
cry_fec.SelectionFormula = formula
cry_fec.RetrieveDataFiles
cry_fec.Action = 0
fechar_banco
End Sub
Se não funcionar vo,te a postar.
nao funcionou nao, ele da o segunte erro
Type Mistash
Valeu
Type Mistash
Valeu
qual o tipo do seu campo conven.pago? no banco ele grava false ou 0?
se ele gravar zero no banco tente colocar o seguinte:
formula = "{conven.nomecli}= '" & txt_nom.Text "' and {conven.pago}=0"
Porque o erro agora não é na formulaÂÂÂ'e sim ele esta reclamando que o tipo de dados que você esta passando na clausula de comparação não é igual ao tipo do banco. e como se você estivesse passando um texto para um campo numério, um campo texto para um data..
Sendo assim a sintaxe da formula esta certa, falta acertas o tipo dos campos.
Espero que resolva.
se ele gravar zero no banco tente colocar o seguinte:
formula = "{conven.nomecli}= '" & txt_nom.Text "' and {conven.pago}=0"
Porque o erro agora não é na formulaÂÂÂ'e sim ele esta reclamando que o tipo de dados que você esta passando na clausula de comparação não é igual ao tipo do banco. e como se você estivesse passando um texto para um campo numério, um campo texto para um data..
Sendo assim a sintaxe da formula esta certa, falta acertas o tipo dos campos.
Espero que resolva.
O que acontece com a instrução:
Após ser passada ao CR, você pode ter, por exemplo, a seguinte fórmula de seleção:
"{conven.nomecli}=José Da Silva {conven.pago}=Falso"
E essa fórmula vai mesmo gerar erro. Agora, veja o resultado, se a montagem fosse, por exemplo:
formula = Empty
formula = formula & "{conven.nomecli}= '" & txt_nom.Text &"' "
formula = formula & "And {conven.pago}=False "
A formula acima seria avaliada assim:
"{conven.nomecli}= 'José Da Silva' And {conven.pago}=False"
Bem, essa segunda fomula tem maior probabilidade de ser avaliada sem erros, bastando para isso que existam os campos citados, com os tipos de dados corretos.
formula = "{conven.nomecli}= " & txt_nom.Text And "{conven.pago}=" & False
cry_fec.ReportFileName = App.Path & "\impressão\Fechamento de contas.rpt"
cry_fec.SelectionFormula = formula
Após ser passada ao CR, você pode ter, por exemplo, a seguinte fórmula de seleção:
"{conven.nomecli}=José Da Silva {conven.pago}=Falso"
E essa fórmula vai mesmo gerar erro. Agora, veja o resultado, se a montagem fosse, por exemplo:
formula = Empty
formula = formula & "{conven.nomecli}= '" & txt_nom.Text &"' "
formula = formula & "And {conven.pago}=False "
A formula acima seria avaliada assim:
"{conven.nomecli}= 'José Da Silva' And {conven.pago}=False"
Bem, essa segunda fomula tem maior probabilidade de ser avaliada sem erros, bastando para isso que existam os campos citados, com os tipos de dados corretos.
Bem, você terá de olhar como foi montando o arquivo rpt no Crystal, pois, pelo que parece seu rpt esta apontando para um banco de dados sql...
Verifique a estrutura do RPT e veja como o mesmo foi montado.
Verifique a estrutura do RPT e veja como o mesmo foi montado.
Tópico encerrado , respostas não são mais permitidas