Access + SQL combinatie niet goed werkend?

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

  • GZ
  • Registratie: Juni 2001
  • Laatst online: 16-05-2025
Goededag, ik ben bezig met het maken van een gastenboek volgens een boek. Nu heb ik twee tabellen gemaakt genaamd hoofdgegevens en sessiegegevens. Nu is het de bedoeling dat ik het veld Verwijzing (numeriek) laat verwijzen naar het veld Identificatienummer in de tabel Hoofdgegevens. Volgens mij moet ik dan een relatie maken, maar dat staat dus niet in het boek. Weten jullie hoe dat moet?

Het vervolg daarvan is dat ik een SQL query op die tabellen loslaat. De bedoeling is dat de query alle achternamen en voornamen selecteert waarvan de straatnaam "Voorbeeldst" voorkomt en waarvan het lievelingsgetal dat blijkens het veld verwijzing bij de persoon hoort vanvan het lievelingsgetal 42 is. Het opgegeven SQL statement uit het boek luidt:

code:
1
2
3
4
5
6
7
8
SELECT Achternaam, Voornaam 
            FROM Hoofdgegevens 
WHERE 
Hoofdgegevens.Straat Like '%Voorbeeldst%' 
And 
(Hoofdgegevens.Identificatie=Sessiegegevens.Verwijzing 
And 
Sessiegegevens.Lievelingsgetal=42);



Maar als ik dan dubbelklik op de query krijg ik een venster met als naam "Enter parameter value" Sessiegegevens.Verwijzing en daarna Sessiegegevens.Lievelingsgetal. Maar ook hierover staat niets in het boek.
Ik vermoed dat dit te maken heeft met bovenstand probleem, maar zeker weten doe ik het dus niet.

Het boek is trouwens Snel leren werken met ASP tweede editie.

PSN:GZXX | NEX5 | CCNA | Wii | PS3 | 3DS | Wii-U NNID: MasterPrikkebeen | 2 kids


  • xos
  • Registratie: Januari 2002
  • Laatst online: 28-08 15:35

xos

Dat klopt want wat is Sessiegegevens.*?

Dit zijn vermoed ik variabelen welke in je asp pagina bevinden. Dus op het moment dat je deze query in deze vorm in Access uitvoerd zal het object Sessiegegevens niet bestaan. Vandaar dat ie vraagt wat de gegevens dan wel moeten zijn. In je asp pagina zal de query dus wel worden uitgevoerd mits de variabelen bestaan.

Overgens heeft Access een eigen implementatie van sql dus niet alle sql query's zullen werken. Voor een nederlandse tutorial van sql kan je deze link eens bekijken http://www.cs.vu.nl/~michel/pracdb/SUPPL/node2.html

[ Voor 16% gewijzigd door xos op 30-06-2003 00:42 ]


  • GZ
  • Registratie: Juni 2001
  • Laatst online: 16-05-2025
basterd schreef op 30 June 2003 @ 00:39:
Dat klopt want wat is Sessiegegevens.*?

Dit zijn vermoed ik variabelen welke in je asp pagina bevinden. Dus op het moment dat je deze query in deze vorm in Access uitvoerd zal het object Sessiegegevens niet bestaan. Vandaar dat ie vraagt wat de gegevens dan wel moeten zijn. In je asp pagina zal de query dus wel worden uitgevoerd mits de variabelen bestaan.

Overgens heeft Access een eigen implementatie van sql dus niet alle sql query's zullen werken. Voor een nederlandse tutorial van sql kan je deze link eens bekijken http://www.cs.vu.nl/~michel/pracdb/SUPPL/node2.html
Ik heb nog helemaal geen ASP pagina. Ben nu alleen bezig met het maken
van die database. Alle velden zijn ingevuld bij Sessiegegevens. Drie stuks, waarvan er een dus als lievelingsgetal één 42 is.

In het boek gaan ze trouwens uit van Access 2000 terwijl ik XP heb, maar dat zal toch niet uitmaken :?

Ik ga wel even die link checken iig. Bedankt.

PSN:GZXX | NEX5 | CCNA | Wii | PS3 | 3DS | Wii-U NNID: MasterPrikkebeen | 2 kids


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09-09 16:14

Crazy D

I think we should take a look.

In je FROM clausule moet je beide tabellen opnemen.
code:
1
2
3
4
5
6
7
8
9
10
select 
    tabel1.veld1, 
    tabel1.veld2
from 
    tabel1, 
    tabel2
where 
    tabel1.primarykey = tabel2.foreignkey
    and
    tabel2.veldje = 'een waarde'

Je zult nl. moeten vertellen in welke tabellen Access moet gaan zoeken, anders weet ie niet wat je bedoelt (en dat vind ik op zich redelijk logisch). En dat is dus in beide tabellen. Dat je alleen gegevens wilt zien uit tabel1 is jouw pakkie an ;) (en dat kun je dus opgeven in het select-gedeelte van je query). In je where-gedeelte vertel je hoe de tabellen gekoppeld moeten worden, en daarnaast zet je je overige criteria.

Access ondersteunt idd niet alles, en heeft hier en daar wat eigen ideeën (vooral het gebruik van VBscript functies in je query is lachen) ;) maar de meeste standaard-queries werken prima.

Exact expert nodig?


  • GZ
  • Registratie: Juni 2001
  • Laatst online: 16-05-2025
Crazy D schreef op 30 juni 2003 @ 13:32:
In je FROM clausule moet je beide tabellen opnemen.
code:
1
2
3
4
5
6
7
8
9
10
select 
    tabel1.veld1, 
    tabel1.veld2
from 
    tabel1, 
    tabel2
where 
    tabel1.primarykey = tabel2.foreignkey
    and
    tabel2.veldje = 'een waarde'

Je zult nl. moeten vertellen in welke tabellen Access moet gaan zoeken, anders weet ie niet wat je bedoelt (en dat vind ik op zich redelijk logisch). En dat is dus in beide tabellen. Dat je alleen gegevens wilt zien uit tabel1 is jouw pakkie an ;) (en dat kun je dus opgeven in het select-gedeelte van je query). In je where-gedeelte vertel je hoe de tabellen gekoppeld moeten worden, en daarnaast zet je je overige criteria.

Access ondersteunt idd niet alles, en heeft hier en daar wat eigen ideeën (vooral het gebruik van VBscript functies in je query is lachen) ;) maar de meeste standaard-queries werken prima.
Staat er dan VB Script in mijn query :? Zou best kunnen, ik tik het gewoon dom over van het boek en probeer het te begrijpen hoe het werkt. Dus eigenlijk staat het verkeerd in het boek? Die gedachte krijg ik hier dus eigenlijk bij :/

PSN:GZXX | NEX5 | CCNA | Wii | PS3 | 3DS | Wii-U NNID: MasterPrikkebeen | 2 kids


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09-09 16:14

Crazy D

I think we should take a look.

Even wat vergeten... binnen Access is de wildcard * en niet een % zoals gebruikelijk..
Dit is de query zoals ik 'm zou maken:
SQL:
1
2
3
4
5
6
7
8
9
SELECT Hoofdgegevens.Achternaam, Hoofdgegevens.Voornaam
FROM 
Hoofdgegevens, Sessiegegevens 
WHERE
Hoofdgegevens.Identificatie = Sessiegegevens.Verwijzing
and
Hoofdgegevens.Straat Like '*Voorbeeldst*'
and
Sessiegegevens.Lievelingsgetal=42;

Je zult altijd moeten vertellen in welke tabellen er moet worden gekeken. In dit geval dus Hoofdgegevens en Sessiegegevens. Laat je 1 van de 2 weg, weet Access niet dat je de tabel bedoelt en zal ie vragen om invoer.

Exact expert nodig?

Pagina: 1