waar komt die spatie vandaan

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.680
? f!Kode
13031850
? Forms!nieuw!VOLGNUMMER_VOORSCHR
1
? str(Forms!nieuw!VOLGNUMMER_VOORSCHR)
1
? "000" & str(Forms!nieuw!VOLGNUMMER_VOORSCHR)
000 1

Waar komt die spatie tussen 000 en 1 vandaan? hoe werk ik die weg?
Bedankt
JP
 
Heb je er last van? Het venster Direkt is toch alleen maar een controlemiddel?
 
Ja maar dat wordt dan ook zo in een veld weggeschreven dit was maar ter controle
 
Ik schrijf:

kd_lang = Me.KODE & Right("000" & Str(Me.VOLGNUMMER_VOORSCHR), 3) & "1"

en krijg als waarde voor kd_lang: 2408002 231

terwijl de waarde van me.Kode= 01100845 is..

HOE KAN DAT????

Ik word hier compleet krankjorum van
 
Dat soort ongein gebeurt mij dus nooit.... Doe ik toch iets verkeerd :D. Probeer deze eens:
Code:
kd_lang = Me.KODE & Right("000" & Cint(Me.VOLGNUMMER_VOORSCHR), 3) & 1
 
Ik heb in één van je db's wat getest, en niks aan de hand.
Code:
Function NieuwVolgnummer()
Dim rs As DAO.Recordset

    Set rs = CurrentDb.OpenRecordset("SELECT KODE, KODELANG FROM VOORSCHR")
    With rs
        Do While Not .EOF
            MsgBox .Fields(0).Value & vbLf & .Fields(1).Value & vbLf & Right("000" & Str(.Fields(0).Value), 3) & "1"
            .MoveNext
        Loop
    End With

End Function
 
der is echt vanalles fout heb ik de indruk Michel... hoop dat je eens in het db zelf kijkt wat ik daar te zien krijg
 
de eerste 8 karakters van de "kodelang" blijken deze te zijn van de eerste record in mijn fiche tabel...deze hebben niks te maken met het record waar ik in bezig zou zijn... da's wel heel vreemd toch?
 
Ik probeerde zopas (bij wijze van test) het volgende:

In het OnLoad event schrijf ik:

f!TxtKodelang = f!txtKode

en ik krijg als resultaat:

kodelang.png

De waarde van het "kode"-veld is correct
Via de bovengenomede code zou ik dus verwachten dat het veld "TxtKodelang" dezelfde inhoud zou geven maar dat is niet zo
De waarde hier is de inhoud van het Kodeveld van het allereerste record in mijn tabel...
Ik krijg dit niet opgelost...
Iemand enig idee?
aub?????

JP
 
Ik zal maar niets meer zeggen over het gebruik van IntelliSense, dat blijft voor jou toch een stapje te hoog gegrepen. Deze (jouw) werkwijze toont in ieder geval wel aan dat je niet lui of gemakzuchtig bent :).
De waarde hier is de inhoud van het Kodeveld van het allereerste record in mijn tabel...
Je resultaat is volslagen logisch, en volgens mij heb ik dat ook al wel eens eerder uitgelegd. Procedures worden in een bepaalde volgorde, op een bepaald moment dus, uitgevoerd. De gebeurtenissen Private Sub Form_Load() en Private Sub Form_Open(Cancel As Integer) worden daarbij maar één keer uitgevoerd, namelijk bij het openen van het formulier. Daarbij wordt Form_Open eerst uitgevoerd, daarna Form_Load. Bij Form_Open zijn er nog geen rekords ingelezen, dus dan had je code een fout opgeleverd. Bij Form_Load wordt de tabel ingeladen en het eerste record getoond. Form_Load is daarna klaar, en kan aan de bar gaan zitten met een goed boek en een knappe pint. Een onafhankelijk tekstvak dat je vult bij Form_Load zal dus nooit meer een andere waarde krijgen, want de code wordt niet meer gedraaid.

Wat te doen als je door je records bladert, en dus steeds andere records in beeld ziet? Simpel: daarvoor is de gebeurtenis <Bij Aanwijzen> (Form_Current). Code die je dáár zet, wordt bij elk volgend record weer uitgevoerd. En daar verandert je niet-afhankelijke tekstvak dus wél bij.

In algemene zin dus: zet procedures en functies daar waar je ze het best werken.
 
Ik zal maar niets meer zeggen over het gebruik van IntelliSense, dat blijft voor jou toch een stapje te hoog gegrepen. Deze (jouw) werkwijze toont in ieder geval wel aan dat je niet lui of gemakzuchtig bent .

Ik pleit schuldig... zal het proberen nooit meer te doen

Toch begrijp ik het niet volledig

De code die ikschrijf zet ik in het OnLoad Event
Ik krijg toch niet het eerste record te zien maar dat wat ik in mijn zoek-form geselecteerd heb

Ik wil dus de correcte "kodelang" zien op het moment dat ik het record zie... dat kan dus niet of begrijp ik het verkeerd? waar moet ik dan de code zetten?

JP
 
De code die ikschrijf zet ik in het OnLoad Event
Ik krijg toch niet het eerste record te zien maar dat wat ik in mijn zoek-form geselecteerd heb
Nogmaals: het OnLoad event wordt alleen uitgevoerd om de dataset te laden. Verder niet. Op het moment dat jij iets doet op je formulier, spreek je dat event nooit meer aan. Jij haalt de waarde op uit het eerste record, want dat doet een recordset nu eenmaal, bij het begin beginnen.
 
snap het niet... zal wel aan mij liggen

het is toch op het moment dat het Onload event getriggerd wordt dat de data die ik wil zien in de velden gestoken worden..; dan kan ik er toch iets mee doen?
En als dat niet zo is...
HOE krijg ik dan die kodelang in het veld

JP
 
Gaan we weer even een stapje terug.
Ik krijg toch niet het eerste record te zien maar dat wat ik in mijn zoek-form geselecteerd heb
Ik wil dus de correcte "kodelang" zien op het moment dat ik het record zie... dat kan dus niet of begrijp ik het verkeerd? waar moet ik dan de code zetten?
Je hebt een zoekformulier, daarop zoek je een code op. Die code gebruik je (of wil je gebruiken) om een tweede formulier te filteren. Dat tweede formulier heeft geen filter, maar krijgt dat door de parameter die je meegeeft met de opdracht. Dan is dus de vraag: wanneer wordt het formulier gefilterd?. Dus niet bij de gebeurtenis <Bij laden>, want die wordt vrij vroeg gestart. En die laadt de complete recordset, en begint dus bij het eerste record. Zou je dezelfde code bij <BIj aanwijzen> zetten, dan zou het m.i. moeten werken, want die triggert pas ná het filter.

Veel (maar dan ook echt veel) beter is het om de query (dus het formulier) te filteren d.m.v. het aanpassen van de onderliggende query. Dat doe je dan met een Querydef uit de Querydefs collectie. Dus eerst een tijdelijke query definiëren, daarna de query filteren en daarna de query toewijzen aan de querydef. Daardoor krijgt het formulier een hard gefilterde query, die altijd werkt. Een voorbeeldje heb ik vandaag nog gepost in een ander draadje.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan