phpbar.de logo

Mailinglisten-Archive

mysql-myodbc-msaccess problem mit joins in formularen

mysql-myodbc-msaccess problem mit joins in formularen

Martin e9825286 at student.tuwien.ac.at
Don Apr 17 02:04:28 CEST 2003


Hallo!

ich habe eine bestehende access97 datenbank und möchte das backend auf 
mysql portieren.
mysql-standard-4.0.12 - linux
myodbc 3.51.06

in meiner db existiert eine 'm:n' relation zwischen T_task und T_sample 
(der primarykey ist jeweils ein int 'not null auto_increment').
im frontend sollen die zu einem task gehörenden samples in einem 
unterformular eines T_task formulars angezeigt werden
(was mit access als DB-Server auch funktioniert).

nun das problem:
    das unterform. basiert auf der abfrage (aber nur die samXXX felder 
und tsmTaskID sind wichtig)

        SELECT T_tasksample.*, T_sample.*
        FROM T_sample inner  JOIN T_tasksample ON T_sample.samID = 
T_tasksample.tsmSampleID;
   
        Leider bekomme ich beim eingeben der daten immer die fehlermeldung
        "Das Microsoft Jet-Datenbankmodul kann in der Tabelle <Name> keinen
         Datensatz mit passenden Schlüsselfeldern <Name> finden. (Fehler 
3101)"
   
    das problem tritt auch auf, wenn ich wenn ich direkt in das query 
schreiben will

    der grund (so nehme ich an) ist, daß access die daten nicht über EIN 
INSERT sql schreiben will, sonden einzeln in die tabellen
    einträgt und so das auto_increment der schluesselfelder nicht 
ueberknausert.

    die empfohlenen updates (MS-JET, MDAC) habe ich installiert
   
ich danke für jede hilfe

mfg Martin Elshuber

p.s.: hier ein auszug meines mysql dumps
   
CREATE TABLE T_sample (
  samID int(11) NOT NULL auto_increment,
  samTimeStamp timestamp(14) NOT NULL,
  samName varchar(50) default NULL,
  samTypeID int(11) default NULL,
  samOfficerID int(11) default NULL,
  samDate datetime default NULL,
  samDescription varchar(255) default NULL,
  samAnalysisblock int(11) default NULL,
  PRIMARY KEY  (samID),

-- für das problem irrelevant
  KEY samAnalysisblock (samAnalysisblock),
  FOREIGN KEY (`samAnalysisblock`) REFERENCES `T_analysisblock` (`ablID`)
) TYPE=InnoDB;


CREATE TABLE T_task (
  tasID int(11) NOT NULL auto_increment,
  tasTimeStamp timestamp(14) NOT NULL,
  tasNr varchar(20) default NULL,
  tasName varchar(50) default NULL,
  tasTypeID int(11) default NULL,
  tasDate datetime default NULL,
  tasCostCenter varchar(50) default NULL,
  tasRequestorID int(11) default NULL,
  tasProcessorID int(11) default NULL,
  tasOfficerID int(11) default NULL,
  tasCompletion datetime default NULL,
  PRIMARY KEY  (tasID)
) TYPE=InnoDB;


CREATE TABLE T_tasksample (
  tsmTaskID int(11) NOT NULL default '0',
  tsmSampleID int(11) NOT NULL default '0',
  tsmTimeStamp timestamp(14) NOT NULL,
  tsmInitial tinyint(1) default NULL,
  PRIMARY KEY  (tsmTaskID,tsmSampleID),
  KEY ind_tsmSampleID (tsmSampleID),
  KEY ind_tsmTaskID (tsmTaskID),
  FOREIGN KEY (`tsmSampleID`) REFERENCES `T_sample` (`samID`) ON DELETE 
CASCADE ON UPDATE CASCADE,
  FOREIGN KEY (`tsmTaskID`) REFERENCES `T_task` (`tasID`) ON DELETE 
CASCADE ON UPDATE CASCADE
) TYPE=InnoDB;



-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive