Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[Access 2003] Query correct weergeven op het formulier

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey allemaal,

Ik heb een query gebouwd op basis van twee tabellen(dmv een Inner Join). Dit loopt uitstekend.
Vervolgens heb ik een formulier gebouwd met de wizard op basis van de query. Ook dit lukt nog.
Nu heb ik op het formulier twee keuzelijsten met invoervakken gebouwd, de bedoeling is dat zij als een filter fungeren voor de query. Dit loopt op zich wel maar bij 1 veld van mijn query wordt er niet de correcte waarde weer gegeven maar #Naam?. De query loopt dus niet voor de volle 100%. De Inner Join is wel deels afhankelijk van de vakken die gefilterd worden door de keuzelijsten dus ik denk dat het daaraan ligt. Komt iemand dit probleem bekend voor?

Verwijderd

Geef eens wat meer informatie:

hoe ziet je query er nu uit (printscreen design view, of gewoon de SQL)?
wat zijn de control sources van je formulier en de velden daarop?
wanneer krijg je deze foutmelding? Altijd, of alleen in specifieke gevallen?

[ Voor 5% gewijzigd door Verwijderd op 27-07-2009 11:39 ]


Verwijderd

Topicstarter
Dit is de SQL van de AlleOrdersquery

SELECT AlleOrders.LocatieID, AlleOrders.LeverancierID, AlleOrders.ProductID, AlleOrders.TransporteurID, AlleOrders.Transportmiddel, AlleOrders.Datum, AlleOrders.Doorgeleverd, AlleOrders.Hoeveelheid, Prijzen.Prijs, AlleOrders.Notities, [Hoeveelheid]*[Prijs] AS Kosten, AlleOrders.[Factuur geaccordeerd]
FROM AlleOrders INNER JOIN Prijzen ON (AlleOrders.LocatieID = Prijzen.LocatieID) AND (AlleOrders.LeverancierID = Prijzen.LeverancierID) AND (AlleOrders.ProductID = Prijzen.ProductID)
WHERE (((AlleOrders.[Factuur geaccordeerd])=False));


Ik heb dus eerst met de wizard deze query in het formulier weergegeven dat loopt.

Vervolgens heb ik op het formulier een keuzelijst met invoervak op LeverancierID en ProductID. Dan druk op een knop en word de query gefilterd op LeverancierID en ProductID. De VBA voor deze knop is
Private Sub Knop31_Click()

Dim strSQL As String
strTabel = "AlleOrders Query"
strSQL = "Select * From " & strTabel & vbCrLf _
& "WHERE (([LeverancierID]=" & Me.Leverancier_Factuur.Value & ") " _
& "And ([ProductID]= " & Me.Product_Factuur.Value & ")" _
& "And ([Factuur Geaccordeerd]=False))"
Me.RecordSource = strSQL
Me.Requery
Me.AllowEdits = False


End Sub


Ik heb dus gezien dat nadat ik deze knop indruk, de velden prijs en kosten niet meer herkend worden als besturingselementbronnen wat verklaard waarom er "Naam?#" komt te staan in deze velden. Ik zit eraan te denken om de hele SQL in VBA te bouwen maar ik weet niet hoe dat moet :'(

Verwijderd

Zoals ik het zogauw kan zien, gaat het fout in de opbouw van je strSQL. Dit krijg ik als SQL-statement:

code:
1
Select * From AlleOrders QueryWHERE (([LeverancierID]=1) And ([ProductID]= 1)And ([Factuur Geaccordeerd]=False))


Zoals je ziet, ontbreekt er een spatie tussen "AlleOrders Query" en WHERE, en tussen "([ProductID]= 1)" en "And".
Daarnaast zul je vierkante haken "[ ]" rond je querynaam 'AlleOrders Query' moeten zetten. Ook zal Access alleen "Select [tabelnaam].*" accepteren ipv alleen "Select *".

[ Voor 8% gewijzigd door Verwijderd op 27-07-2009 13:11 ]