Leandro_Pirozzi Postado Fevereiro 19, 2009 Denunciar Share Postado Fevereiro 19, 2009 (editado) Porque não executa o que eu pedi?!?!não esconde datagrid e tb não altera o lblfeliz.caption.Function Exibiraniver() Dim SQL As String Dim Data As Date Data = Date Set cnaniver = New ADODB.Connection With cnaniver .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=F:\Advanced\CONTATOS.mdb" .Open End With Set rsaniver = New ADODB.Recordset Set rsaniver.ActiveConnection = cnaniver rsaniver.CursorLocation = adUseClient SQL = "Select CODEMP, NOMEMPRESA, NOMCONT, ANIVERSARIO, CARGOCONT, EMAILCONT, TELCONT " & _ "FROM CONTATOS_CONTATO Where ANIVERSARIO = Date() " rsaniver.Open SQL Set Me.DataGrid4.DataSource = rsaniver If Data <> Date Then DataGrid4.Visible = False lblfeliz.Caption = "SEM ANIVERSARIANTES!" else DataGrid4.Visible = True lblfeliz.Caption = "FELIZ ANIVERSÁRIO!" End If End Function Editado Fevereiro 19, 2009 por Leandro_Pirozzi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Fevereiro 19, 2009 Denunciar Share Postado Fevereiro 19, 2009 veja na parte de cima do seu codigo"Data = Date"ou seja data é igual ao date, o que exatamente você quer validar no IF?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 19, 2009 Autor Denunciar Share Postado Fevereiro 19, 2009 então O QUE EU QUERO É O SEGUINTE.QUANDO A DATA FOR IGUAL AO DATE ELE EXIBE O GRID COM OS ANIVERSARIANTES DA DATA, SENAO ELE NEM EXIBE O DATAGRID E A MENSAGEM NO LBLFELIZ.CAPTION.ENTENDEU?OBRIGADO! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Fevereiro 20, 2009 Denunciar Share Postado Fevereiro 20, 2009 cara ele não está exibindo é isso??manda ele printar o valor de data, antes do if, para você ver.. se estiver com o valor de data e não com o valor "date", pode ser conversão no banco do access... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 20, 2009 Autor Denunciar Share Postado Fevereiro 20, 2009 (editado) ele exibe o problema que não muda o caption do label e nem esconde o datagrid quando data não for date.mandei printar e o Data tá assim:?Data00:00:00 Editado Fevereiro 20, 2009 por Leandro_Pirozzi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Fevereiro 20, 2009 Denunciar Share Postado Fevereiro 20, 2009 então cara como eu havia falado com você antes..você está passando o valor de Date para Data no inicio da função...ou seja quando você comparar o valor date, como o valor data( que na verdade é date) ele sempre será igual a date...pelo que entendi, não sei qual evento chama essa function, mas só vai passar uma vez, ela não está em loop ou seja, vai passar uma vez, data vai receber date e vai ficar como true...uma outra observação, acho que você quer comparar data com a data atual mas não a hora e sim com o dia então acho que seu date seria:"data = format(now(),"dd/mm/YY") Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 26, 2009 Autor Denunciar Share Postado Fevereiro 26, 2009 como eu poderia fazer ele ser "false" tb? Para quando for false ele mudar o caption para "Sem aniversariantes".Vlwwww Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Fevereiro 26, 2009 Denunciar Share Postado Fevereiro 26, 2009 acho que a data tem que vir do Select que você faz, correto, você seleciona os nomes cadastrados e compara a data que está no banco com a data de hoje, ai sim você terá a chance de ter as duas opções no seu IF Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 26, 2009 Autor Denunciar Share Postado Fevereiro 26, 2009 como assim os nomes cadastrados? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Fevereiro 26, 2009 Denunciar Share Postado Fevereiro 26, 2009 o teu select busca o que?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 26, 2009 Autor Denunciar Share Postado Fevereiro 26, 2009 Seria isso??If rsaniver!ANIVERSARIO = Date Then DataGrid4.Visible = True lblfeliz.Caption = "FELIZ ANIVERSÁRIO!"else DataGrid4.Visible = False lblfeliz.Caption = "SEM ANIVERSARIANTES!"End If Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 26, 2009 Autor Denunciar Share Postado Fevereiro 26, 2009 O select retorna isso.Select CODEMP, NOMEMPRESA, NOMCONT, ANIVERSARIO, CARGOCONT, EMAILCONT, TELCONT " & _"FROM CONTATOS_CONTATO Where ANIVERSARIO = Date() Onde ANIVERSARIO é a data que esta cadastrada no banco. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Fevereiro 26, 2009 Denunciar Share Postado Fevereiro 26, 2009 no select você continua filtrando a data atual com o "Where ANIVERSARIO = date()", como é feita a pesquisa, através de um nome ou algo parecido??pois se for feita apenas pela data, ela vai continua sendo sempre True Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 26, 2009 Autor Denunciar Share Postado Fevereiro 26, 2009 então o select é isso mesmo ele vai exibir os aniversariantes do dia.por isso aniversario = date().ai ele vai me trazer o nome, codigo da empresa do aniversariante, cargo, email, telefone.sendo assim não tem como? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Fevereiro 26, 2009 Denunciar Share Postado Fevereiro 26, 2009 se na sua pesquisa já está filtrando todos os aniversariantes o que você quer e se não tenha resultado sua pesquisa, ele mostre a mensagem "Sem Aniversariantes"o seu if será outro será se o recordset é maior que 0.caso não haja aniversariante ele modifica o label Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 26, 2009 Autor Denunciar Share Postado Fevereiro 26, 2009 Modifiquei o If para recordset maior q 0.ai exibiu:Run-time error '3021':BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.Tem idéia do q possa ser? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Fevereiro 26, 2009 Denunciar Share Postado Fevereiro 26, 2009 como você fez o if? pois ele está avisando que tem itens no Recordset. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 26, 2009 Autor Denunciar Share Postado Fevereiro 26, 2009 Ficou assim. If rsaniver!ANIVERSARIO < 0 Then DataGrid4.Visible = False lblfeliz.Caption = "SEM ANIVERSARIANTES!" Else DataGrid4.Visible = True lblfeliz.Caption = "FELIZ ANIVERSÁRIO!" End If Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Fevereiro 26, 2009 Denunciar Share Postado Fevereiro 26, 2009 então tente o seguinte teste...If rsaniver.count < 0 Then DataGrid4.Visible = False lblfeliz.Caption = "SEM ANIVERSARIANTES!" Else DataGrid4.Visible = True lblfeliz.Caption = "FELIZ ANIVERSÁRIO!" End If Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 26, 2009 Autor Denunciar Share Postado Fevereiro 26, 2009 (editado) Dá o seguinte erro.If rsaniver.count < 0 ThenDataGrid4.Visible = Falselblfeliz.Caption = "SEM ANIVERSARIANTES!"ElseDataGrid4.Visible = Truelblfeliz.Caption = "FELIZ ANIVERSÁRIO!"End IfCompile error:Method or data member not found Editado Fevereiro 26, 2009 por Leandro_Pirozzi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Fevereiro 26, 2009 Denunciar Share Postado Fevereiro 26, 2009 quando você coloca o . (ponto) ele abre uma janela para mexer nas propriedades... existe a propriedade "count" existe( sinceramente não lembro e não estou com o VB aqui). caso sim, coloque esse valor em uma variável e depois compare a variável ao invés de comparar o valor direto Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 26, 2009 Autor Denunciar Share Postado Fevereiro 26, 2009 não existe count não. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Fevereiro 26, 2009 Denunciar Share Postado Fevereiro 26, 2009 cara então verifica a propriedade RecordCount, esta deve ter e é com ela que você vai fazer o IF Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 26, 2009 Autor Denunciar Share Postado Fevereiro 26, 2009 tem o recordcount sim, porém não exibe os dados no grid. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Fevereiro 26, 2009 Denunciar Share Postado Fevereiro 26, 2009 coloque aqui como você fez?, não é para tirar a parte do de preencher o grid não Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leandro_Pirozzi Postado Fevereiro 26, 2009 Autor Denunciar Share Postado Fevereiro 26, 2009 (editado) Function Exibiraniver() Dim SQL As String Dim Data As Date Set cnaniver = New ADODB.Connection With cnaniver .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & App.Path & "\CONTATOS.mdb;" .Open End With Set rsaniver = New ADODB.Recordset Set rsaniver.ActiveConnection = cnaniver rsaniver.CursorLocation = adUseClient SQL = "Select CODEMP, NOMEMPRESA, NOMCONT, ANIVERSARIO, CARGOCONT, EMAILCONT, TELCONT " & _ "FROM CONTATOS_CONTATO Where ANIVERSARIO = Date() " Set Me.DataGrid4.DataSource = rsaniver rsaniver.Open SQL If rsaniver.RecordCount < 0 Then DataGrid4.Visible = False lblfeliz.Caption = "SEM ANIVERSARIANTES!" Else DataGrid4.Visible = True lblfeliz.Caption = "FELIZ ANIVERSÁRIO!" End If End Function Editado Fevereiro 26, 2009 por kuroi Adicionar tag CODE Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Leandro_Pirozzi
Porque não executa o que eu pedi?!?!
não esconde datagrid e tb não altera o lblfeliz.caption.
Function Exibiraniver()
Dim SQL As String
Dim Data As Date
Data = Date
Set cnaniver = New ADODB.Connection
With cnaniver
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=F:\Advanced\CONTATOS.mdb"
.Open
End With
Set rsaniver = New ADODB.Recordset
Set rsaniver.ActiveConnection = cnaniver
rsaniver.CursorLocation = adUseClient
SQL = "Select CODEMP, NOMEMPRESA, NOMCONT, ANIVERSARIO, CARGOCONT, EMAILCONT, TELCONT " & _
"FROM CONTATOS_CONTATO Where ANIVERSARIO = Date() "
rsaniver.Open SQL
Set Me.DataGrid4.DataSource = rsaniver
If Data <> Date Then
DataGrid4.Visible = False
lblfeliz.Caption = "SEM ANIVERSARIANTES!"
else
DataGrid4.Visible = True
lblfeliz.Caption = "FELIZ ANIVERSÁRIO!"
End If
End Function
Editado por Leandro_PirozziLink para o comentário
Compartilhar em outros sites
34 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.