Consulta SQL Access

9 respostas
R
Segue o código abaixo a consulta não retorna num banco access, no banco ela está como data/hora, formato data abreviada mas faço a consulta e não retorna nada;

Date data1 = new Date();

Date data2 = new Date();

String sdata = new String();

SimpleDateFormat df = new SimpleDateFormat(dd/MM/yyyy);

try{

sdata = df.format(data1);

}catch(Exception e){

System.out.println(Erro na hora de converter data);

}

query = (SELECT NomedoProduto, QtdTransferida, Data, Relatorio, Motivo, Local, Txtpartnumberentrada FROM entradadeprodutoqtd WHERE Datavenc < "  + sdata+ “”);//ORDER BY TxtMotivo” +

Já tentei também < ’ "  + sdata+ " ’ " mas da erro por que não é uma string;

Se alguém poder me ajudar valeu.

9 Respostas

T

No Access, é preciso dispor as datas entre dois caracteres “#”.
Abraços

R

Coloquei a data como vc pediu mas não funcionou
query = (“SELECT NomedoProduto, QtdTransferida, Data, Relatorio, Motivo, Local, Txtpartnumberentrada FROM entradadeprodutoqtd WHERE Datavenc = #” + sdata + “#”);//ORDER BY TxtMotivo" +

Se poder me ajudar fico grato
Valeu

T

Não tenho certeza porque faz tempo que não mexo com Access, mas além de colocar a data entre caracteres “#”, tente aplicar o formato americano nela:

WHERE data = #mm/dd/aaaa#

Abraços

R

Valeu colega funcionou muito Obrigado pela Ajuda.

S

Olá, aproveitando o post, estou com dúvidas de como formatar data…

No B.D Access as datas estavam tudo tipo texto…
e na aplicação eu estou usando o
JFormattesTextFiel o qual eu usava nas propriedades==> código ==> codigos de pré descrição:

try
{
    formatoDataCad = new MaskFormatter("##/##/####");
}
catch(Exception erro)
{
    JOptionPane.showMessageDialog(null,"Não foi possível setar a masca da data de cadastro, erro = " + erro);    
}

criação de codigo personalizado:

new JFormattedTextField(formatoDataCad);

quando peço um novo registro ele já deixa “automatico” a data atual, para o usuario não precisar digitar:

Date data = new Date();
        String dia = "0" + data.getDate();
        String mes = "0"+ String.valueOf(data.getMonth()+1);
        String ano = ""+(1900+data.getYear());        
        if (Integer.parseInt(mes)<=9)   
        tf_data_cad.setText(dia+mes+ano);

Então tudo funcionava bem, mas surgiu a necessidade de estar arrumando o B.D, o qual mudei o tipo para Data/Hora…

ai não funcionou a aplicaçãozinha que fiz, ja não me mostrava mais as datas…
tirei a mascara do JFormattedField, ele passou a mostrar as datas, mas com uns 00:00:00 na frente…
tentei tudo que pude… mas como sou leiga tenho muita dificuldade.

Ja faz um tempo que estou tentando resolver…
agradeço desde já!

R

Retire as aspas na hora de cadastrar por que não será mais uma stribg;

S

Então esse # é da mascara, se eu tirar eles o que coloco no lugar para continuar usando a mascara?
ou não necessito de mascara???

Nos campos de data não esta aceitando mascara… por que??? outros campos como cpf, rg … aceita perfeitamente…

É que eu tive que arrumar meu B.D e imagino que seja porque lá está tipo Date, como faço para comunicar os dois, me entende?

eu tirei a mascara de um campo de data funcionou mas fica assim: 980-05-05 00:00:00
no campo que tem a mascara nem aparece nada…

Eu tenho que criar uma classe para validade as datas? pois se digitar um 30/02/2008 capaz que aceite…

R
Colocar uma data dentro de um Jformattedt

Date data1 = new Date();

String sdata = new String();

SimpleDateFormat df = new SimpleDateFormat(dd/MM/yyyy);

try{

sdata = df.format(data1);

}catch(Exception e){

System.out.println(Erro na hora de converter data);

}
Txtdata = new JFormattedTextField(sdata);		
	Txtdata.setBackground(new Color(204, 204, 204));
	Txtdata.setBounds(new Rectangle(24, 8, 84, 21));
	//Não deixa receber o foco		 
	Txtdata.setRequestFocusEnabled(false);
	fieldsPanel.add(Txtdata );

Esse vc utiliza para fazer uma seleção de dados no banco com a data atual.

Date data1 = new Date();
			String sdata = new String();
SimpleDateFormat df = new  SimpleDateFormat("yyyy/MM/dd");
			try {
				sdata = df.format(data1);
			} catch (Exception i) {
		System.out.println("Erro na hora de converter data");
			}
			if ((e.getSource() == fields4.btSelecionar3)) {
				if (Pesquisa1 == 0){
					query = "SELECT * FROM entradadeprodutoqtd WHERE Datavenc < #" + sdata + "# ORDER BY Txtpartnumberentrada";}
S

Olá Obrigada pela dica ricardocaoj , estou tendando implementar seu código de acordo com que eu tenho … sou leiga ainda

Outra dúvida essas linhas :

o “e” e o “fields4” no meu caso o que seria???

e esse codigo eu coloco dentro do botão salvar???

<blockquote>

Colocar uma data dentro de um Jformattedt

Date data1 = new Date();

String sdata = new String();

SimpleDateFormat df = new SimpleDateFormat(dd/MM/yyyy);

try{

sdata = df.format(data1);

}catch(Exception e){

System.out.println(Erro na hora de converter data);

}
Txtdata = new JFormattedTextField(sdata);

Txtdata.setBackground(new Color(204, 204, 204));

Txtdata.setBounds(new Rectangle(24, 8, 84, 21));

//Não deixa receber o foco

Txtdata.setRequestFocusEnabled(false);

fieldsPanel.add(Txtdata ); </blockquote>

Muito grata!!!

Criado 4 de maio de 2008
Ultima resposta 28 de ago. de 2008
Respostas 9
Participantes 3