Avatar billede milvos Nybegynder
06. februar 2004 - 22:51 Der er 11 kommentarer og
3 løsninger

Dynamisk forespørgelse

Jeg vil gerne kunne lave en forespørgelse ud fra en formular. Dvs at formularen indeholder alle tabeller. Jeg vil så gerne kunne sætte flueben eller vælge fra lister og på baggrund af disse valg genereres der en formular med resultatet. Dette ville spare en masse tid, da jeg så kune skal lave 'en forespørgelsesformular og en resultatformular, alternativt skal jeg lave forespørgelsesformular med 20 knapper til hver forespørgelse. Kan dette laves fornuftigt.
Avatar billede terry Ekspert
07. februar 2004 - 11:13 #1
see an example here >
http://home1.stofanet.dk/santhel/Download/Search demo 97.zip
Avatar billede terry Ekspert
07. februar 2004 - 11:16 #2
I'm not sure what you mean with "at formularen indeholder alle tabeller"!
You cant NOT add ALL tables to a form and expect to create queries, but you can use the query builder where you can add tables and criteria to make a new query!
Avatar billede hekla Nybegynder
07. februar 2004 - 19:53 #3
terry, dit link fungerer ikke.
Avatar billede terry Ekspert
08. februar 2004 - 10:38 #4
demo 97.zip
is part of the link
Avatar billede terry Ekspert
08. februar 2004 - 10:39 #5
it only a simple search form which demonstrates how to use the filter property
Avatar billede terry Ekspert
09. februar 2004 - 19:38 #6
milvos, are you interested in getting help here?
Avatar billede milvos Nybegynder
10. februar 2004 - 06:59 #7
Ja, men jeg har ikke rigtigt fået noget svar jeg kan bruge. Jeg har hentet din "filter" database, men den kan jeg ikke bruge. Jeg vil gerne kunne generer en forspørgelse direkte i en formular ved at markerer med flueben eller vælge fra en rulleliste og så generere en forspørgelse ud fra de valgte markeringer.
Avatar billede dbconsult Nybegynder
10. februar 2004 - 10:01 #8
milvos, hvis det du skal bruge, skal være 100% dynamisk, så kræver den en hel del VBA-kodning. Alle dine tabeller skal hele tiden enumeres, således det bliver checket for nye tabeller og felter. Felt-typen skal ligeledes evalueres, da det vil have indflydelse på den/de SQL-sætninger som genereres. Men det kan fint lade sig gøre - men er altså et større arbejde end som så.

mvh /Snedker
Avatar billede milvos Nybegynder
10. februar 2004 - 11:29 #9
Hvad hvis der kun er få ja/nej tabeller der skal genereres forespørgelser på ?
Avatar billede terry Ekspert
10. februar 2004 - 15:02 #10
Milvos the idea in the form I sent CAN be used to build a dynamic SQL.

You should get an idea from this


Dim sSQL as string
Dim sFilter As String


    sSQL = "SELECT * FROM YourTable "
   
    sFilter = "WHERE 1 "
   
        If Not fldIsEmpty(Me.cboBy) Then
            sFilter = sFilter & " AND TownID = " & Me.cboBy
        End If
   
        If Not fldIsEmpty(Me.cboGade) Then
            sFilter = sFilter & " AND StreetID = " & Me.cboGade
        End If
   
        If Not fldIsEmpty(Me.cboType) Then
            sFilter = sFilter & " AND TypeID = " & Me.cboType
        End If

        If Not fldIsEmpty(Me.txtYear) Then
            sFilter = sFilter & " AND årstal = " & Me.txtYear
       
        End If

   
        If sFilter = "WHERE 1 " Then 'No Where
           
        Else
            sSQL = sSQL & sFilter
        End If
   

    'Now you have your SQL, now we need to alter the query we have alreday

    MakeQuery sSQL, "THeNameOfAnExistingQueryGoesHere"




'Not much (none) error checking but it gives an idea as to how it can be done
Function MakeQuery(rstrSQL As String, ByVal vstrPassThruQueryName As String) As Boolean
    Dim db  As Database
    Dim i  As Integer

    MakeQuery = False

    Set db = DBEngine.Workspaces(0).Databases(0)
   
    i = 0
   
    Do While db.QueryDefs(i).Name <> vstrPassThruQueryName
        i = i + 1
    Loop

    db.QueryDefs(i).SQL = rstrSQL
    db.Close

    MakeQuery = True
   
End Function
Avatar billede terry Ekspert
10. februar 2004 - 15:02 #11
and it IS NOT checked
Avatar billede terry Ekspert
11. februar 2004 - 21:09 #12
hows it going milvos?
Avatar billede milvos Nybegynder
12. februar 2004 - 07:05 #13
I am still working on it, but the points go to you
Avatar billede terry Ekspert
13. februar 2004 - 16:16 #14
thanks, you need to accept the answer then. If you need fruther help n this then drop a comment!
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