Bonjour à tous ,
Ce code fait planter (une fois / 3 en gros) la base Access (fermeture de l'appli (comme un docmd.close))... Aucun message d'erreur, pas possibilité de capturer l'erreur avec un on error etc...
Rien d'inscrit dans le journal de Mr Watson, de l'observateur d'evenements ...
On execute le code et bing ca ferme. J'ai divisé la requete en 4 (en additionnant les 4 fois where machin=1 et machin=2 et etc... mais ca plante pareil des le premier. J'ai retiré le count(*) en mettant une boucle (while not RS.eof avec un indice i) ... ca plante pareil ..
Une idée les gens ?
Quand ca plante pas, l'instruction est correctement executée et on trouve le bon nombre. Donc un coup ca plante un coup non avec la meme demande !
1 2 3 4 5 6
| Option explicit
Dim DB1 As DAO.Database
Dim RS1 As DAO.Recordset
Dim SQL4 As String
Set DB1 = DBEngine.OpenDatabase("N:\PA1\Tables\Clients_local.mdb", False, False)
Set RS1 = DB1.OpenRecordset("Select count(*) as NB From Request Where (rqrefapt1 = """ & aptID & """ or rqrefapt2 = """ & aptID & """ or rqrefapt3 = """ & aptID & """ or rqrefapt4 = """ & aptID & """)" & SQL4) |
L'instruction qui fait planter c'est celle ci :
Set RS1 = DB1.OpenRecordset("Select count(*) as NB From Request Where (rqrefapt1 = """ & aptID & """ or rqrefapt2 = """ & aptID & """ or rqrefapt3 = """ & aptID & """ or rqrefapt4 = """ & aptID & """)" & SQL4)
SQL4="" pour info
Partager