Toon posts:

zoeken a.h.v. meerdere invoervelden

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil het volgende mogelijk maken:

Ik heb een tabel persoon met alle mogelijke informatie. Voor al die informatie heb ik invoervelden.
Als een plaats word ingevoerd(bv amsterdam) en bij leeftijd 19. Dan worden alle mensen die 19 jaar zijn en in A'dam wonen weergegeven. (nadat op de functieknop wordt geklikt. In deze functie staat het volgende commando:

SELECT Teamlid.Ttelnr, Teamlid.Tnaam, Teamlid.Tplaats, Teamlid.Trijbewijs
FROM Teamlid
WHERE (((Teamlid.Tplaats)=[Forms]![menuteamlid]![woonplaats]) AND ((Teamlid.Trijbewijs)=[Forms]![menuteamlid]![rijbewijs]));

In dit statement staat dus zoek alle teamleden waar woonplaats en rijbewijs in het invoerveld staan.

AND of OR helpt beide niet. EN ALS ik AND of OR gebruik dan mag ik het veld rijbewijs bijvoorbeeld niet leeg maken. Anders zoekt ie op mensen met geen rijbewijs. en dat moet ik niet altijd hebben.

Snappen jullie mijn probleem? hoe kan ik het makkelijk oplossen?

  • whoami
  • Registratie: December 2000
  • Laatst online: 20:22
Query dynamisch opbouwen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Op donderdag 11 juli 2002 15:44 schreef whoami het volgende:
Query dynamisch opbouwen.
Bedankt voor je hulp.. maar ik ben niet een SUPER expert. Kan je me iets meer vertellen hoe ik dat doe? en wat het inhoud? of ben ik erg lastig?

  • whoami
  • Registratie: December 2000
  • Laatst online: 20:22
Je gaat gaan kijken welke velden er ingevuld zijn, en als veld x ingevuld is, ga je je where-clause gaan uitbreiden met een check op veld x.

https://fgheysels.github.io/


Verwijderd

Topicstarter
heb je geen voorbeeldcode? ;-)

  • whoami
  • Registratie: December 2000
  • Laatst online: 20:22
Omdat ik in een goede bui ben:

[pseudo-code]
code:
1
2
3
4
5
6
7
8
9
qryPersons.SQL.Text := 'SELECT * FROM tblPersons' +
                 'WHERE 1 = 1 ';

if NaamVeld.IsIngevuld() then begin
  qryPersons.SQL.Text = qryPersons.SQL.Text +
                ' AND tblPersons.Name LIKE :p_Naam';
  qryPersons.Parameters['p_Naam'] = Naamveld.Text;
end;
...

[/pseudo-code]

https://fgheysels.github.io/


  • noNamer
  • Registratie: Juli 2000
  • Niet online
Ter Info

Het gaat hier helaas om Acces / VB.
Het commando om een SQL statement uit te voeren lijkt te gaan via DoCmd.RunSQL

Helaas lijkt het erop alsof dat commando er een eigen interprentatie van SQL op nahoud, want bij een simpele
Do.Cmd.RunSQL(SELECT * FROM Teamlid;)
wordt er tijdens het runnen van het access 'programma' de melding gegeven dat er een SQL commando moet worden opgegeven.

Verwijderd

Syntax

DoCmd.RunSQL sqlstatement[, usetransaction]

The RunSQL method has the following arguments.

sqlstatement A string expression that's a valid SQL statement for an action query or a data-definition query. It uses an INSERT INTO, DELETE, SELECT...INTO, UPDATE, CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, or DROP INDEX statement. Include an IN clause if you want to access another database.

usetransaction Use True (-1) to include this query in a transaction. Use False (0) if you don't want to use a transaction. If you leave this argument blank, the default (True) is assumed.
M.a.w. je mag dus niet eens een SELECT-statement in RunSQL stoppen...

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 23:27

mulder

ik spuug op het trottoir

Op zaterdag 13 juli 2002 08:46 schreef noNamer het volgende:
Ter Info

Het gaat hier helaas om Acces / VB.
Het commando om een SQL statement uit te voeren lijkt te gaan via DoCmd.RunSQL

Helaas lijkt het erop alsof dat commando er een eigen interprentatie van SQL op nahoud, want bij een simpele
Do.Cmd.RunSQL(SELECT * FROM Teamlid;)
wordt er tijdens het runnen van het access 'programma' de melding gegeven dat er een SQL commando moet worden opgegeven.
VBA:
Dim dbs As Database
Dim rst As Recordset

sQuery = "SELECT bla FROM bla WHERE bla = 'bla'"
Set dbs CurrentDb
Set rst = dbs.OpenRecordset(sQuery)

oogjes open, snaveltjes dicht


  • whoami
  • Registratie: December 2000
  • Laatst online: 20:22
Op zaterdag 13 juli 2002 08:46 schreef noNamer het volgende:
Ter Info

Helaas lijkt het erop alsof dat commando er een eigen interprentatie van SQL op nahoud, want bij een simpele
Do.Cmd.RunSQL(SELECT * FROM Teamlid;)
wordt er tijdens het runnen van het access 'programma' de melding gegeven dat er een SQL commando moet worden opgegeven.
code:
1
DoCmd.RunSQL ("SELECT * FROM Table")

Volgens dat stukje help dat Debbus postte, neemt RunSQL een string expression that is a valid SQL-statement als argument. Je zult dus quotes moeten gebruiken.
Syntax fouten zijn mogelijk.

https://fgheysels.github.io/

Pagina: 1