Welkom op het forum van startpagina!

Dit forum staat op alleen-lezen. Je kan hier informatie zoeken en oude berichten terugvinden, maar geen nieuwe berichten plaatsen.

Naar overzicht van alle forums

Werken met lege velden in query's

  • sunil

    Goedenavond!

    Het formulier bevat de volgende velden:

    1. Postcode numeriek deel

    2. Postcode alfabetisch deel

    3. Huisnummer

    4. Huisnummertoevoeging

    5. Significant deel van de achternaam

    6. Voorvoegsel

    7. Voorletters

    8. Artikelomschrijving

    9. Aantal

    Veld 1 tot en met 8 zijn keuzelijsten met invoervak. De rijbronnen van de eerste 7 keuzelijsten zijn query's die gegevens selecteren uit de tabel met naam- en adresgegevens.

    Kies je in veld 1 “1103”, dan blijven in de keuzelijst van het 2e veld alleen de waarden over die bij “1103” horen. Blijft er slechts 1 waarde over, dan wordt deze waarde ingesteld en de focus naar het volgende besturingselement verplaatst. Deze procedure wordt herhaald tot en met het 7e veld.

    De velden huisnummertoevoeging en voorvoegsel zijn vaak leeg. Het gevolg is dat de resultaten van de selectiequery's helemaal geen waarden bevatten en de keuzelijsten dus ook niet.

    Waar moet ik op letten bij het werken met lege velden in query's?

    Bij voorbaat hartelijk dank.

  • ton

    Dim outputrecords As Integer, dbs As Database, rstTemp As Recordset

    Dim qdftemp As QueryDef, strSQLid As String

    Set dbs = CurrentDb()

    strSQLid = "SELECT * FROM WHERE (.veldnaam='“ & ************ & ”');"

    ‘***********kijk in ‘HELP / SQL’ hoe je dit moet formuleren. Dit is zeer “tricky” als je met strings gaat werken. Anders mail je maar

    Set qdftemp = dbs.CreateQueryDef(“”, strSQLid)

    With qdftemp

    Set rstTemp = .OpenRecordset(dbOpenSnapshot)

    With rstTemp

    outputrecords = rstTemp.RecordCount

    If outputrecords = 0 Then

    ‘het veld wordt niet ingevuld, er bestaat geen keuze. De cursor gaat naar het volgende veld

    Else ‘ De recordset heeft minstens 1 record

    .MoveLast

    outputrecords = rstTemp.RecordCount

    If outputrecords = 1 Then

    ‘het veld wordt automatisch ingevuld, er bestaat 1 keuze. De cursor gaat vervolgens naar het volgende veld

    Else

    ‘het veld wordt handmatig ingevuld, er bestaat meer dan 1 keuze

    End if

    End If

    rstTemp.Close

    End With

    End With