zoeken in een Query met en knop op een formulier

Status
Niet open voor verdere reacties.

jan62

Gebruiker
Lid geworden
19 jan 2010
Berichten
36
Hoi,

Ik heb wederom en vraag over en code onder en knop op een formulier.
op en formulier heb ik drie knoppen 2 knoppen om te zoeken in de Qofferte
naar en bepaalde record zodra ik die heb klik ik op de knop voorbeeldofferte.
de eerste keer dat ik doe werkt het goed , maar als ik het formulier sluit en later
weer wil zoeken naar en offerte in de Query geeft hij mij de offerte die ik eerder
had gezocht en het zoeken in de query wil dan niet meer.
als ik de quer open in ontwerp staat er en exstra Id veld met het nummer van de gezochte
offerte, haal ik dit nummer weg en ga ik dan weer zoeken dan werkt het weer goed.
dit herhaald zich steeds iets aan de code is niet oke. maar ik heb geen idee wat.

vr gr Jan

Code:
Private Sub Knop20_Click()
Dim stDocName As String
Dim sqlTemp As String
Dim qDef As QueryDef
     
 Set qDef = CurrentDb.QueryDefs("qofferte")
    sqlTemp = "SELECT Id, memo, datum, naam, adres, plaats, postcode,[Id]" _
      & "FROM offerte " _
      & "WHERE (Id=" & Me.Id & ");"
      qDef.SQL = sqlTemp
    
    
    stDocName = "rpofferte"
    DoCmd.OpenReport stDocName, acPreview

Exit_Knop20_Click:
    Exit Sub

Err_Knop20_Click:
MsgBox Err.Description
    Resume Exit_Knop20_Click
End Sub
 
Ik gebruik deze constructie ook en daar is niets mis mee. Wat je doet, is in feite de filtering hard in de querycode zetten, zodat de query ook werkt (en het rapport dus ook) als je het formulier niet gebruikt. Om een nieuwe selectie te maken, moet je dus uit het formulier een nieuw record selecteren, dan begint het feest weer van voren af aan. Waarom je het formulier sluit, is mij dus eigenlijk een raadsel, want je hoeft alleen het rapport maar te sluiten en in je formulier een volgend record te selecteren. Waarom je twee keer het veld ID in je query zet, is mij dan weer een raadsel. Dat voegt niks toe, anders dan verwarring omdat de veldnaam in je query dan niet meer klopt.

Code:
Private Sub Knop20_Click()
Dim sqlTemp As String
Dim qDef As QueryDef
     
    Set qDef = CurrentDb.QueryDefs("qofferte")
    sqlTemp = "SELECT Id, memo, datum, naam, adres, plaats, postcode FROM offerte WHERE Id=" & Me.Id
    qDef.SQL = sqlTemp
    DoCmd.OpenReport "rpofferte", acPreview
    Exit Sub

Err_Knop20_Click:
    MsgBox Err.Description
End Sub
 
Hoi Octafish,

ik snap er niks van het werkt nog steeds niet, ook niet met de code die jij plaatste ik zie wat over het hoofd of doe iets heel stoms, en dat laatste zou best kunnen.
Het werkt 1 keer en dan staat er in de Query de record die ik het eerst selecteerde en je kan dan niet meer zoeken op en andere record. en het als voorbeeld zien.
ik stuur je een beknopte bijlage zodat je kan zien wat er fout gaat.

vr Gr Jan
 

Bijlagen

  • offerte.rar
    35,8 KB · Weergaven: 27
Mijn code is hetzelfde als de jouwe, maar wat strakker en zonder de dubbele ID. Dus die werkt niet anders of beter. Zal er vanavond even naar kijken.
 
Ik zie dat je opzoekknop en zo meer eigenlijk gewoon scrolknoppen zijn en er is ook geen enkele meerwaarde om je ID op te slaan in je query.
Verder zou je in je DB toch ook een artikeltabel, klantentabel, etc.... verwachten om een mooie offerte te kunnen maken die je dan kunt boeken in een factuurtabel bij een eventuele bestelling.
Dan pas zou ik het handig vinden als je bv een zoekveld-met-lijstje in een formulier hebt waar je dan op verschillende items zoals debiteur, factuur - of offertenummer, datum, etc... kunt zoeken.
 
Hoi Johan,

voor mij is het op dit moment even niet zo belangrijk wat er allemaal mogelijk is, het is voor mij op dit moment voldoende als de scrol knoppen werken zoals ik zou willen.
Als je me daar bij kan helpen ben ik al zeer tevreden, octafish zou er vanavond nog even naar kijken. ik heb alweer van alles geprobeerd maar ik zie iets over het hoofd waarm
et niet werkt zoals het zou moeten werken.

vr Gr Jan
 
De tips van Johan even terzijde leggend: je formulier doet precies wat ik verwacht, en de code ook. Als ik met de bladerknoppen naar een ander record blader, vanuit het geopende formulier, krijg ik keurig alle records te zien die ik open. Maar ik snap je probleem wel. Als je klaar bent met het formulier en rapport, sluit je ze allebei. Op dat moment blijft het laatst gebruikte record in de query zitten. Dat zou geen probleem mogen zijn, ware het niet dat je voor zowel query als rapport dezelfde query gebruikt. En ja, dan ga je de teil in. Formulier en rapport hebben niets met elkaar te maken. In mijn voorbeelden heeft het rapport ook altijd een andere bron dan het formulier.
Je oplossing is dus simpel: baseer je formulier gewoon op de tabel offerte, dan is er niks aan de hand. Zo hoort het in mijn ogen ook, er is geen enkele reden te verzinnen (want je doet in de query verder ook niks) om het formulier te baseren op de query en niet op de tabel.
 
Hoi Octafish,

Zo simpel en zo dom en ik heb zelfs nog even geneusd en een X aantal prgtjes waar ik ongeveer hetzelfde doe en maar niet snapte waarom het nu niet werkte zoals ik wilde in dit prg.
Ook even in die prgtjes gekontroleerd hoe ik het daar deed en ja daar opende ik het formulier met de tabel en zocht ik met de query. en ik maar de code wijzigen en wijzigen..
Gewoon over het hoofd gezien, bedankt voor je hulp ik ben er weer blij mee en kan verder.
Trouwens ik ben ook nog bezig en aantal dingen aan te passen die johan aangaf, hopelijk kan ik dat zonder de hulp en anders zie je wel en vraag verschijnen hier.

Vr Gr Jan

Vr Gr Jan
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan