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.
TopQuerDef 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 FunctionTop
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