Waardes uit een Kolom binnen interval krijgen

Status
Niet open voor verdere reacties.

JorisVos

Gebruiker
Lid geworden
20 apr 2011
Berichten
19
Hallo,

Ik heb dus een kolom met 15k lijnen met waardes tussen de 903(jaar 2009 week3) tot 1118 (jaar 2011 week18) ik wil graag een query maken waarbij een gebruiker van acces kan aangeven tusssen welke waardes hij zijn lijnen wilt krijgen. Dus Bijvoorbeeld als invoer from: 1011 till: 1018. en dan moeten de lijnen komen die hier tussen liggen. Kan iemand mij misschien op de goede weg helpen.

mvg,
Joris
 
waar mensen toch het woord lijnen vandaan halen..... Je wilt uiteraard records selecteren, die binnen een reeks vallen. Aangezien je codes een beetje onhandig zijn opgebouwd (3 en 4 cijfers) zou ik je eerst aanraden om van de kolom een Tekstkolom te maken, als dat nog mogelijk is (sleutelreferenties en zo), en via een bijwerkquery de kolom met exact 4 tekens te vullen. Als dat gedaan is, kun je vrij simpel een criterium maken. Dat wordt dan iets als: BETWEEN [Typ de begincode] AND [Typ de eindcode]
 
Die waardes worden upgeload vanuit een ERP systeem en kunnen niet veranderd worden. Het is de bedoeling een filter te maken die alle waardes tussen die 2 waardes weergeeft. Ik heb nu deze functie ingevoerd maar hij neemt inderdaad geen 0 mee, is dit het probleem.

Function Getalletje(Veld As String)
Dim i As Byte, x As Byte, iWaarde As Long

i = 1
Do Until IsNumeric(Mid(Veld, i, 1))
If i = Len(Veld) Then
Exit Function
End If
i = i + 1
Loop

Do While IsNumeric(Mid(Veld, i, 1)) And 3 <= x <= 4
iWaarde = iWaarde & Mid(Veld, i, 1)
i = i + 1
Loop
Getalletje = iWaarde
End Function
 
Wat wil je bereiken met deze functie?
 
Ik probeer een filter te maken die de records weergeeft tussen het interval dta aangegeven wordt.
een kolom met 15.000 records met waardes tussen de 903 en 1119, hiertussen een interval aangeven met behulf van 2 knoppen en dan de desbetreffende records eruit laten rollen.
 
Heb je het al met mijn voorgestelde criterium geprobeerd? Want op zich is het een vrij simpel probleem.... Je hebt het wel over knoppen, dus ika vermoed dat je de filtering via een formulier wilt aansturen?
 
Met je voorgestelde criterium, bepaal je zelf de interval in de query. Dat is juist niet de bedoeling. De acces Tool zal door meerdere mensen gebruikt gaan worden en die moeten zelf hun interval ik moeten kunnen vullen, en dat is juist wat het lasting maakt.
 
Met je voorgestelde criterium, bepaal je zelf de interval in de query. Dat is juist niet de bedoeling. De acces Tool zal door meerdere mensen gebruikt gaan worden en die moeten zelf hun interval ik moeten kunnen vullen.

Ik hoop niet dat je het erg vind als ik het niet meer snap.... Een criterium met behulp van Parameters ([Typ de begincode] en [Typ de eindcode] zijn variabele parameters) geef je gebruikers juist de ruimte om zelf een bereik in te vullen; elke keer dat je de query opnieuw uitvoert kun je andere waarden ingeven. Dat is toch wat je wilt?
 
Een filter op een query met 2 variabelen.
dus Between "A" and "B". met A en B in te vullen door de desbetreffende gebruiker op het formulier.
 
Als je met een formulier werkt, dan maak je op het formulier twee niet-afhankelijke tekstvakken voor de twee filterwaarden. In de bron van je formulier (de query dus) maak je dan een criterium, waarbij je verwijst naar het formulier:
Between [Forms]![frmFormulierNaam]![f1] And [Forms]![frmFormulierNaam]![f2]
 
Ik zag deze post en heb het zelf ook gebruikt. Ik krijg alleen telkens te zien(wat ik ook veranderd) een pop up met parameters opgeven: formulieren!subfrm_timetable!F1

kan iemand mij zeggen hoe ik ervoor zorgt dat ik niet deze pop up krijg? als ik de parameters opgeef geeft hij trouwens wel de juiste uitkomst. Ik wil echter dat ik dit bij de niet-afhankelijke button moet doen. En dat er geen pop up komt...

alvast bedankt

Gerwin Ederveen
 
Om even uit te leggen waarom je nu een waarde moet intypen, en die dan wel werkt: omdat Access het veld F1 niet kan vinden, beschouwt Access de code als een aparte parameter. En parameters gebruik je om criterium waarden op te geven waaraan een query moet voldoen. Dus zodra je de waarde intypt, en de query uit voert, zal hij de goede waarden laten zien.

Blijkbaar heb je een verwijzing gemaakt naar een tekstveld op een subformulier. Dat tekstveld heet dan F1, en het formulier [timetable]. Alleen: een subformulier staat op een hoofdformulier; en die verwijzing staat er niet bij. Als je wilt filteren op basis van een tekstveld op een subformulier, maak het criterium dan met de functie Opbouwen. (de knop met de toverstaf, of <Ctrl>+<F2> en ga dan naar <Actieve formulieren> als het formulier geopend is, of anders via het menu <Formulieren>, en klap het juiste subformulier open. Daar vind je dan een lijst met objecten op het subformulier, waar uiteraard het veld F1 ook tussen moet staan. Als je dit veld in het hoofdscherm plakt, heb je gegarandeerd de juiste syntaxis te pakken.
 
Beste michel,

ik heb exact gedaan wat je hebt gezegd en toch geeft hij nog steeds op dat ik een parameter moet invullen. Kan het zo zijn dat ik een rijbron moet invoegen? en hoe ziet zo'n rijbron of besturingselementbron eruit?

met vriendelijke groet,

Gerwin Ederveen
 
@Gerwin: Als je nog steeds om een parameter wordt gevraagd, dan klopt in het criterium de verwijzing naar het formulier niet; ofwel de formuliernaam is anders, ofwel het tekstveld op dat formulier kan niet worden gevonden. Gebruik eventueel de functie <Opbouwen> om de juiste syntax te maken. Kom je er niet uit: post dan een voorbeeldje. Overigens is het dan beter om zelf een vraag aan te maken; nu neem je toch eigenlijk de topic van TS over, en dat is niet netjes ;)

@Joris:
Is de vraag inmiddels opgelost? Dan mag je 'm op <Opgelost> zetten; zo niet: wat is nu nog het probleem?
 
Beste michel,

Ik werk eigenlijk samen met joris vandaar dat ik ook hierop reageer. Het is me nu gelukt om de parameter niet meer naar voren te laten komen(pop up). echter kan ik nu wel een waarde invullen in de f1 of f2 alleen gebeurd er dan niets. kan je me vertellen wat ik nu moet doen? moet je dan in de invulmasker oid veranderen?

gr Gerwin
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan