mdr,
dysorthographie on t'aime bien je crois ... lol
J'ai inséré la modification que tu m'as faite au niveau de la ligne 34
sql = "SELECT Requête2.* INTO titi FROM Requête2;" ' je détermine une requête sql qui pointe sur ta requête Acces."
mais maintenant, j'ai le message d'erreur suivant qui s'affiche :
la table titi existe déjà
C'est une erreur qui revient souvent lorsque l'on essaie d'automatiser la création de table en vba.
Sur ma base de donnée ou est insérée ma requête création de table, j'ai une fonction qui évite cette erreur :
Question1) dans ton code, comment éviter cette erreur
Question 2) crois tu que l'on peut insérer le code ci dessous dans ton code vba ..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| Option Compare Database
Public Function ExisteTable(titi As String) As Boolean ' Fonction de test existance table
'Pour fonctionner ce code nécessite la référence
' - Microsoft DAO X Object Library
On Error GoTo Err
Dim oDb As DAO.Database
Dim oQdf As DAO.TableDef
'Accède à la base de données courante
Set oDb = CurrentDb
Set oQdf = oDb.TableDefs(titi)
'Retourne Vrai
ExisteTable = True
fin:
'Libère les objets
Set oDb = Nothing
Set oQdf = Nothing
Exit Function
Err:
'Remonte toutes les erreurs différents de l'erreur 3265
'(la requête n'existe pas)
If Err.Number <> 3265 Then
Err.Raise Err.Number, Err.Source, Err.Description
End If
Resume fin
End Function
'---------------------------------------------------------------------------------------
'Fonction de suppression d'une table
'---------------------------------------------------------------------------------------
Public Sub Delete_Tbl(ByVal titi As String)
On Error Resume Next
Dim oDb As DAO.Database
Set oDb = CurrentDb
oDb.TableDefs.Delete titi
End Sub
Public Sub LanceRequeteCreation(Requête2 As String) ' lance les requetes creation de table
Dim ReqFind As DAO.QueryDef
Set ReqFind = CurrentDb.QueryDefs(Requête2) ' lancement requete creation table
ReqFind.Execute ' execution requete
Set ReqFind = Nothing ' fermeture
End Sub
Public Sub MiseAjour()
Dim stDocName As String
Dim stLinkCriteria As String
If ExisteTable("titi") Then ' Si la table recherche existe
Call Delete_Tbl("titi") ' on la supprime
End If
LanceRequeteCreation ("Requête2") ' lancement requete creation de la nouvelle table
End Sub |
Partager