Toon posts:

[ASP] Acces probleempje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey,
ff een vraagje, ik zit met een probleempje...

Voor een pagina die ik ff in elkaar zit te flansen moet ik de werknemers uit een database halen die in een bepaalde maand jarig zijn.

Op zich lukt het me wel om de huidige maand uit de date() te plukken, maar de query hieruit opbouwen gaat iets minder.

Ik heb tot nu toe:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%
dim i
dim datum
datum = date()
%>
<% IF Monthname(Month(datum)) = "november" THEN 
   i = 11
%>
<% end IF %> 
<%
Dim objConn
dim objRS
dim DBpath

DBpath = Server.Mappath("bq_demo.mdb")

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPath & ";"

set objRS = objConn.Execute ("Select * from Medewerkers where GeboorteMaand= i ")
%>


Als ik hem zo echter probeer zegt ie: Microsoft JET Database Engine
Waarden voor een of meer vereiste parameters ontbreken.

:(

Als ik hardcoded een cijfer voor de geboortemaand invul doet ie het wel.... :(

wie kan mij verder helpen!?

alvast bedankt! ;)

  • whoami
  • Registratie: December 2000
  • Laatst online: 20:46
Print eens de query naar het scherm en wees verbaasd.

Je moet niet 'i' nemen als geboortemaand, maar de inhoud van i:
Dus:
code:
1
GeboorteMaand = " & i;

Maar als je kunt, werk je het best met parameters

https://fgheysels.github.io/


Verwijderd

code:
1
2
sql = "Select * from Medewerkers where GeboorteMaand=" & i 
set objRS = objConn.Execute (sql)


Probeer dit.

Verwijderd

Topicstarter
Verwijderd schreef op 26 November 2002 @ 09:56:
code:
1
2
sql = "Select * from Medewerkers where GeboorteMaand=" & i 
set objRS = objConn.Execute (sql)


Probeer dit.
Thnx, die heb ik geprobeerd,
alleen nu zegt ie:
Microsoft JET Database Engine (0x80040E07)
Gegevenstypen komen niet overeen in criteriumexpressie.

Zoeken op de site van Microsoft leert me dat dit een foutmelding is bij het querien (ofzo :D) van datum/tijd velden, maar mijn velden zijn gewoon text :?

Verwijderd

In je query moet je het juiste gegevenstype gebruiken als je een vergelijking maakt zoals in de WHERE clause. Als de kolom GeboorteMaand van een teksttype is, dan zal je single quotes (') om je waarde heen moeten zetten.

Misschien is een opfriscursus SQL en ASP wel aan jou besteed:
- http://www.w3schools.com/asp/
- http://www.w3schools.com/sql/

Succes :)

Verwijderd

ff in je database het type van het veld 'GeboorteDatum' op 'numeriek' zetten.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 28-08 15:58

gorgi_19

Kruimeltjes zijn weer op :9

En als aanvuling op MrX:

De quote van whoami gaat in dit geval ook wonderen doen:
Print eens de query naar het scherm en wees verbaasd
Wees verbaasd wat de variabele wel (of juist niet) kan zijn.. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Verwijderd schreef op 26 November 2002 @ 10:16:
In je query moet je het juiste gegevenstype gebruiken als je een vergelijking maakt zoals in de WHERE clause. Als de kolom GeboorteMaand van een teksttype is, dan zal je single quotes (') om je waarde heen moeten zetten.

Misschien is een opfriscursus SQL en ASP wel aan jou besteed:
- http://www.w3schools.com/asp/
- http://www.w3schools.com/sql/

Succes :)
:D
Je hebt gelijk :D


(overigens vind ik het een compliment als je zegt "opfriscursus ASP", aangezien ik net 2 maanden zelf aan het oppikken ben :))

Verwijderd

Verwijderd schreef op 26 November 2002 @ 10:18:
ff in je database het type van het veld 'GeboorteDatum' op 'numeriek' zetten.
klopt, zet GeboorteMaand op numeriek. Je zet er namelijk een nummer in ;)

[ Voor 13% gewijzigd door Verwijderd op 26-11-2002 10:30 ]


Verwijderd

Topicstarter
de grap is dus dat het geen database is die ik zelf heb gemaakt, of waar ik zelf even aanpassingen in kan maken... Het veld staat inderdaad op tekst dus de oplossing is

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%
dim i
dim datum
datum = date()
%>
<% IF Monthname(Month(datum)) = "november" THEN 
   i = 11
%>
<% end IF %> 
<%
Dim objConn
dim objRS
dim DBpath
dim sql
DBpath = Server.Mappath("bq_demo.mdb")

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPath & ";"
sql = "Select * from Medewerkers where GeboorteMaand= '" & i & "'"
set objRS = objConn.Execute (sql)
%>


verders mijn excuses voor het newbie-nivo van de vraag, maar ben nog niet echt wakker en coldfusion ligt me toch net iets lekkerder :)

Bedankt allen ;)

Verwijderd

code:
1
i = "11"


;)

Verwijderd

Topicstarter
LOL....


Maar goed, ik kan weer verder...

dank u! :D
Pagina: 1