Dlookup in variabel

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.682
Ik wil in de tabel "mutual" de waarde uit kolom 7 opzoeken en op die manier de straat in de variabel VI steken
Ik dacht het met deze code te kunnen doen, maar kreeg een fout

Code:
Private Sub Knop85_Click()
    Dim VI As String
    
    VI = DLookup("Straat", "Mutual", "Naam = " & Forms!Zoek_voorschrift!LstClient.Column(7))

Forms!Zoek_voorschrift!LstClient.Column(7) geeft wel degelijk de juiste inhoud.

Ik wil eigenlijk ook de postnummer en straat hebben... kan dat in 1 commando of moet ik bovenstaande code telkens opnieuw schrijven voor elk gegeven ik wens te krijgen uit de Dlookup functie

Bedankt

JP
 
Of zo:
PHP:
VI = DLookup("Straat", "Mutual", "Naam = "" Forms!Zoek_voorschrift!LstClient.Column(7)""")
of zo:
PHP:
VI = DLookup("Straat", "Mutual", "Naam = """ & Me.LstClient.Column(7) & """")
 
Moet ik voor andere waarden telkens een nieuwe dlookup maken of kan dat in 1 commando?
 
Hollands en Vlaams is dus blijkbaar toch niet dezelfde taal... ;)

Via:

VI = DLookup("Straat", "Mutual", "Naam = """ & Me.LstClient.Column(7) & """")

haal ik uit Mutual de waarde van "Straat"
Ik moet ook "gemeente", "postnummer" hebben

Schrijf ik dan bvb

VI_1 = DLookup("gemeente", "Mutual", "Naam = """ & Me.LstClient.Column(7) & """")
VI_2 = DLookup("postnummer", "Mutual", "Naam = """ & Me.LstClient.Column(7) & """")

Ok kan alles op 1 lijn geschreven worden?

Groetjes
JP
 
Op die fiets :). Ja, met DLOOKUP haal je maar één waarde uit één veld. Dus wil je meer waarden,dan zul je meer acties moeten uitvoeren. In dat geval is een Recordset waarschijnlijk makkelijker en sneller.
 
ik schrijft in het "Bij laden" event van het rapport:

Me.Txt_mutual_straat = DLookup("Straat", "Mutual", "Naam = "" Forms!Zoek_voorschrift!LstClient.Column(7)""")

waarbij Me.Txt_mutual_straat een veld is op het rapport
en Forms!Zoek_voorschrift!LstClient.Column(7) me de waarde "CM" oplevert

in de tabel mutual komt CM wel degelijk voor

waarom krijg ik een "Null" als resultaat in het veld op het rapport?

Bedankt
JP
 
Ik vind de werkwijze bijzonder onhandig; een rapport kun je het beste baseren op een query. Zorg ervoor dat alle velden en waarden in die query zitten, en je probleem is opgelost.
 
Dat is hoogst waarschijnlijk ook zo Michel maar in dat rapport is het het enige wat niet werkt, wil ik het meteen querry doen dan moet ik gans de boel weer omgooien en daar heb ik geen tijd/zin in, dus.... graag gewoon een oplossing voor de sutuatie.. dikke merci
 
Ik vrees dat er een syntaxfout is in de Dlookup lijn
Als ik schrijf:
? DLookup("Straat", "Mutual", "ID = 212")
dan krijg ik perfect wat ik moet hebben
als ik vraag:
? Forms!Zoek_voorschrift!LstClient.Column(7)
krijg ik de op te zoeken, correcte waarde
Schrijf ik dan:
? DLookup("Straat", "Mutual", "Naam = "" Forms!Zoek_voorschrift!LstClient.Column(7)""")
krijg ik Null

dus, ik denk dat er iets fout zit in die lijn....
iemand een idee?

Bedankt alvast
JP
 
Het ‘omwerken’ van je rapport kost ongetwijfeld minder tijd dan wat je nu investeert in een hopeloze oplossing. Soms moet je je verlies nemen en constateren dat je het anders moet aanpakken. Uiteindelijk gaat het om een perfect werkend systeem, niet om het in stand houden van een kreupele lapwerkoplossing. Een systeem maak je voor de toekomst, en dan mag niet meetellen dat je er nu even geen zin in hebt. Misschien hard, maar soms moet dat een keer tegen je gezegd worden.

Hoe dan ook: de DLOOKUP die je in de twee voorbeelden geeft, zijn verschillend. DLOOKUP werkt prima als de op te zoeken waarde in het criterium uniek is. In het geval “ID=212” is dat het geval. In het geval “Naam = "" & Forms!Zoek_voorschrift!LstClient.Column(7) & """")” is naam dat waarschijnlijk niet. Probeer DLOOKUP functies altijd met het sleutelveld.
 
Met een recordset en bloed zweet en tranen is het probleem opgelost... en ik maar denken dat je recoerdsets zoveel mogelijk moet vermijden... moet je die in feite, eens je ze gebruikt hebt ook op de een of andere manier leeg maken of verwijderen of wat dan ook?
 
Recordsets zijn prima, om niet te zeggen fantastisch om mee te werken. Wie jou heeft gezegd dat je ze zoveel mogelijk moet vermijden heeft een gaatje op de verkeerde plek zitten. Ze worden automatisch (ook uit het geheugen) verwijderd als de routine klaar is. Ze zijn dus puur virtueel, en daarom turbosnel in het gebruik. Moet je natuurlijk niet eerst honderdduizend records in willen laden, maar dan ga je volledig voorbij aan de kracht ervan. In jouw geval: een beperkte (een record) recordset maken en daarmee werken.
 
Een goede programmeur sluit altijd alles wat hij/zij heeft geopend. Dat geldt dus ook voor recordsets.

Tardis
 
Een goede programmeur sluit altijd alles wat hij/zij heeft geopend. Dat geldt dus ook voor recordsets.
@Tardis: Dat is een beetje onzin, want jij weet donders goed dat VBA zelf alles netjes opruimt. Alle regels met Set obj = Nothing zijn overbodig, tenzij je het object in dezelfde routine nog een keer wil gebruiken. En zelfs dan nog... neemt niet weg dat het natuurlijk wel mag. En recordsets sluit ik dus meestal nog wel, je wilt een tabel niet nodeloos gelockt houden, maar de rest is overbodig.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan