DAO QueryDef

QueryDef creëren.

Het creëeren van een QueryDef, die zonodig kan bewaard worden in de database, impliceert een SQL verklaring die de query met de betrokken eigenschappen defineert.
Anders dan bij TableDef wordt een QueryDef, eens aangemaakt en een naam toegewezen kreeg, automatisch toegevoegd aan de QuerDefs collection en op de schijf opgeslagen. Wil men werken met een tijdelijke QueryDef wijs er dan geen naam aan toe.

Function fMaakQuery(strNaamQuery As String) As Boolean
            Dim dbLokaal As DAO.Database
            Dim qdf As DAO.QueryDef
            Dim strSQL As String
            
            fMaakQuery = False
            Set dbLokaal = CurrentDb
            strSQL = "SELECT [PersNaam] " & Chr(38) & Chr(39) & Chr(32) & Chr(39) & Chr(38) _
            & "[PersVNaam] AS Naam FROM tblPersoon ORDER BY [PersNaam] " _
            & Chr(38) & Chr(39) & Chr(32) & Chr(39) & Chr(38) & " [PersVNaam];"
            
            Set qdf = dbLokaal.CreateQueryDef(strNaamQuery, strSQL)
            
            Application.RefreshDatabaseWindow
            
            fMaakQuery = True
            dbLokaal.Close
            Set dbLokaal = Nothing
            Set qdf = Nothing
            End Function
            

Informatie over de Chr-Functie.

Top

QuerDef verwijderen.

Function fVerwijderQueryDef(strNaamQuery As String) As Boolean
            Dim dbLokaal As DAO.Database
            fVerwijderQueryDef = False
                Set dbLokaal = CurrentDb
                dbLokaal.QueryDefs.Delete strNaamQuery
                Application.RefreshDatabaseWindow
                fVerwijderQueryDef = True
            dbLokaal.Close
            Set dbLokaal = Nothing
            End Function
            
Top

Execute methode.

Met de Execute methode van zowel QueryDef als Database object kan een Actie Query uitgevoerd worden.
Opgepast met de Execute methode wordt vooraf geen verwittiging gegeven van de actie op de data ! Bij DoCmd.RunSql is dit wel het geval.

Function fUitvoerenActie(strNaamQuery As String, strPersoonNaam As String, strPersoonVNaam As String _
            , strPersoonGeslacht As String, datPersoonGebDat As Date) As Boolean
            'Execute-methode van QueryDef object
            Dim dbLokaal As DAO.Database
            Dim qdfActie As DAO.QueryDef
            Dim strSQLActie As String
            fUitvoerenActie = False
            strSQLActie = "INSERT INTO tblPersonen (PersoonNaam,PersoonVNaam,PersoonGeslacht,PersoonGebDat) VALUES" _
            & "(" & Chr(39) & strPersoonNaam & Chr(39) & "," & Chr(39) & strPersoonVNaam & Chr(39) & "," _
            & Chr(39) & strPersoonGeslacht & Chr(39) & "," & Chr(35) & datPersoonGebDat & Chr(35) & ");"

            Set dbLokaal = CurrentDb
            Set qdfActie = dbLokaal.CreateQueryDef(strNaamQuery, strSQLActie)
            qdfActie.Execute
            'geeft het aantal verwerkte rijen
            MsgBox qdfActie.RecordsAffected
            dbLokaal.Close
            fUitvoerenActie = True
            Set dbLokaal = Nothing
            End Function
            

'Execute-methode van Database Object.

Function fUitvoerenActie1(strPersoonNaam As String, strPersoonVNaam As String _
            , strPersoonGeslacht As String, datPersoonGebDat As Date) As Boolean
            Dim dbLokaal As DAO.Database
            Dim strSQLActie As String
            fUitvoerenActie1 = False
            strSQLActie = "INSERT INTO tblPersonen (PersoonNaam,PersoonVNaam,PersoonGeslacht,PersoonGebDat) VALUES" _
            & "(" & Chr(39) & strPersoonNaam & Chr(39) & "," & Chr(39) & strPersoonVNaam & Chr(39) & "," _
            & Chr(39) & strPersoonGeslacht & Chr(39) & "," & Chr(35) & datPersoonGebDat & Chr(35) & ");"

            Set dbLokaal = CurrentDb
            dbLokaal.Execute strSQLActie
            'geeft het aantal verwerkte rijen
            MsgBox dbLokaal.RecordsAffected

            dbLokaal.Close
            fUitvoerenActie1 = True
            Set dbLokaal = Nothing

            End Function
            
Top
Begin