Avatar billede martens Guru
21. august 2023 - 21:30 Der er 1 løsning

Query med streng fra formular

Fremfor at oprette en masse forespørgsler vil jeg oprette én dynamisk forespørgsel, der er baseret på en streng der indsættes i et tekstfelt "SQL-string" på formularen "frm_selector"

Når der så klikkes på de forskellige knapper på formularen, ændres strengværdien i tekstfeltet "SQL-String" afhængigt af hvilken knap, der klikkes på.

Men jeg kan desværre ikke få det til at virke som jeg ønsker i min SQL-sætning.
__
kode der virker :
SELECT Last(Forespørgsel4.OrgEnh) AS OrgSAP, Last(Forespørgsel4.Department) AS GEOPLA, Last(Forespørgsel4.StabsNavn) AS Stabsnavn, Forespørgsel4.MA, Last(Forespørgsel4.FuldeNavn) AS Navn, Last(Forespørgsel4.tlf) AS Tlf, Last(Forespørgsel4.SidsteOfStilling1) AS SidsteOfSidsteOfStilling1, Last(Forespørgsel4.SidsteOfOrganisationsenhed) AS SidsteOfSidsteOfOrganisationsenhed, Last(Forespørgsel4.SidsteOfStilling) AS SidsteOfSidsteOfStilling, Last(Forespørgsel4.Stilling1) AS Funktion, Last(Forespørgsel4.Roles) AS [Rolle/r]
FROM Forespørgsel4
GROUP BY Forespørgsel4.MA
HAVING (((Last(Forespørgsel4.Department))='fsn aalborg' Or (Last(Forespørgsel4.Department))='atw')) OR (((Last(Forespørgsel4.StabsNavn))='atw'))
ORDER BY Last(Forespørgsel4.StabsNavn);

--- kode jeg  bøvler med :
-- start kode :

SELECT Last(Forespørgsel4.OrgEnh) AS OrgSAP, Last(Forespørgsel4.Department) AS GEOPLA, Last(Forespørgsel4.StabsNavn) AS Stabsnavn, Forespørgsel4.MA, Last(Forespørgsel4.FuldeNavn) AS Navn, Last(Forespørgsel4.tlf) AS Tlf, Last(Forespørgsel4.SidsteOfStilling1) AS SidsteOfSidsteOfStilling1, Last(Forespørgsel4.SidsteOfOrganisationsenhed) AS SidsteOfSidsteOfOrganisationsenhed, Last(Forespørgsel4.SidsteOfStilling) AS SidsteOfSidsteOfStilling, Last(Forespørgsel4.Stilling1) AS Funktion, Last(Forespørgsel4.Roles) AS [Rolle/r]
FROM Forespørgsel4
GROUP BY Forespørgsel4.MA

// værdien er angivet her : [formularer]![frm_selector]![SQL-string]
//

### Tekststreng på formularen "frm_select" :

HAVING (((Last(Forespørgsel4.Department))='fsn aalborg' Or (Last(Forespørgsel4.Department))='atw')) OR (((Last(Forespørgsel4.StabsNavn))='atw'))

###

ORDER BY Last(Forespørgsel4.StabsNavn);

---- slut kode-


Det er værdien mellem ###´erne jeg gerne vil hente fra "frm_select" og indsætte i SQL-koden.

så det er ét eller andet med at få kædet SQL-koden sammen med tekst-stregen fra formularens tekstfelt.

Men hvordan kan jeg gøre dette ?

Håber der er et kvikt hoved, der kan hjælpe mig på vej.

På forhånd tak !
mvh martens
Avatar billede Gustav Ekspert
22. august 2023 - 07:51 #1
Det kunne være noget i denne stil, hvor du samler SQL-strengen og putter den i din forespørgsel, inden du kalder denne:
Dim Query   As DAO.QueryDef
Dim Sql    As String

Sql = _
    "SELECT Last(Forespørgsel4.OrgEnh) AS OrgSAP, Last(Forespørgsel4.Department) AS GEOPLA, Last(Forespørgsel4.StabsNavn) AS Stabsnavn, " & _
    "Forespørgsel4.MA, Last(Forespørgsel4.FuldeNavn) AS Navn, Last(Forespørgsel4.tlf) AS Tlf, Last(Forespørgsel4.SidsteOfStilling1) AS SidsteOfSidsteOfStilling1, " & _
    "Last(Forespørgsel4.SidsteOfOrganisationsenhed) AS SidsteOfSidsteOfOrganisationsenhed, Last(Forespørgsel4.SidsteOfStilling) AS SidsteOfSidsteOfStilling, " & _
    "Last(Forespørgsel4.Stilling1) AS Funktion, Last(Forespørgsel4.Roles) AS [Rolle/r] " & _
    "FROM Forespørgsel4 " & _
    "GROUP BY Forespørgsel4.MA " & _
    "{0} " & _
    "ORDER BY Last(Forespørgsel4.StabsNavn);"

Sql = Replace(Sql, "{0}", Forms![frm_selector]![SQL-string])

Set Query = CurrentDb("YourQuery")
Query.SQL = Sql
Query.Close
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