OVH Cloud OVH Cloud

champs mémo - type incompatible

4 réponses
Avatar
lg
Bonjour,
J'ai une erreur de "type incompatible".
Voilà, j'ai une bd avec un champs mémo. Je voudrais trouver tous les
enregistrements qui commence par "Consult%" et qui contient "%waste%" par
exemple. J'ai fait une requête et elle fonctionne. Le hic c'est que en
utilisant la même commande sql en VBA, j'ai une erreur "type incompatible.
La commande sql fonctionne avec un champ texte. Y aurait-il une façon de
faire une recherche en VBA dans un champ Mémo?
Merci à l'avance,
------------------------------------
Luc
>>lugi38@>>hotmail.com
(retirer les ">>" pour me contacter)

4 réponses

Avatar
Raymond [mvp]
Bonsoir.

si tu affichais le texte de ta requête et le code vba utilisé ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"lg" a écrit dans le message de news:

Bonjour,
J'ai une erreur de "type incompatible".
Voilà, j'ai une bd avec un champs mémo. Je voudrais trouver tous les
enregistrements qui commence par "Consult%" et qui contient "%waste%" par
exemple. J'ai fait une requête et elle fonctionne. Le hic c'est que en
utilisant la même commande sql en VBA, j'ai une erreur "type incompatible.
La commande sql fonctionne avec un champ texte. Y aurait-il une façon de
faire une recherche en VBA dans un champ Mémo?
Merci à l'avance,
------------------------------------
Luc
lugi38@>>hotmail.com
(retirer les ">>" pour me contacter)








Avatar
lg
Bonsoir,
J'utilise windows 2000 pro sp 4 et 5, et pour Access c'est la verion XP.
Voilà la requête :
'---------------
Dim db As Database
Dim rs As Recordset
Dim sql As String

Set db = Application.CurrentDb

sql = "select itemss_noref"
sql = sql & " from itemss"
sql = sql & " where ((itemss_desc2 like 'Consul%'"
sql = sql & " or itemss_desc2 like 'Keep%'"
sql = sql & " or itemss_desc2 like 'Gardez%')"
sql = sql & " and (itemss_desc2 like '%children%'"
sql = sql & " or itemss_desc2 like '%waste%'"
sql = sql & " or itemss_desc2 like '%children%'"
sql = sql & " or itemss_desc2 like '%enfant%'"
sql = sql & " or itemss_desc2 like '%dispose%')"
sql = sql & ")"
Set rs = db.OpenRecordset(sql)
rs.MoveFirst
Do While Not rs.EOF
sql = "delete from itemss"
sql = sql & " where itemss_noref = " & rs("itemss_noref")
db.Execute (sql)
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
'---------------
------------------------------------
Ça me donne l'erreur 13, Incompatibilité de type

Merci,
Luc
lugi38@>>hotmail.com
(retirer les ">>" pour me contacter)



"Raymond [mvp]" a écrit dans le message de
news:
Bonsoir.

si tu affichais le texte de ta requête et le code vba utilisé ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"lg" a écrit dans le message de news:

Bonjour,
J'ai une erreur de "type incompatible".
Voilà, j'ai une bd avec un champs mémo. Je voudrais trouver tous les
enregistrements qui commence par "Consult%" et qui contient "%waste%"
par


exemple. J'ai fait une requête et elle fonctionne. Le hic c'est que en
utilisant la même commande sql en VBA, j'ai une erreur "type
incompatible.


La commande sql fonctionne avec un champ texte. Y aurait-il une façon de
faire une recherche en VBA dans un champ Mémo?
Merci à l'avance,
------------------------------------
Luc
lugi38@>>hotmail.com
(retirer les ">>" pour me contacter)












Avatar
Raymond [mvp]
Bonjour.

modifie un peu ta procédure comme ceci:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
.....
remplace tous les % par *
supprime le rs.MoveFirst qui ne sert à rien
rajoute un test si aucun enregistrement n'est ramené
Set rs = db.OpenRecordset(sql)
If rs.BOF Then ......

je viens de faire un test et ça fonctionne, mais tes champs sont-ils bien
orthographiés ?
il manque le ; en fin mais ce n'est pas obligatoire.

il peut y avoir d'autres raisons, mais sans voir la base c'est difficile.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"lg" a écrit dans le message de news:
%
Bonsoir,
J'utilise windows 2000 pro sp 4 et 5, et pour Access c'est la verion XP.
Voilà la requête :
'---------------
Dim db As Database
Dim rs As Recordset
Dim sql As String

Set db = Application.CurrentDb

sql = "select itemss_noref"
sql = sql & " from itemss"
sql = sql & " where ((itemss_desc2 like 'Consul%'"
sql = sql & " or itemss_desc2 like 'Keep%'"
sql = sql & " or itemss_desc2 like 'Gardez%')"
sql = sql & " and (itemss_desc2 like '%children%'"
sql = sql & " or itemss_desc2 like '%waste%'"
sql = sql & " or itemss_desc2 like '%children%'"
sql = sql & " or itemss_desc2 like '%enfant%'"
sql = sql & " or itemss_desc2 like '%dispose%')"
sql = sql & ")"
Set rs = db.OpenRecordset(sql)
rs.MoveFirst
Do While Not rs.EOF
sql = "delete from itemss"
sql = sql & " where itemss_noref = " & rs("itemss_noref")
db.Execute (sql)
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
'---------------
------------------------------------
Ça me donne l'erreur 13, Incompatibilité de type

Merci,
Luc


Avatar
lg
Bonjour,
Je vais essayer ça.
Merci beaucoup,
Luc
'--------------

"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

modifie un peu ta procédure comme ceci:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
.....
remplace tous les % par *
supprime le rs.MoveFirst qui ne sert à rien
rajoute un test si aucun enregistrement n'est ramené
Set rs = db.OpenRecordset(sql)
If rs.BOF Then ......

je viens de faire un test et ça fonctionne, mais tes champs sont-ils bien
orthographiés ?
il manque le ; en fin mais ce n'est pas obligatoire.

il peut y avoir d'autres raisons, mais sans voir la base c'est difficile.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"lg" a écrit dans le message de news:
%
Bonsoir,
J'utilise windows 2000 pro sp 4 et 5, et pour Access c'est la verion XP.
Voilà la requête :
'---------------
Dim db As Database
Dim rs As Recordset
Dim sql As String

Set db = Application.CurrentDb

sql = "select itemss_noref"
sql = sql & " from itemss"
sql = sql & " where ((itemss_desc2 like 'Consul%'"
sql = sql & " or itemss_desc2 like 'Keep%'"
sql = sql & " or itemss_desc2 like 'Gardez%')"
sql = sql & " and (itemss_desc2 like '%children%'"
sql = sql & " or itemss_desc2 like '%waste%'"
sql = sql & " or itemss_desc2 like '%children%'"
sql = sql & " or itemss_desc2 like '%enfant%'"
sql = sql & " or itemss_desc2 like '%dispose%')"
sql = sql & ")"
Set rs = db.OpenRecordset(sql)
rs.MoveFirst
Do While Not rs.EOF
sql = "delete from itemss"
sql = sql & " where itemss_noref = " & rs("itemss_noref")
db.Execute (sql)
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
'---------------
------------------------------------
Ça me donne l'erreur 13, Incompatibilité de type

Merci,
Luc