USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Access
weslei
não registrado
Postada em 03/01/2005 14:14 hs   
Korn
Qual código vc esta colocando
Tanto para o relatório quanto para consulta
 
Weslei
Meu e mail é
wsl_oliveira@hotmail.com
     
Korn
Pontos: 2843
SAO PAULO
SP - BRASIL
Postada em 03/01/2005 15:48 hs            

o codigo sql no accss é esse , eo relatorio é la mesmo no access, so faço uma instrucao no botao no vb para puxar esse codigo, so que nao esta fazendo de uma forma mais direta e eficiente esses codigos sao bons mas tenho que programar para pessoas que nao entenden nada de computador , entao tem q ser de uma forma mais facil ta ligado

SELECT *

FROM Tbl_Casas

WHERE codigo Between CodMin And CodMax And codigo Not Between CodNotMin And CodNotMax OR codigo = cod OR codigo = cod2;


Jesus Cristo é O Senhor!!!
     
Korn
Pontos: 2843
SAO PAULO
SP - BRASIL
Postada em 07/01/2005 14:44 hs            
mais alguam sugestao

Jesus Cristo é O Senhor!!!
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 18/01/2005 15:02 hs            
Olá Korn, tudo bem? Desculpe a demora é q tava dificíl mas acho q cheguei numa solução razoável para o seu problema... tomara q consiga fazer o q vc quer...
 
O q eu fiz foi fazer um código q monta um filtro para q o relatório no access q vc montou abra já filtrado, digamos assim. A idéia é baseada na escolha de páginas q temos no word ou no adobe... Vc faz assim para imprimir: 1;4;10-16;20;22;25-30;33
certo? Se vc quer imprimir as páginas 1, 4, da 10 a 16, 20, 22, 25 a 30 e 33 vc coloca essa expressão:1;4;10-16;20;22;25-30;33 certo?
Bom segue o código q faz este filtro e q inclusive abre o seu relatório no access
 
Text1 é uma texbox
Consideremos Text1 como passagem dos parâmetros ok? Como vc digitasse 1;4;10-16;20;22;25-30;33 dentro desta caixa de texto
************************************************************
'Declaração das variáveis
Dim i As Integer, j As Integer, intSQL As Integer
Dim s As String, strSQL As String, strCampo As String
Dim s2() As String, strParteSQL() As String
Dim ObjectAccess As Object
 
'Este código vc coloca num botão por exemplo
 
 
Text1 = Trim(Text1)
If Text1 = "" Then Exit Sub
For i = 1 To Len(Text1)
If Mid(Text1, i, 1) < Chr(48) Or Mid(Text1, i, 1) > Chr(57) Then
 If Mid(Text1, i, 1) <> ";" And Mid(Text1, i, 1) <> "-" Or _
 Right(Text1, 1) = ";" Or Right(Text1, 1) = "-" Then
  MsgBox "Existem caracteres inválidos", vbCritical, "Erro no filtro"
  Exit Sub
 End If
End If
Next
 
For i = 1 To Len(Text1)
 If Mid(Text1, i, 1) = ";" Then j = j + 1
Next
ReDim s2(j) As String
j = 0
For i = Len(Text1) To 1 Step -1
 If Mid(Text1, i, 1) <> ";" Then
  s = Mid(Text1, i, 1) & s
  If i - 1 = 0 Then s2(j) = s
 Else
  s2(j) = s
  s = ""
  j = j + 1
 End If
Next
For i = 0 To j 'Conta a qtde de intervalos existentes na expressão, exemplo de intervalo: 6-8
If InStr(s2(i), "-") > 0 Then intSQL = intSQL + 1
Next
ReDim strParteSQL(intSQL - 1) As String
intSQL = 0
For i = 0 To j 'Monta a sentença BETWEEN
If InStr(s2(i), "-") > 0 Then
 strParteSQL(intSQL) = " BETWEEN " & Left(s2(i), InStr(s2(i), "-") - 1) & _
 " AND " & Right(s2(i), InStr(StrReverse(s2(i)), "-") - 1)
 intSQL = intSQL + 1
End If
Next
intSQL = intSQL - 1
campo = InputBox("Digite o nome do campo a ser filtrado", "Filtro")
strSQL = campo & " "
For i = 0 To intSQL 'Formação dos BETWEEN'S
  If i = intSQL Then strSQL = strSQL & strParteSQL(i)
  If i < intSQL Then strSQL = strSQL & strParteSQL(i) & " OR " & campo & " "
Next
For i = 0 To j 'Formação dos campos avulsos: campo = numero
If InStr(s2(i), "-") = 0 Then
  strSQL = strSQL & " OR " & campo & " = " & s2(i)
End If
Next
 
'abrindo o relatório
 
 Set ObjectAccess = CreateObject("access.application")
  With ObjectAccess
    .opencurrentdatabase filepath:="c:caminho_do_banco.mdb"  'caminho do banco
    .Visible = True
    .DoCmd.OpenReport "NomedoRelaorio", acViewPreview, , strSQL, acWindowNormal
    .Closecurrentdatabase
  End With
Set ObjectAccess = Nothing
************************************************************
 
Vc pode fazer uma expressão de filtro de até 32.768 caracteres se eu não me engano... acho q dá né? Emoções
 
O único problema é q mesmo eu pedindo para abrir o relatório em modo de visualização ele já está imprimindo... mas o filtro está funcionando!! Menos mal né?
 
Ah, no access coloque como origem do registro a tabela dos dados q serão filtrados ok??
 
qq problema é só postar
 
t+
TÓPICO EDITADO
   
Korn
Pontos: 2843
SAO PAULO
SP - BRASIL
Postada em 18/01/2005 16:27 hs            
Ta ok, vo tenta , obrigado por persistir comigo nesse assunto

Jesus Cristo é O Senhor!!!
     
Korn
Pontos: 2843
SAO PAULO
SP - BRASIL
Postada em 19/01/2005 10:46 hs            
deu erro no "Right", sabe oq é?

Jesus Cristo é O Senhor!!!
     
Página(s): 6/12     « ANTERIOR    PRÓXIMA »

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página