Function uit query

Status
Niet open voor verdere reacties.

Eefje67

Gebruiker
Lid geworden
16 jan 2013
Berichten
5
beste forummers,

Ik kom er niet meer uit......
Wie o wie wil er helpen (en uitleggen)?

Ik heb een query met daarin een veld "HL" (Header of Line), als dit veld een H is dan in queryveld "Stuklijstnr: Counter()" de waarde "0"
Staat in veld "HL" een L dan moet de eerste record van Stuklijstnr de waarde "100" krijgen en opvolgend.
De volgende record met een L dan waarde "200", enz.

rec. HL Stuklijstnr
1 H 0
2 L 100
3 L 200
4 L 300

Alvast bedankt voor reacties!

mijn code tot nu toe (Hij loopt vast op "Set qry = ...):

Code:
Option Compare Database
Function Counter()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim qry As DAO.QueryDef
    Dim Factor As Integer
    Dim HL As String

    Set db = CurrentDb
    Set qry = qry.OpenRecordset("SelQry_Export", dbOpenDynaset)
    With rsresults
        
        While Not rs.EOF
            If [HL] = "H" Then
                rs.Edit
                Factor = 0
                rs.Update
            Else
                rs.Edit
                Factor = Factor + 100
                rs.Update
                
            End If
            rs.MoveNext
        Wend
        End With
    Set rs = Nothing
    Set db = Nothing
End Function
 
In een query is het een beetje lastig uit te werken, omdat je daarin de variabelen niet goed kunt initialiseren. Dat kan op een formulier wel. Je vindt volgens mij wat je zoekt dus in het formulier terug.
 

Bijlagen

In een query is het een beetje lastig uit te werken, omdat je daarin de variabelen niet goed kunt initialiseren. Dat kan op een formulier wel. Je vindt volgens mij wat je zoekt dus in het formulier terug.
Beste Octafish,

Bedankt voor je opzetje, werkt bijna. Maar hij telt door, elke keer als het veld HL de waarde "H" heeft moet deze weer op "0" komen en opnieuw verhogen met 100.
Tevens moet ik een output genereren dmv een query, dus ik denk dat een formulier niet goed gaat werken....
Het scriptje van mij heeft wel de juiste werking met de variabelen maar het retourneren naar de query (met de function) werkt niet goed.

Moderator: svp laten staan omdat ik geen formulier nodig heb. thnx
Evert
 
Opgelost!!!!!

Uiteindelijk na een hoop proberen, toch uiteindelijk zelf de oplossing gevonden.:d

Een teller die afhankelijk van een ander veld begint met 0 en ophoogt met 100.
Ik wilde jullie deze oplossing niet onthouden, dus als bijlage de database met het script.

m.v.g.

Code:
Global Teller As Long

Public Function Counter(HL As String) As Long
'Made by Eef67

    If HL = "H" Then
        Teller = 0

    Else
        Teller = Teller + 100
    End If
    Counter = Teller
End Function
Screen.jpg
 

Bijlagen

Laatst bewerkt:
Alternatieve schrijfwijzen:

Code:
Public Function Counter(HL As String) As Long
   Teller = IIf(HL = "H", 0, Teller + 100)
   Counter = Teller
End Function

Code:
Public Function Counter(HL As String) As Long
   Teller = 0
   If HL <> "H" Then Teller =Teller +100
   Counter = Teller
End Function
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan