PreparedStatement em banco de dados access

fala ai galera blz… to precisando de uma ajudinha aqui… fiz uma aplicaçao em java, só q precisei fazer a conexão com um banco access de um outro sistema q tenho aqui… mas não estou conseguindo fazer alterações no banco… n]ao sei c access aceita preparedStatement… será q alguem pode me dar uma luz… vou postar minhas classes aqui… desde já agradeço…

public void update(Object obj) throws IOException {
        if(obj instanceof negocio.Cliente){
            negocio.Cliente cliente = (negocio.Cliente)obj;
            
            File file = new File("c:/Arquivos de programas/Satrac_Oficina/dist/lib/sql.properties");
            Properties properties = new Properties();
            FileInputStream fis = null;
            PreparedStatement stmt = null;
            
            ConectarAccess conn = new ConectarAccess();
            try {
                connection = conn.getConnection();
                
                fis = new FileInputStream(file);
                properties.load(fis);
                fis.close();
                System.out.println(" chegou aqui" + cliente.getCodigo());
                stmt = connection.prepareStatement(properties.getProperty("UPDATE_CLIENTE"));
                stmt.setString(1, "'" + cliente.getNome() + "'");
                stmt.setString(2, cliente.getObs());
                stmt.setString(3, cliente.getndereco().getRua());
                stmt.setString(4, cliente.getndereco().getBairro());
                stmt.setString(5, cliente.getndereco().getCep());
                stmt.setString(6, cliente.getndereco().getCidade());
                stmt.setString(7, cliente.getndereco().getEstado());
                stmt.setString(8, cliente.getTelefone());
                stmt.setString(9, cliente.getFax());
                stmt.setString(10, cliente.getContato());
                stmt.setString(11, cliente.getCnpj());
                stmt.setString(12, cliente.getInscricao());
                stmt.setString(13, cliente.getEmail());
                stmt.setString(14, cliente.getSite());
                stmt.setInt(15, cliente.getCodigo());
                System.out.println(" chegou");
                stmt.executeUpdate();
                 System.out.println(" passou");
            }catch (SQLException ex) {
                throw new IOException("UPDATE_CLIENTE: " + ex);
            } catch (Exception ex) {
                ex.printStackTrace();}
        }
}

minha classe de conexão:

[code]public class ConectarAccess {

/** Creates a new instance of ConectarAccess */
public ConectarAccess() {
}

static Connection theConn = null;

public static Connection getConnection() throws Exception {
    Driver d = (Driver)Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
    Connection c = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:/teste/satrac.mdb");
    return c;
}

}
[/code]

Aceitar ele aceita, mas lembro que algumas versões antigas tinham alguns bugs com os métodos setXXX().

Cola aí a stack trace, e qual o driver você está utilizando?

a sim . esqueci de postar o erro…

java.io.IOException: java.io.IOException: negocio.cliente.alterarCliente: java.io.IOException: UPDATE_CLIENTE: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Valor de argumento inválido

O erro provavelmente é nos parâmetros que você está passando. Reveja tudo que está sendo passado para os métodos setXXX

mais então… pq no banoc access ta assim… os campos estão configurados como… numero, memorando e texto;; no numero eu passo o parametro pelo setInt e o memorando e o texto eu passo pelo setString… será q tenho q passar outro tipo??? e c tive qual é??