COMO FAZER UM SELECT COM DATA
OLA AMIGOS...
ESTOU COM UM PROBLEMA DE COMO FAZER UM SELECT COM DATA
EU QUERO AXAR TODOS MEUS CLIENTES QUE A DATA DE VENCIMENTO SEJA MAIOR Q UM NUMERO X DE DIAS
EU JA MONTEI A SEQUINTE PROGRAMAÇÃO !
SQL = [Ô]select * from caixa where [Ô]
If cmbCliente <> [Ô][Ô] Then
rsClientes.FindFirst [Ô]razao=[ô][Ô] & Trim(cmbCliente) & [Ô][ô][Ô]
If Not rsClientes.NoMatch Then
SQL = SQL & [Ô]codcli =[Ô] & rsClientes!CODIGO
End If
End If
If IsNumeric(dia) Then
[ô] SQL = SQL & [Ô]=[ô][Ô] & dia & [Ô][ô] and [Ô]
[ô] ALI EI PRECIZO COLOCAR O RESTANTE DO SQL PARA AXAR TODOS VENCIMENTOS MAIOR QUE 20 DIAS !!
End If
NAO SEI SE FUI BEM CLARO ....
MAIS ESPERO AJUDA !
VLW GALERA
ESTOU COM UM PROBLEMA DE COMO FAZER UM SELECT COM DATA
EU QUERO AXAR TODOS MEUS CLIENTES QUE A DATA DE VENCIMENTO SEJA MAIOR Q UM NUMERO X DE DIAS
EU JA MONTEI A SEQUINTE PROGRAMAÇÃO !
SQL = [Ô]select * from caixa where [Ô]
If cmbCliente <> [Ô][Ô] Then
rsClientes.FindFirst [Ô]razao=[ô][Ô] & Trim(cmbCliente) & [Ô][ô][Ô]
If Not rsClientes.NoMatch Then
SQL = SQL & [Ô]codcli =[Ô] & rsClientes!CODIGO
End If
End If
If IsNumeric(dia) Then
[ô] SQL = SQL & [Ô]=[ô][Ô] & dia & [Ô][ô] and [Ô]
[ô] ALI EI PRECIZO COLOCAR O RESTANTE DO SQL PARA AXAR TODOS VENCIMENTOS MAIOR QUE 20 DIAS !!
End If
NAO SEI SE FUI BEM CLARO ....
MAIS ESPERO AJUDA !
VLW GALERA
bla bla bla ...
Como é comando SQL talvez tenha que utilizar um format para mandar a strSQL corretamente, outro detalhe que dependendo do seu Banco precisa mandar delimitadores de data, Access é o famoso sustenido # 2009-01-01 # , SQL e Oracle é o mesmo da string ... aspas simples [ô]2009-01-01[ô]
O exemplo está para Access.
Realmente espero que esteja utilizando os tipos corretos tanto na base quanto no VB, pois é falha grave armazenar e processar strings no lugar de datas ... tipo data possue funções nativas como DATEADD que acrescenta a paramDT_INI (variável tipo data) , 20, dias se vc jogar uma string no lugar de paramDT_INI pode ter problemas de conversões e a função pode falhar...
Vc acrescentou 20 dias pq o parametro [Ô]d[Ô] foi informado, s = segundos e tem parametro para cada unidade que desejar.
Outro detalhe é que fica pior ainda se guarda string no banco, ae a porcaria do Between (entre) também se perde comparando string.
Os tipos de dados nunca foram um delÃrio de programadores malucos que desenvolveram as linguagens de programação, se vc utiliza o tipo correto todas as ferramentas oferecem funções próprias o que diminui drasticamente os erros em programas.
SQL = SQL & [Ô] AND dia BETWEEN #[Ô] & cstr(paramDT_INI) & [Ô]# AND #[Ô] & cstr(DATEADD(paramDT_INI,20,d)) & [Ô]#[Ô]
Como é comando SQL talvez tenha que utilizar um format para mandar a strSQL corretamente, outro detalhe que dependendo do seu Banco precisa mandar delimitadores de data, Access é o famoso sustenido # 2009-01-01 # , SQL e Oracle é o mesmo da string ... aspas simples [ô]2009-01-01[ô]
O exemplo está para Access.
Realmente espero que esteja utilizando os tipos corretos tanto na base quanto no VB, pois é falha grave armazenar e processar strings no lugar de datas ... tipo data possue funções nativas como DATEADD que acrescenta a paramDT_INI (variável tipo data) , 20, dias se vc jogar uma string no lugar de paramDT_INI pode ter problemas de conversões e a função pode falhar...
Vc acrescentou 20 dias pq o parametro [Ô]d[Ô] foi informado, s = segundos e tem parametro para cada unidade que desejar.
Outro detalhe é que fica pior ainda se guarda string no banco, ae a porcaria do Between (entre) também se perde comparando string.
Os tipos de dados nunca foram um delÃrio de programadores malucos que desenvolveram as linguagens de programação, se vc utiliza o tipo correto todas as ferramentas oferecem funções próprias o que diminui drasticamente os erros em programas.
esse trecho tá esquisito:
If cmbCliente <> [Ô][Ô] Then
rsClientes.FindFirst [Ô]razao=[ô][Ô] & Trim(cmbCliente) & [Ô][ô][Ô]
If Not rsClientes.NoMatch Then
SQL = SQL & [Ô]codcli =[Ô] & rsClientes!CODIGO
End If
End If
vc tá se baseando no nome do cliente. se tiverem dois com o mesmo nome? se o seu sistema é para pequenos comércios, vai dá uma problema danado, pois os usuários em muitos casos não cadastram o nome completo dos clientes. cansei de pegar banco de dados com josés e joãos da silva.
If cmbCliente <> [Ô][Ô] Then
rsClientes.FindFirst [Ô]razao=[ô][Ô] & Trim(cmbCliente) & [Ô][ô][Ô]
If Not rsClientes.NoMatch Then
SQL = SQL & [Ô]codcli =[Ô] & rsClientes!CODIGO
End If
End If
vc tá se baseando no nome do cliente. se tiverem dois com o mesmo nome? se o seu sistema é para pequenos comércios, vai dá uma problema danado, pois os usuários em muitos casos não cadastram o nome completo dos clientes. cansei de pegar banco de dados com josés e joãos da silva.
Tópico encerrado , respostas não são mais permitidas