VBA access probleme d'incompatibilité

Fermé
bema93 - 13 août 2008 à 15:15
 Utilisateur anonyme - 13 août 2008 à 20:25
Bonjour, toule monde
j'ai un probleme en VBA access
je souhaite recuperer le resultat d'une requete selection dans une variable et le manipuler comme un entier (notamment faire une operation de comparaison) mais il m'affiche "Icompatibilite de type"
quelqu'un a une idée de comment résoudre ce probème

'recuperation de la valeur de la requête
Dim qdfTmp As QueryDef
Dim res_req As String
REQ = CurrentDb.CreateQueryDef("Nom_requete", "SELECT max(entier) FROM import;")
Set qdfTmp = CurrentDb.QueryDefs("Nom_requete")
res_req = qdfTmp.SQL

Dim I As Long ' la valuer avec laquelle je vais comparer

Do While I <= CLng(res_req) <==CA COINCE ICI !!!!
###########
corps de la boucle
###########
Loop

A noter que la fonction Val ne fonctionne pas non plus.
Merci a tous ceux et celles qui peuvent m'aider.

1 réponse

Utilisateur anonyme
13 août 2008 à 20:25
Bonjour,

Sub Test()

    Dim I As Long

    Do While I <= CLng(res_req) '<==CA COINCE ICI !!!!
        '###########
        DoEvents
        'corps de la boucle
        '###########
    Loop

End Sub
'


' Dans votre exemple, I est déclaré mais pas initialisé !!!

' res_req est déclaré comme une chaine de caractère et est
' initialisé avec la chaine formant la requête SQL
' donc, ici vous récupéré la chaine de caractère qui forme
' la requête SQL et non le résultat de la requête.

' Si je comprends ce que vous tentez de faire :
Sub Cherche()

    Dim rs As Recordset, Resultat As Long
    
    Dim qdfTmp As QueryDef
    Dim res_req As String
    REQ = CurrentDb.CreateQueryDef("Nom_requete", "SELECT max(entier) FROM import;")
    
    Set rs = CurrentDb.OpenRecordset("Nom_requete")
    rs.MoveLast
    rs.MoveFirst
    Resultat = rs.RecordCount
    
    Do While I <= Resultat
        DoEvents
    Loop
    
End Sub
'
-1