Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1393 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  probleme DLookUp

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme DLookUp

n°1046156
Colegram
Posté le 13-04-2005 à 16:53:34  profilanswer
 

Bonjour,
J'ai un problème dont je n'arrive pas a me sortir :
J'ai un formulaire "devis" avec une date de devis et un nom de société.
Je veux pouvoir supprimer ce devis de ma table "GlobalDevis" dans lequel j'ai plusieurs sociétés pour la date considérée.
Je veux donc faire un DLookUp avec 2 critères : un de date (la date du devis) et un de texte (le nom de la société)
Si je fais un DLookUp pour chaque critere, ça marche : il trouve la première occurence de mon Numéro d'index de la table :
 
numéro = DLookup("[IndexDevGlob]", "GlobalDevis", _
"[Société] = " & "'" & Me![NomSociété] & "'" )
>>> IndexDevGlob = 20, donc il trouve la 1ere occurence du nom de la socièté
 
ou si je fais :
numdedate = DLookup("[IndexDevGlob]", "GlobalDevis", _
"[DateGlob] = " & Format(Me![DateGlob], "\#mm-dd-yyyy\#" ))
>>> IndexDevGlob = 17, donc il trouve la 1ere occurence de la date
 
Si je fais :
vrainuméro = DLookup("[IndexDevGlob]", "GlobalDevis", _
"[DateGlob] = " & Format(Me![DateGlob], "\#mm-dd-yyyy\#" ) _
And "[Société] = " & "'" & Me![NomSociété] & "'" )
 
ça me dit : erreur d'execution 13 >>>incompatibilité de type !  
Quelqu'un peut-il m'expliquer ou je fais une erreur ?

mood
Publicité
Posté le 13-04-2005 à 16:53:34  profilanswer
 

n°1046169
FlorentG
Unité de Masse
Posté le 13-04-2005 à 16:58:28  profilanswer
 

Déjà un nom de société avec apostrophe va planter grave :

"[Société] = """ & Me![NomSociété] & """"


Aussi y'a une concaténation qui manque entre le Format() et le "AND" :

vrainuméro = DLookup("[IndexDevGlob]", "GlobalDevis", _
"[DateGlob] = " & Format(Me![DateGlob], "\#mm-dd-yyyy\#" ) _
" AND [Société] = """ & Me![NomSociété] & """" )

n°1046218
Colegram
Posté le 13-04-2005 à 17:11:38  profilanswer
 

Merci FlorentG pour la réponse ultra rapide.
j'avais déjà essayé en mettant une apostrophe avant AND.
J'ai copié collé ton bout de code dans mon programme et il me dit soit "erreur de progragrammation, soit il manque un séparateur sur :
" AND [Société] = """
Bref ça ne marche tjs pas
et ça reste en rouge

n°1046231
Colegram
Posté le 13-04-2005 à 17:15:01  profilanswer
 

Ceci dit , sil y a une autre méthode en VBA pour trouver un enregistrement avec 2 criteres, je suis preneur...

n°1046381
Colegram
Posté le 13-04-2005 à 18:08:30  profilanswer
 

Y'a plus personne pour me repondre ?
C'est dommage, ça partait bien !

n°1046632
Colegram
Posté le 13-04-2005 à 22:02:20  profilanswer
 

Après bien des essais, j'ai enfin trouvé la bonne syntaxe (en tout cas celle qui marche sur mon ordi)....
Je la retranscris ici, ça peut en aider d'autres :
 
vrainuméro = DLookup("[IndexDevGlob]", "GlobalDevis", _
"[DateGlob] = " & Format(Me![DateGlob], "\#mm-dd-yyyy\#" )& _
" AND [Société] = " & " ' " & Me![NomSociété] & " ' " )
 
Sans oublier le & commercial après le format de date et les apostrophes entre les guillemets (j'ai rajouté des espaces pour mieux les montrer).
Merci pour tout.

n°1046787
FlorentG
Unité de Masse
Posté le 13-04-2005 à 23:37:23  profilanswer
 

Ah merde je suis con, j'ai oublié les '&'. Par contre, t'as pas corrigé les ' qu'il faut transformer en "" :o

n°1046837
Colegram
Posté le 14-04-2005 à 00:01:40  profilanswer
 

Ben, ecoute, ça marche comme ça... je n'y touche plus !
par contre, j'ai un autre problème (tu t'es aperçu que je débute !) : je ne sais pas comment actualiser au fur et à mesure ma table pour chercher les autres occurrences de la même société a la même date.
De plus quand il ne trouve pas de N° correspondant, il n'accepte pas la valeur Null !

n°1046840
FlorentG
Unité de Masse
Posté le 14-04-2005 à 00:03:09  profilanswer
 

DLookup ne retourne qu'une ligne je crois. Faut utiliser un RecordSet pour pouvoir fouiller dans plusieurs enregistrements :(

n°1046848
Colegram
Posté le 14-04-2005 à 00:07:10  profilanswer
 

Voila ce que j'ai fait : c'est ans doute du bricolage mais je n'ai pas trouvé mieux :
Dim numéro As Integer
1 numéro = DLookup("[IndexDevGlob]", "GlobalDevis", _
"[DateGlob] = " & Format(Me![DateGlob], "\#mm-dd-yyyy\#" ) & _
" AND [Société] = " & "'" & Me![NomSociété] & "'" )
If IsNull(numéro) Then GoTo 2
Dim supprim As DAO.Recordset
Set supprim = CurrentDb.OpenRecordset("GlobalDevis", DBOpenDynaset)
    supprim.MoveFirst
    While supprim("IndexDevGlob" ) <> numéro
    supprim.MoveNext
    Wend
    supprim.Delete
    supprim.Close
     
COMMENT ON ACTUALISE ???"
    GoTo 1
2 Exit_Supp_Click:


Message édité par Colegram le 14-04-2005 à 00:08:30
mood
Publicité
Posté le 14-04-2005 à 00:07:10  profilanswer
 

n°1046849
FlorentG
Unité de Masse
Posté le 14-04-2005 à 00:07:55  profilanswer
 

Dans le while, juste avant le movenext, tu peux récupérer l'enregistrement en cours

n°1046855
Colegram
Posté le 14-04-2005 à 00:14:19  profilanswer
 

Oui d'accord, mais ce que je veux, c'est boucler jusqu'à ce qu'il n'y ait plus d'enregistrement à supprimer et ne pas bloquer avec un message "utilisation incorrecte de la valeur Null" quand il ne trouve plus d'enregistrement.

n°1046858
FlorentG
Unité de Masse
Posté le 14-04-2005 à 00:15:47  profilanswer
 

Y'a une propriété EOF du recordset pour voir si t'es à la fin

n°1046866
Colegram
Posté le 14-04-2005 à 00:23:42  profilanswer
 

Je ne sais pas si j'ai bien compris ta réponse mais je ne veux pas tous les supprimer, mais seulement ceux qui ont la même société pour une date considérée :
Par exemple supprimer la société "A" à la date du 13/4 dans l'exemple ci-dessous :  
 
A 13/4
B 12/4
C 13/4
A 13/4

n°1047354
Colegram
Posté le 14-04-2005 à 14:07:17  profilanswer
 

j'ai résolu mon problème :
J'ai changé mon Integer en Variant et j'ai mis un Me.refresh.
Et ça marche.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  probleme DLookUp

 

Sujets relatifs
Petit problème d'ouverture de pop up avec window.open [RESOLU]problème avec BD XML native : eXist !!!
[resolu]Problème JS et PHPProbleme de librairie windows/linux
probleme de template avec une datagrid[C#] DataGrid : problème incompréhensible
[TomCat] Problème de context path tout bêtec++builder | Probleme de pilotage ole d'excel -> autofilter
probleme fichier cssProblème SNMP
Plus de sujets relatifs à : probleme DLookUp


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR