Erreur d'exécution 13 : incompatibilité de type

Fermé
X300X - 1 févr. 2013 à 20:59
 Utilisateur anonyme - 1 févr. 2013 à 21:10
Bonjour,

Je suis nouveau dans le monde de la prog et de access et jai besoins d'aide pour trouver mon erreur !
J'utilise Access 2010 et voici mon code:
Private Sub Commande9_Click()
Dim baseMat As DAO.Database
Dim rsMat As DAO.Recordset
Dim sql As String

Set baseMat = CurrentDb
Set rsMat = baseMat.OpenRecordset("Database")
sql = "SELECT Database.numero, Database.Tache, Database.Champ1 FROM [Database] WHERE (((Database.numero) Like " * " & [formulaires]![recherche]![numero2] & " * ") AND ((Database.Tache) Like " * " & [formulaires]![recherche]![mot2] & " * ") AND ((Database.type) Like " * " & [formulaires]![recherche]![type2] & " * "));"
DoCmd.RunSQL sql
Set rsMat = baseMat.OpenRecordset(sql)

resultat.RowSourceType = "Table/Query"
resultat.RowSource = sql
resultat.Requery

End Sub


L'erreur est a la ligne:
sql = "SELECT Database.numero, Database.Tache, Database.Champ1 FROM [Database] WHERE (((Database.numero) Like " * " & [formulaires]![recherche]![numero2] & " * ") AND ((Database.Tache) Like " * " & [formulaires]![recherche]![mot2] & " * ") AND ((Database.type) Like " * " & [formulaires]![recherche]![type2] & " * "));"


Merci d'avance!
X300X

1 réponse

Utilisateur anonyme
1 févr. 2013 à 21:10
Bonsoir

Il faut doubler les " à l'intérieur de ta chaîne, sinon ta chaîne s'arrête au premier " rencontré. Dans ton cas, tel que tu l'as écrit, le premier morceau de la chaîne c'est "SELECT Database.numero, Database.Tache, Database.Champ1 FROM [Database] WHERE (((Database.numero) Like ". Elle s'arrête là à cause du ". Ensuite vient *, le signe de la multiplication.
Et multiplier une chaîne, ça donne bien une incompatibilité de type.
Il fallait donc écrire (entre autres possibilités) :
sql = "SELECT Database.numero, Database.Tache, Database.Champ1 FROM [Database] WHERE (((Database.numero) Like "" * "" & [formulaires]![recherche]![numero2] & "" * "") AND ((Database.Tache) Like "" * "" & [formulaires]![recherche]![mot2] & "" * "") AND ((Database.type) Like "" * "" & [formulaires]![recherche]![type2] & "" * ""));"
0