Toon posts:

[Access] 2 x knop klikken voor goede werking

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een formulier, hierin worden waardes ingevuld door de gebruiker. Dit zijn zoekcriteria van een query.

Alvorens het nieuwe formulier wordt geopend met de zoekresultaten, laat ik een macro runnen. Dit macro roept een mini (klein afmeting) formulier verborgen aan, welke een query als gegevensbron bevat en het resultaat van deze query (het recordaantal bij ingevoerd criteria door gebruiker) in een vakje, dit formulier sluit automatisch af na 15 ms (on-timer), en schrijft de waarde van dit vak naar een kolom in een hulptabel.

In het formulier waar men de zoekcriteria invoerd (gegevensbron query, wat alleen de kolom recordaantal uit hulptabel weergeeft), is een veld wat dat recordaantal bevat wat hier in geschreven is door het mini formulier.

Als men op de knop Zoeken klikt, wordt de macro gerund, zodat deze het aantal in de tabel bijwerkt. Vervolgens voer ik een requery uit op dat ene veld in het zoek formulier. Dit moet echter 2 x gebeuren.

Oplossing nu:

2 x op knop klikken -> kan niet, omdat er afhankelijk van het recordaantal een formulier wordt geopend

2 maal de actie in de event plaatsen en MsgBox tussen de 1e en 2e event plaatsen -> irritant voor gebruiker

Weten jullie een andere oplossing?

als het wat moeilijk te begrijpen is, hier wat screens:

VP_zoeken Form
code achter knop zoeken VP_zoeken Form
Mini Form + code

Verwijderd

Ik snap nog even niet waarom je perse het aantal geselecteerde items zou willen hebben, maar goed. Uiteindelijk wil je neem ik aan een query opbouwen die naar de database gestuurd wordt. Je moet hierbij een WHERE clause opbouwen voor ieder item dat de gebruiker heeft ingevuld. Dat zou *ongeveer* zo kunnen:
code:
1
2
3
4
5
6
7
8
If Veld1.Value <> "" Then
     WhereClause = " WHERE Veld1 = '" & Veld1.Value & "'" 
    waarde = waarde + 1
If Veld2.Value <> "" Then
     WhereClause = WhereClause & " AND Veld2 = '" & Veld2.Value & "'" 
    waarde = waarde + 1
...
End If

De WHERE clause gooi je nu naar je query, afhankelijk van de waarde van Aantal:

code:
1
2
3
If waarde < 12 And aantal > 0 And aantal <= 5 Then
sqlQuery =  VP_zoeken_LE5 " & WhereClause
etc...

LET OP: code is niet gecheckt, gaat om het idee erachter
of heb ik je verkeerd begrepen :? :?

  • WimB
  • Registratie: Juli 2001
  • Laatst online: 30-03-2024
Ik begrijp er niet veel van. Waarom moet je et zo'n hulpform werken. Je kan toch die code ook uitvoeren zonder hulpform.

Stel dat je het hulpform oproept met een knop, dan kan je die code van dat hulpform toch veel beter rechtstreeks aan die knop hangen (of in een Sub steken die je dan met die knop oproept).

Verwijderd

Topicstarter
Het hulpform heeft als gegevensbron een query, deze is redelijk groot. Ik weet niet hoe ik deze zonder foute syntax in VB kan krijgen, het is me tot nog toe niet gelukt :'(

SQL Query

Als ik deze query zou koppelen aan de knop, hoe transporteer ik het recordaantal (AS aantal) naar een variabele? ook dit is nog niet helemaal duidelijk.

  • WimB
  • Registratie: Juli 2001
  • Laatst online: 30-03-2024
Verwijderd schreef op 28 juni 2004 @ 13:22:
Het hulpform heeft als gegevensbron een query, deze is redelijk groot. Ik weet niet hoe ik deze zonder foute syntax in VB kan krijgen, het is me tot nog toe niet gelukt :'(

SQL Query

Als ik deze query zou koppelen aan de knop, hoe transporteer ik het recordaantal (AS aantal) naar een variabele? ook dit is nog niet helemaal duidelijk.
Zo krijg je het aantal in de variabele lngAantal:
code:
1
2
3
4
5
6
7
8
9
10
Dim dbCurrent As Database
Dim rstRecordset As Recordset
Dim lngAantal As Long
Dim strSQL As String

strSQL = "SELECT COUNT(*) AS Aantal FROM tabel"
Set dbCurrent = CurrentDb
Set rstRecordset = dbCurrent.OpenRecordset(strSQL)
lngAantal = rstAdressen.Fields("Aantal")
rstRecordset.Close

Verwijderd

Topicstarter
Ik heb Access 2002 (XP) en 2003 tot mijn beschikking, maar beide herkennen "Type Database" niet hoor! ik weet niet welke ik dan wel moet kiezen:

code:
1
2
3
4
As DataAccessPage
As DataAccessPages
As DataTypeEnum
As Date
Verder, kan je me een voorbeeld geven om deze grote SQL query te plaatsen in VB?

Nog bedankt voor de tips reeds gegeven! :*)

  • WimB
  • Registratie: Juli 2001
  • Laatst online: 30-03-2024
Verwijderd schreef op 28 juni 2004 @ 14:02:
Ik heb Access 2002 (XP) en 2003 tot mijn beschikking, maar beide herkennen "Type Database" niet hoor!
In de VB editor van Access: Extra -> Verwijzingen en daar "Microsoft DAO ..." aanvinken
Verder, kan je me een voorbeeld geven om deze grote SQL query te plaatsen in VB?
Een voorbeeldje:
code:
1
2
3
4
5
6
strSQL = "SELECT naam, straat, nummer, gameente " _
    & "FROM blablabla " _
    & "WHERE naam = ""Jan"" " _
    & "AND straat=""teststraat"" " _
    & "AND nummer=5 " _
    & "AND gemeente=""mijngemeente"""

Als je in je string een " wilt gebruiken, moet je die dus vervangen door ""
Zorg ook voor een spatie op het einde van elke regel.

Tip: maak eens een veel eenvoudiger testformulier (met bvb. maar 2 velden) en probeer dat werkend te krijgen vooraleer over te gaan naar het grotere werk.

[ Voor 40% gewijzigd door WimB op 28-06-2004 14:17 ]

Pagina: 1