Java - Necesito conectar un programita a access

 
Vista:

Necesito conectar un programita a access

Publicado por Lex (8 intervenciones) el 06/10/2005 19:14:31
necesito guardar los datos del formulario que crea el siguiente codigo en access
en una base de datos.
Me sirve alo menos un solo dato guardado.
Muchas gracias

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

import java.net.*;
import java.sql.*;
import java.io.*;
import java.util.*;


class Controles extends JFrame
{
JLabel lbltitulo,lblnombre,lblapellido,lbledad,lblsexo,lbltelefono,lbldireccion,lbldepartamento;
JLabel lblciudad,lblocupacion;
JTextField txtnombre,txtapellido,txttelefono,txtdireccion;
JComboBox cmbsexo,cmbciudad,cmbdepartamento,cmbedad,cmbocupacion;
JRadioButton rdbcheque,rdbtarjeta,rdbefectivo;
ButtonGroup pagos;
JButton cmdaceptar,cmdlimpiar,cmdsalir;

static Connection canal= null;//el driver ODBC y JDBC de microsoft y de sun respectivamente
static ResultSet clientes=null;//carga la tabla de la base de datos llamada clientes y toda la informacion relacionada con ella
static Statement instruccion=null;//contiene el codigo sql que se usara para comunicarse entre access y java


public Controles()
{
lbltitulo = new JLabel("::::::::::REGISTRO DE CLIENTES::::::::");
lbltitulo.reshape(200,10,200,100);
getContentPane().add(lbltitulo);

lblnombre=new JLabel("Nombre:");
lblnombre.reshape(100,100,70,30);
getContentPane().add(lblnombre);

lblapellido=new JLabel("Apellidos");
lblapellido.reshape(100,150,70,30);
getContentPane().add(lblapellido);

lbledad=new JLabel("Edad:");
lbledad.reshape(100,200,70,30);
getContentPane().add(lbledad);

lblsexo=new JLabel("Sexo:");
lblsexo.reshape(100,250,70,30);
getContentPane().add(lblsexo);

lbltelefono=new JLabel("Telefono:");
lbltelefono.reshape(100,300,70,30);
getContentPane().add(lbltelefono);

lbldireccion=new JLabel("Direccion:");
lbldireccion.reshape(100,350,70,30);
getContentPane().add(lbldireccion);

lbldepartamento=new JLabel("Departamento:");
lbldepartamento.reshape(100,400,100,30);
getContentPane().add(lbldepartamento);

lblciudad=new JLabel("Ciudad:");
lblciudad.reshape(100,450,70,30);
getContentPane().add(lblciudad);

lblocupacion=new JLabel("Ocupacion");
lblocupacion.reshape(100,500,70,30);
getContentPane().add(lblocupacion);

txtnombre =new JTextField("");
txtnombre.reshape(300,100,100,30);
getContentPane().add(txtnombre);

txtapellido= new JTextField("");
txtapellido.reshape(300,150,100,30);
getContentPane().add(txtapellido);

txtdireccion=new JTextField("");
txtdireccion.reshape(300,350,100,30);
getContentPane().add(txtdireccion);

txttelefono=new JTextField("");
txttelefono.reshape(300,300,100,30);
getContentPane().add(txttelefono);

cmbsexo=new JComboBox();
cmbsexo.addItem("masculino");
cmbsexo.addItem("femenino");
cmbsexo.reshape(300,250,100,30);
getContentPane().add(cmbsexo);

cmbciudad =new JComboBox();
cmbciudad.addItem("Medellin");
cmbciudad.addItem("Bogota");
cmbciudad.addItem("Cali");
cmbciudad.addItem("Barranquilla");
cmbciudad.addItem("Cartagena");
cmbciudad.addItem("Manizales");
cmbciudad.addItem("Pereira");
cmbciudad.reshape(300,450,100,30);
getContentPane().add(cmbciudad);

cmbedad=new JComboBox();
cmbedad.addItem("entre 18-25");
cmbedad.addItem("entre 25-35");
cmbedad.addItem("de 35 en adelante");
cmbedad.reshape(300,200,100,30);
getContentPane().add(cmbedad);

cmbdepartamento = new JComboBox();
cmbdepartamento.addItem("Antioquia");
cmbdepartamento.addItem("Cundinamarca");
cmbdepartamento.addItem("Valle del Cauca");
cmbdepartamento.addItem("Atlantico");
cmbdepartamento.addItem("Bolivar");
cmbdepartamento.addItem("Caldas");
cmbdepartamento.addItem("Risaralda");
cmbdepartamento.reshape(300,400,100,30);
getContentPane().add(cmbdepartamento);

cmbocupacion= new JComboBox();
cmbocupacion.addItem("Vago");
cmbocupacion.addItem("Profesor");
cmbocupacion.addItem("Estudiante");
cmbocupacion.reshape(300,500,100,30);
getContentPane().add(cmbocupacion);

pagos=new ButtonGroup();
rdbcheque=new JRadioButton("Cheque",false);
rdbtarjeta=new JRadioButton("Tarjeta",false);
rdbefectivo=new JRadioButton("Efectivo",false);
pagos.add(rdbcheque);
pagos.add(rdbefectivo);
pagos.add(rdbtarjeta);
getContentPane().add(rdbcheque);
getContentPane().add(rdbtarjeta);
getContentPane().add(rdbefectivo);

cmdaceptar=new JButton("Aceptar");
cmdaceptar.reshape(500,100,100,30);
getContentPane().add(cmdaceptar);

cmdlimpiar=new JButton("Limpiar");
cmdlimpiar.reshape(500,120,100,30);
getContentPane().add(cmdlimpiar);

cmdsalir=new JButton("Salir");
cmdsalir.reshape(500,140,100,30);
getContentPane().add(cmdlimpiar);

getContentPane().setLayout(null);
setTitle("CLIENTES");
setSize(800,600);

cmdsalir.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});

cmdlimpiar.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
txtnombre.setText("");
txtapellido.setText("");
txtdireccion.setText("");
txtnombre.requestFocus();
}
});

cmdaceptar.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

JOptionPane.showMessageDialog(null,"desea guardar los datos ingresados?","Guardar",JOptionPane.INFORMATION_MESSAGE);



}
});

}

public static void main (String args[])
{
new Controles().show();





}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Necesito conectar un programita a access

Publicado por Yamil Bracho (2315 intervenciones) el 06/10/2005 19:21:56
1) Creas un DSN usando el Panel de control de Windows
2) En el main de tu programa haces :
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
3) Para abrir la conexion a tu bd haces :
Connection con = DriverManager.getConnection("jdbc:odbc:TuDSN","Admin", "")
4) Creas el statement
Statement stmt = con.createStatement()
5) Ejecutas el INSERT
String sql = "INSERT INTO TuTabla( campo1, campo2, ...,campoN) VALUES( valor1, valor2,...,valorN)"
stmt.executeUpdate( sql );
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No se endonde colocar cada cosa

Publicado por lex (8 intervenciones) el 07/10/2005 18:26:19
De nuevo te agradezco la ayuda
No me funciono.
El paso 1 y 2 listos pero no se donde colocar lo demas
paso 3 y paso 4 las instrucciones las coloque en el main;

paso 5
La ejecucion del insert la coloque en el ActionListener y me saca un error: falta un ;

Asi quedo ahora....

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

import java.net.*;
import java.sql.*;
import java.io.*;
import java.util.*;


class Controles extends JFrame
{
JLabel lbltitulo,lblnombre,lblapellido,lbledad,lblsexo,lbltelefono,lbldireccion,lbldepartamento;
JLabel lblciudad,lblocupacion;
JTextField txtnombre,txtapellido,txttelefono,txtdireccion;
JComboBox cmbsexo,cmbciudad,cmbdepartamento,cmbedad,cmbocupacion;
JRadioButton rdbcheque,rdbtarjeta,rdbefectivo;
ButtonGroup pagos;
JButton cmdaceptar,cmdlimpiar,cmdsalir;

static Connection canal= null;//el driver ODBC y JDBC de microsoft y de sun respectivamente
static ResultSet clientes=null;//carga la tabla de la base de datos llamada clientes y toda la informacion relacionada con ella
static Statement instruccion=null;//contiene el codigo sql que se usara para comunicarse entre access y java




public Controles()
{
lbltitulo = new JLabel("::::::::::REGISTRO DE CLIENTES::::::::");
lbltitulo.reshape(200,10,200,100);
getContentPane().add(lbltitulo);

lblnombre=new JLabel("Nombre:");
lblnombre.reshape(100,100,70,30);
getContentPane().add(lblnombre);

lblapellido=new JLabel("Apellidos");
lblapellido.reshape(100,150,70,30);
getContentPane().add(lblapellido);

lbledad=new JLabel("Edad:");
lbledad.reshape(100,200,70,30);
getContentPane().add(lbledad);

lblsexo=new JLabel("Sexo:");
lblsexo.reshape(100,250,70,30);
getContentPane().add(lblsexo);

lbltelefono=new JLabel("Telefono:");
lbltelefono.reshape(100,300,70,30);
getContentPane().add(lbltelefono);

lbldireccion=new JLabel("Direccion:");
lbldireccion.reshape(100,350,70,30);
getContentPane().add(lbldireccion);

lbldepartamento=new JLabel("Departamento:");
lbldepartamento.reshape(100,400,100,30);
getContentPane().add(lbldepartamento);

lblciudad=new JLabel("Ciudad:");
lblciudad.reshape(100,450,70,30);
getContentPane().add(lblciudad);

lblocupacion=new JLabel("Ocupacion");
lblocupacion.reshape(100,500,70,30);
getContentPane().add(lblocupacion);

txtnombre =new JTextField("");
txtnombre.reshape(300,100,100,30);
getContentPane().add(txtnombre);

txtapellido= new JTextField("");
txtapellido.reshape(300,150,100,30);
getContentPane().add(txtapellido);

txtdireccion=new JTextField("");
txtdireccion.reshape(300,350,100,30);
getContentPane().add(txtdireccion);

txttelefono=new JTextField("");
txttelefono.reshape(300,300,100,30);
getContentPane().add(txttelefono);

cmbsexo=new JComboBox();
cmbsexo.addItem("masculino");
cmbsexo.addItem("femenino");
cmbsexo.reshape(300,250,100,30);
getContentPane().add(cmbsexo);

cmbciudad =new JComboBox();
cmbciudad.addItem("Medellin");
cmbciudad.addItem("Bogota");
cmbciudad.addItem("Cali");
cmbciudad.addItem("Barranquilla");
cmbciudad.addItem("Cartagena");
cmbciudad.addItem("Manizales");
cmbciudad.addItem("Pereira");
cmbciudad.reshape(300,450,100,30);
getContentPane().add(cmbciudad);

cmbedad=new JComboBox();
cmbedad.addItem("entre 18-25");
cmbedad.addItem("entre 25-35");
cmbedad.addItem("de 35 en adelante");
cmbedad.reshape(300,200,100,30);
getContentPane().add(cmbedad);

cmbdepartamento = new JComboBox();
cmbdepartamento.addItem("Antioquia");
cmbdepartamento.addItem("Cundinamarca");
cmbdepartamento.addItem("Valle del Cauca");
cmbdepartamento.addItem("Atlantico");
cmbdepartamento.addItem("Bolivar");
cmbdepartamento.addItem("Caldas");
cmbdepartamento.addItem("Risaralda");
cmbdepartamento.reshape(300,400,100,30);
getContentPane().add(cmbdepartamento);

cmbocupacion= new JComboBox();
cmbocupacion.addItem("Vago");
cmbocupacion.addItem("Profesor");
cmbocupacion.addItem("Estudiante");
cmbocupacion.reshape(300,500,100,30);
getContentPane().add(cmbocupacion);

pagos=new ButtonGroup();
rdbcheque=new JRadioButton("Cheque",false);
rdbtarjeta=new JRadioButton("Tarjeta",false);
rdbefectivo=new JRadioButton("Efectivo",false);
pagos.add(rdbcheque);
pagos.add(rdbefectivo);
pagos.add(rdbtarjeta);
getContentPane().add(rdbcheque);
getContentPane().add(rdbtarjeta);
getContentPane().add(rdbefectivo);

cmdaceptar=new JButton("Aceptar");
cmdaceptar.reshape(500,100,100,30);
getContentPane().add(cmdaceptar);

cmdlimpiar=new JButton("Limpiar");
cmdlimpiar.reshape(500,120,100,30);
getContentPane().add(cmdlimpiar);

cmdsalir=new JButton("Salir");
cmdsalir.reshape(500,140,100,30);
getContentPane().add(cmdlimpiar);

getContentPane().setLayout(null);
setTitle("CLIENTES");
setSize(800,600);

cmdsalir.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});

cmdlimpiar.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
txtnombre.setText("");
txtapellido.setText("");
txtdireccion.setText("");
txtnombre.requestFocus();
}
});

cmdaceptar.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

String sql = "INSERT INTO clientes(nombre,telefono,cedula)VALUES(txtapellido,txtdireccion,txttelefono)"
stmt.executeUpdate( sql );
JOptionPane.showMessageDialog(null,"desea guardar los datos ingresados?","Guardar",JOptionPane.INFORMATION_MESSAGE);





}
});

}

public static void main (String args[])
{
new Controles().show();


Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:TuDSN","","");
Statement stmt = con.createStatement();






}
}

!!Insisto, no tendras un ejemplo sencillo con la base de datos y tal
para guiarme

[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:No se endonde colocar cada cosa

Publicado por Yamil Bracho (2315 intervenciones) el 08/10/2005 03:36:18
Solo debes hacer lo siguiente :

cmdaceptar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Connection con = DriverManager.getConnection("jdbc:odbc:TuDSN","","");
Statement stmt = con.createStatement();

String sql = "INSERT INTO clientes(nombre,telefono,cedula)VALUES(txtapellido,txtdireccion,txttelefono)"
stmt.executeUpdate( sql );
conn.close()
});

}

y Colocar el Class.forName asi

public static void main (String args[]) {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
new Controles().show();
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No se endonde colocar cada cosa

Publicado por Yessica Vazquez (1 intervención) el 29/05/2008 18:34:15
hola yo tengo un ejemplo de una base de datos en access claro que mi codigo en nativo y totalmente diferente a como ttu lo programas espero te sirva de algo
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.lang.String.*;

public class Registros extends JFrame{
JLabel Cr=new JLabel("CLAVE EMPLEADO");
JTextField tCr= new JTextField(5);
JLabel Apr=new JLabel("PATERNO");
JTextField tPr=new JTextField(30);
JLabel Amr=new JLabel("MATERNO");
JTextField tMr=new JTextField(30);
JLabel Nr=new JLabel("NOMBRE");
JTextField tNr=new JTextField(30);
JLabel FHIr=new JLabel("FECHA INCIDENCIA");

JFormattedTextField tFIr = new JFormattedTextField();
setSize(800,720);
setResizable(false);

Container contenedor=getContentPane();
contenedor.setLayout(null);
r.add(Cr);Cr.setBounds(20,10,300,100);Cr.setForeground(Color.magenta);Cr.setFont(new Font("Comics Sans MS",Font.TRUETYPE_FONT,16));
r.add(tCr);tCr.setBounds(180,50,50,20);tCr.setForeground(Color.magenta);tCr.setFont(new Font("Comics Sans MS",Font.TRUETYPE_FONT,16));tCr.setToolTipText("Introduzca la clave del empleado para realizar una Busqueda en la base de datos");
r.add(Apr);Apr.setBounds(300,10,100,100);Apr.setForeground(Color.magenta);Apr.setFont(new Font("Comics Sans MS",Font.TRUETYPE_FONT,16));
r.add(tPr);tPr.setBounds(390,50,150,20);tPr.setForeground(Color.magenta);tPr.setFont(new Font("Comics Sans MS",Font.TRUETYPE_FONT,16));tPr.setToolTipText("Apellido Paterno del empleado");
r.add(Amr);Amr.setBounds(20,50,100,100);Amr.setForeground(Color.magenta);Amr.setFont(new Font("Comics Sans MS",Font.TRUETYPE_FONT,16));
r.add(tMr);tMr.setBounds(120,90,100,20);tMr.setForeground(Color.magenta);tMr.setFont(new Font("Comics Sans MS",Font.TRUETYPE_FONT,16));tMr.setToolTipText("Apellido Materno del empleado");
r.add(Nr);Nr.setBounds(300,50,100,100);Nr.setForeground(Color.magenta);Nr.setFont(new Font("Comics Sans MS",Font.TRUETYPE_FONT,16));
r.add(tNr);tNr.setBounds(390,90,200,20);tNr.setForeground(Color.magenta);tNr.setFont(new Font("Comics Sans MS",Font.TRUETYPE_FONT,16));tNr.setToolTipText("Nombre o Nombres del Empleado");
r.add(FHIr);FHIr.setBounds(20,100,350,100);FHIr.setForeground(Color.magenta);FHIr.setFont(new Font("Comics Sans MS",Font.TRUETYPE_FONT,16));
r.add(tFIr);tFIr.setBounds(190,140,100,20);tFIr.setForeground(Color.magenta);tFIr.setFont(new Font("Comics Sans MS",Font.TRUETYPE_FONT,16));tFIr.setToolTipText("Fecha en la cual el empleado faltó a la empresa");
gr.addActionListener(new ActionListener(){//PROGRAMACION DEL BOTON GUARDAR
public void actionPerformed(ActionEvent var){
if(tCr.getText().equals("")){
JOptionPane.showMessageDialog(null,"Proporcione la clave del Empleado");
tCr.requestFocus();
}
else{
String cadena="INSERT INTO Datos VALUES ("+tCr.getText()+",'"+tPr.getText()+"','"+tMr.getText()+"','"+tNr.getText()+"','"+tFIr.getText()+"','"+tFAr.getText()+"','"+Er.getSelectedItem()+"','"+tSIr.getText()+"','"+tQr.getText()+"','"+tAr.getText()+"')";

conexiones con=new conexiones();
con.alta(cadena,"Alta realizada");

}
}});

public static void main (String[] my){
JFrame.setDefaultLookAndFeelDecorated(true);
//try{
// javax.swing.UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");

//}catch(Exception e){System.out.print(e);}
Registros yess=new Registros();
yess.setVisible(true);
}
}


class conexiones {
Connection conexion;
Statement sentencia;
ResultSet resultado;
JTextField tCr,tPr,tMr,tNr;

conexiones(){}
conexiones(JTextField a,JTextField b,JTextField c,JTextField d){
tCr=a; tPr=b; tMr=c; tNr=d;
}
public void buscar(){

if(conexion==null){ conecta();}
try{
String cadena="SELECT * FROM CAT_EMP WHERE NUM_EMP='"+tCr.getText()+"'";
resultado=sentencia.executeQuery(cadena);
if(resultado.next()){
tCr.setText(resultado.getString("NUM_EMP"));
tPr.setText(resultado.getString("AP_PATERNO_EMP"));
tMr.setText(resultado.getString("AP_MATERNO_EMP"));
tNr.setText(resultado.getString("NOMBRE_EMP"));
}
} catch(Exception er){System.out.print(er);}
}


public void conecta(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"No se pudo cargar puente JDBC-ODBC");
return;
}
try{
conexion = DriverManager.getConnection("jdbc:odbc:REC_HUM","","");
sentencia=conexion.createStatement();

}
catch(Exception er){
JOptionPane.showMessageDialog(null,"Error de conexion");}
}
public void alta(String cadena,String operacion){
if(conexion==null){conecta();}
try{
sentencia.execute(cadena);
JOptionPane.showMessageDialog(null,operacion);
}catch(Exception er){}
}
}


SI TE DAS CUENTA PRIMERO DAS FORMA A LA APLICACION Y DESPUES HACES LA CONEXION Y MANDAS LLAMAR LOS METODOS DE LA CONEXION DESDE LA APLICACION QUE EN ESTE EJEMPLO ESE LLAMA REGISTROS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar