Avatar billede juks Novice
25. oktober 2002 - 11:09 Der er 12 kommentarer og
1 løsning

where betingelse i query fra text-box

hej!
jeg skal udskrive en rapport der bygger på en forspørgelse.
men man skal kunne udskrive en faktura på baggrund af 3 konto nr(type = text). der er indtastet i et felt seperet af komma. hvordan får jeg det ind i forspørgelsen.
eksepel
--------
text = 12,13,14
where = 12 or 13 or 14
------------------
Avatar billede proaccess Nybegynder
25. oktober 2002 - 11:13 #1
Det nemmeste for dig er at bruge IN

SELECT ...
FROM ...
WHERE feltNavn IN (text)
Avatar billede proaccess Nybegynder
25. oktober 2002 - 11:14 #2
bliver betragtet som:

-----
text = "12,13,14"
-----

SQL:
SELECT ...
FROM ...
WHERE feltNavn IN (12,13,14)
Avatar billede juks Novice
25. oktober 2002 - 11:17 #3
men in der vil den jo også tage 512 513 514
Avatar billede proaccess Nybegynder
25. oktober 2002 - 11:20 #4
blander du det nu ikke sammen med like eller lignende...?

IN sammenligner med en liste af enkeltstående værdier, som skal være med på listen, før end der sker en udvælgelse!

512 er ikke med i din liste af værdier (12,13,14) og kommer derfor IKKE med !
Avatar billede juks Novice
25. oktober 2002 - 11:22 #5
ok takker
Avatar billede juks Novice
25. oktober 2002 - 11:40 #6
hvis jeg gerne vil kunne skive "alle" er det så muligt at lave det så den fjerner where eller sætter den til ""
Avatar billede proaccess Nybegynder
25. oktober 2002 - 11:48 #7
Så skal du have fat i noget VBA-programmering, det kan ikke klares i "ren" sql...
Du skal nemlig til at opbygge din SQL dynamisk, alt efter om der står "Alle" eller en liste af værdier.

Den nemmeste vil være helt at udelade WHERE-delen hvis der står "Alle"
Avatar billede juks Novice
25. oktober 2002 - 11:51 #8
du har ikke ren tilfældigt en eksempel på dette da jeg aldrig har programmeret en sql dynamisk og syntes lidt at det sql i VBA har det med at "drille"  når jeg skal bruge det ..
Avatar billede proaccess Nybegynder
25. oktober 2002 - 12:10 #9
Hvis du har en formular med en knap (ved navn btnSQL) og et tekstfelt (text1)

Private Sub btnSQL_Click()
  Dim strSQL As String
  if me.text1="Alle" Then
    strSQL = "SELECT ... FROM ..."
  else
    strSQL = "SELECT ... FROM ... WHERE feltNavn IN (" & me.text1 & ")"
  End If
  Reports("rapportNavn").RecordSource = strSQL
End Sub

Jeg er lidt i tvivl om tilgangen til rapporten, men princippet er ok!
Avatar billede juks Novice
25. oktober 2002 - 12:31 #10
ok takker endnu engang
Avatar billede juks Novice
28. oktober 2002 - 10:47 #11
proi hvis jeg sætter "650-22,211-23" ind i mit felt virker min sql ikke jeg brug den sætnin´g her .
------
WHERE (((qbe_timepriser_alle_pr_kommune.Kontonr) In ([Formularer]![frm_vaelg_udskrift]![Tekst33]))
------------
hvis du tager konto 650-22 eller 211-23 enekeltvis  så virker det fint
Avatar billede proaccess Nybegynder
28. oktober 2002 - 10:53 #12
650-22 er jo en tekst-variabel...

prøv at indsætte:
'650-22','211-23'
Avatar billede juks Novice
28. oktober 2002 - 10:57 #13
nope det virker ikke heller ikke med kun een og feltet(qbe_timepriser_alle_pr_kommune.Kontonr) er jo også tekst
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester