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 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