Toon posts:

[Access] MySQL view in Access

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben druk bezig met het schrijven van een applicatie met als backend MySQL 5 en als frontend Access 2003. Een ODBC-koppeling verbindt de twee. Om wille van de snelheid wil ik de query's op de MySQL server uit laten voeren en alleen de resultaten in Access laten zien. Nu wil het geval dat via een ODBC-koppeling query's niet toegankelijk zijn. Een andere manier om dit te doen is het gebruik van views. En hier zit hem het probleem. Wanneer ik de view:

SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT 
tbl_presentie.fld_lesdatum, 
tbl_presentie.fld_lesuur, 
tbl_presentie.fld_klas, 
tbl_presentie.fld_naam, 
tbl_presentie.fld_vak, 
tbl_presentie.fld_amico_student_id, 
tbl_presentie.fld_id, 
tbl_presentiecode.fld_presentie
FROM ((tbl_geselecteerd_lesuur 
LEFT JOIN tbl_presentie ON 
(tbl_geselecteerd_lesuur.fld_lesdatum=tbl_presentie.fld_lesdatum) AND 
(tbl_geselecteerd_lesuur.fld_klas=tbl_presentie.fld_klas) AND 
(tbl_geselecteerd_lesuur.fld_lesuur=tbl_presentie.fld_lesuur)) 
LEFT JOIN tbl_presentiecode ON 
tbl_presentie.fld_presentie=tbl_presentiecode.fld_id) 
LEFT JOIN tbl_student ON 
tbl_presentie.fld_amico_student_id=tbl_student.fld_student_id;


uitvoer in Navicat levert het het gewenste resultaat op; ongeveer 30 records. Wanneer ik deze view via ODBC koppel in Acces krijg ik de volledige inhoud van tbl_presentie, ipv de geselecteerde studenten.
Nu lijkt het alsof het met de typen join te maken heeft, maar aangezien deze query in zowel Access als in Navicat wel werkt, is dat op zijn minst vreemd.

Wat doe ik fout? Staat er ergens een vinkje op de verkeerde plek?
Alvast bedankt voor de hulp.

Edit: Opmaak code

[ Voor 10% gewijzigd door Verwijderd op 09-10-2006 16:16 ]


Verwijderd

Topicstarter
Helemaal niemand?

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Enkele vragen :
Welke mysql versie
Welke myodbc versie ( of beter gezegd : welke odbc koppeling en welke versie ??? )

En waarom noem je een query een view???
want als jij het hebt over views uitvoeren in navicat / access dan heb je het volgens mij over een query niet over een view.

Volgens mij is een view (simpel gezegd ) een virtuele tabel in je database ( oftewel de query moet opgeslagen worden in mysql ) en kan je met behulp van een query weer info uit een view halen.
AFAIK is een view voor een client niets anders dan een gewone table.

Let op : dit is allemaal afaik, misschien dat mysql wel iets raars doet met views. Maar zoals ik jouw query lees is dit geen view.

Verwijderd

Topicstarter
MySQL versie: 5.0.21-3 (Ubuntu Dapper server)
MyODBC: 3.51

Wat je zegt over views is correct. Een view is inderdaad een virtuele tabel. Ik wil eigenlijk de query's van MySQL benaderen via ODBC, maar volgens mij kan dit niet. Hierom gebruik ik de views als een soort query. Ze werken namelijk op de zelfde manier; met SQL. De source van een view is het zelfde als die van een query, als je de source van een query in een view plakt wekt dat gewoon. Ik dacht hier dus handig gebruik van te maken. Helaas levert het tot nu toe wat vreemde resultaten op wanneer ik de view bekijk via de ODBC koppeling.