søgning udfra oplysning i tekstfelt i ACCESS
Jeg har tidligere oprettet en tråd, men fandt ingen løsning. jeg ønsker at foretage en forespørgsel i min database ud fra den oplysning jeg angiver i et tekstfelt, men det er vist en svær nød at knække. Min applet klasse kommer herimport java.util.*;
import java.io.*;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class Brugerflade extends Applet implements ActionListener
{
public String username = "";
public String password = "";
boolean userValid = false;
Button KnapDagplan, KnapFamilie, KnapAftaler, KnapMedicin, KnapJournal, KnapAndet, KnapOK, KnapOKCPR, KnapDoktor, KnapAndet2, KnapJournal2, KnapDagplan2, KnapAftaler2;
TextArea SkriveFlade;
TextField CPR;
Label Forfatter, Til;
String var1, var2, var3, var4;
Database data ;
Aftaler aft = new Aftaler();
Journal ajour = new Journal();
Dagplan dag = new Dagplan();
Andet and = new Andet();
public void init()
{ setLayout(new FlowLayout());
while (!userValid) login();
data = new Database();
CPR = new TextField("");
CPR.setColumns(12);
CPR.setBackground(Color.green);
KnapOKCPR = new Button("CPR OK");
KnapOKCPR.setBackground(Color.green);
KnapDagplan = new Button("Dagplan");
KnapDagplan.setBackground(Color.blue);
KnapDagplan2 = new Button("Opd. Dagplan");
KnapDagplan2.setBackground(Color.blue);
KnapAftaler = new Button("Aftaler");
KnapAftaler.setBackground(Color.yellow);
KnapAftaler2 = new Button("Opd. Aftaler");
KnapAftaler2.setBackground(Color.yellow);
KnapJournal = new Button("Patient-Journal");
KnapJournal.setBackground(Color.red);
KnapJournal2 = new Button("Opd. Journal");
KnapJournal2.setBackground(Color.red);
KnapAndet = new Button("andet");
KnapAndet.setBackground(Color.ORANGE);
KnapAndet2 = new Button("Opd. Andet");
KnapAndet2.setBackground(Color.ORANGE);
KnapFamilie = new Button("Pårørende");
KnapFamilie.setBackground(Color.magenta);
KnapDoktor = new Button("Egen læge");
KnapDoktor.setBackground(Color.cyan);
KnapMedicin = new Button("Medicin Cardex");
KnapMedicin.setBackground(Color.lightGray);
SkriveFlade = new TextArea(25,50);
Forfatter = new Label("Flemming Steenstrup Jakobsen");
add(CPR);
add(KnapOKCPR);
add(KnapFamilie);
add(KnapDoktor);
add(KnapMedicin);
add(KnapDagplan);
add(KnapDagplan2);
add(KnapAftaler);
add(KnapAftaler2);
add(KnapJournal);
add(KnapJournal2);
add(KnapAndet);
add(KnapAndet2);
add(Forfatter);
add(SkriveFlade);
KnapDagplan.addActionListener(this);
KnapDagplan2.addActionListener(this);
KnapOKCPR.addActionListener(this);
KnapFamilie.addActionListener(this);
KnapAftaler.addActionListener(this);
KnapAftaler2.addActionListener(this);
KnapMedicin.addActionListener(this);
KnapJournal.addActionListener(this);
KnapAndet.addActionListener(this);
KnapAndet2.addActionListener(this);
KnapDoktor.addActionListener(this);
KnapJournal2.addActionListener(this);
KnapDagplan2.addActionListener(this);
}
public void login() {
MyLogin login = new MyLogin (new Frame(""));
requestFocus();
if (login.id) {
username = login.username.getText();
password = login.password.getText();
userValid = validateUser(username , password);
System.out.println(userValid?"valide":"invalide");
}
login.dispose();
}
private boolean validateUser(String usr, String pwd) {
// here you will code some logic to validate the username
// password... for testing purpose :
// username = java password = avaj
return (usr.equals("java") && pwd.equals("avaj"));
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == KnapOKCPR)
{
try
{
SkriveFlade.setText(null);
SkriveFlade.setText(data.HentPat());
}
catch (Exception fejl2)
{
fejl2.printStackTrace();
SkriveFlade.setText("Fejl i forbindelsen... Prøv senere " + fejl2);
}
}
if (e.getSource() == KnapDagplan)
{
try
{
SkriveFlade.setText(dag.hentDagplan());
}
catch (Exception fejl3)
{ SkriveFlade.setText("Data ikke tilgængelig " + fejl3);
}
}
if (e.getSource() == KnapDagplan2)
{
try
{
var1 = (SkriveFlade.getText());
dag.gemDagplan(var1);
}
catch (Exception fejl3)
{ SkriveFlade.setText("Data kan ikke gemmes " + fejl3);
}
}
if (e.getSource() == KnapFamilie)
{
try
{
SkriveFlade.setText(data.HentFam());
}
catch (Exception fejl4)
{
SkriveFlade.setText("Fejl i forbindelsen... Prøv senere " + fejl4);
}
}
if (e.getSource() == KnapAftaler)
{
try
{
SkriveFlade.setText(aft.hentAftaler());
}
catch (Exception fejl5)
{
SkriveFlade.setText("Data ikke tilgængelig " + fejl5);
}
}
if (e.getSource() == KnapAftaler2)
{
try
{
var2 = (SkriveFlade.getText());
aft.gemAftaler(var2);
}
catch (Exception fejl6)
{
SkriveFlade.setText("Data kan ikke gemmes " + fejl6);
}
}
if (e.getSource() == KnapMedicin)
{
try
{
SkriveFlade.setText(data.HentMed());
}
catch (Exception fejl7)
{
SkriveFlade.setText("Fejl i forbindelsen... Prøv senere " + fejl7);
}
}
if (e.getSource() == KnapJournal)
{
try
{
SkriveFlade.setText(ajour.hentJournal());
}
catch (Exception fejl8)
{
SkriveFlade.setText("Data ikke tilgængelig " + fejl8);
}
}
if (e.getSource() == KnapJournal2)
{
try
{
var3 = (SkriveFlade.getText());
ajour.gemJournal(var3);
}
catch (Exception fejl9)
{
SkriveFlade.setText("Data kan ikke gemmes " + fejl9);
}
}
if (e.getSource() == KnapAndet)
{
try
{
SkriveFlade.setText(and.hentAndet());
}
catch (Exception fejl10)
{ SkriveFlade.setText("Data ikke tilgængelig " + fejl10);
}
}
if (e.getSource() == KnapAndet2)
{
try
{
var4 = (SkriveFlade.getText());
and.gemAndet(var4);
}
catch (Exception fejl11)
{ SkriveFlade.setText("Data kan ikke gemmes " + fejl11);
}
}
if (e.getSource() == KnapDoktor)
{
try
{
SkriveFlade.setText(data.HentDok());
}
catch (Exception fejl12)
{ SkriveFlade.setText("Fejl i forbindelsen... Prøv senere " + fejl12);
}
}
}
}
og her kommer min database klasse så, hvor forespørgsler og forbindelse ligger i.
import java.util.*;
import java.sql.*;
import java.io.*;
public class Database
{
java.sql.Connection forb;
java.sql.ResultSet rs;
java.sql.Statement stmt;
String a = "";
String b = "";
String c = "";
String d = "";
Brugerflade tekst = new Brugerflade();
public void forbind()
{
try {
String url = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\\Documents and Settings\\Flemming\\Dokumenter\\PATIENTER.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
forb = DriverManager.getConnection(url);
stmt = forb.createStatement();
}
catch (Exception err) {
err.printStackTrace();
}
}
public String HentPat() throws SQLException
{
forbind();
rs = stmt.executeQuery("SELECT * FROM patienten WHERE CPRnr = '1602160234'");
a = "";
while (rs.next())
{ String cpr = rs.getString("CPRnr");
String pnavn = rs.getString("PatNavn");
String padresse = rs.getString("PatAdresse");
int ppostnr = rs.getInt("PatPostnr");
String pby = rs.getString("PatCity");
int ptlf = rs.getInt("PatTlfnr");
a = a+"\n"+cpr+"\n"+pnavn+"\n"+padresse+"\n"+ppostnr+"\n"+ptlf
+"\n"+pby+"\n"+ptlf;
}
rs.close();
return a;
}
public String HentFam() throws SQLException
{
try {
forbind();
rs = stmt.executeQuery("SELECT * FROM familie WHERE CPRnr = '1602160234'");
b = "";
while (rs.next())
{ String cpr = rs.getString("CPRnr");
String fnavn = rs.getString("Famnavn1");
String fadresse = rs.getString("Famdresse1");
int fpostnr = rs.getInt("Fampostnr1");
String fby = rs.getString("Famcity1");
int ftlf = rs.getInt("Famfasttlf1");
int fmob = rs.getInt("Fammobil1");
String fnavn2 = rs.getString("Famnavn2");
String fadresse2 = rs.getString("Famadresse2");
int fpostnr2 = rs.getInt("Fampostnr2");
String fby2 = rs.getString("Famcity2");
int ftlf2 = rs.getInt("Famfasttlf2");
int fmob2 = rs.getInt("Fammobil2");
b = b+"\n"+cpr+"\n"+fnavn+"\n"+fadresse+"\n"+fpostnr+"\n"+fby+"\n"+ftlf+"\n"+fmob+"\n"+fnavn2+"\n"+fadresse2+"\n"+fpostnr2+"\n"+fby2+"\n"+ftlf2+"\n"+fmob2;
//
}
}
catch (Exception fejl2)
{
fejl2.printStackTrace();
System.out.println("Fejl i forbindelsen... Prøv senere " + fejl2);
}
rs.close();
return b;
}
public String HentDok() throws SQLException
{
rs = stmt.executeQuery("SELECT * FROM doktor WHERE CPRnr = '1602160234'");
c = "";
while (rs.next())
{ String cpr = rs.getString("CPRnr");
String dnavn = rs.getString("Patdok");
String dadresse = rs.getString("Patdokadresse");
int dpostnr = rs.getInt("Patdokpostnr");
String dby = rs.getString("Patdokcity");
int dtlf = rs.getInt("Patdoktlf");
c = c+cpr+"\n"+dnavn+"\n"+dadresse+"\n"+dpostnr+"\n"+dby+"\n"+dtlf;
}
rs.close();
return c;
}
public String HentMed() throws SQLException
{
ResultSet rs = stmt.executeQuery("SELECT * FROM medicin WHERE CPRnr = '1602160234'");
d = "";
while (rs.next())
{ String med1 = rs.getString("Medicin1");
String dgl1 = rs.getString("Meddgl1");
String med2 = rs.getString("Medicin2");
String dgl2 = rs.getString("Meddgl2");
String med3 = rs.getString("Medicin3");
String dgl3 = rs.getString("Meddgl3");
String med4 = rs.getString("Medicin4");
String dgl4 = rs.getString("Meddgl4");
String med5 = rs.getString("Medicin5");
String dgl5 = rs.getString("Meddgl5");
String med6 = rs.getString("Medicin6");
String dgl6 = rs.getString("Meddgl6");
int dosis = rs.getInt("Meddato");
d = d+med1+"\n"+dgl1+"\n"+med2+"\n"+dgl2+"\n"+med3+"\n"+dgl3+"\n"+med4+"\n"+dgl4+"\n"+med5+"\n"+dgl5+"\n"+med6+"\n"+dgl6+"\n"+dosis;
}
rs.close();
return d;
}
}
Jeg ved ikke helt om jeg skal oprette en metode alene som afgører det eller hvordan. jeg blev noget lost efter den sidste tråd og kom aldrig videre