Requête

Signaler
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
-
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
-
Bonsoir à tous,

Vla...vla..J'ai un petit souçi de requête !!!
J'ai un combo, ou ce trouve des items, qui peuvent être comme :

- Toto
ou
- Pièces détachées

J'utilise cette requête pour effacer dans ma table :
Sql "DELETE FROM  " & MyTable & " WHERE  " & MyChamp & "  '" & Rep & "'"

Rep, est issue d'une InputBox, qui récupère ce que l'utilisateur a saisie...

Tous ce pas pour le mieux quand j'efface Toto, par contre quand il y a un espace dans l'item, ben, il n'y a rien qui se passe!!!

Auriez-vous une piste que je puisse suivre pour arriver à destination ?

Merci d'avance.
A+
Exploreur

 Linux a un noyau, Windows un pépin

 

12 réponses

Messages postés
149
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
23 juillet 2009

Essaie de le faire avec un LIKE à la place du =
Mais ce n'est qu'une idée
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Salut,
complémént de réponse:
LIKE '" & Trim(Rep) &...
si toute fois rep est purement...String

<hr />. 
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Ben j'essaye ce soir(car là fini boulot) et on verra bien....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Bonsoir,

Oui, Rep est purement String >> "Pièces détachées"

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Salut,

Curieux comportement, car avec le champ entouré par des quotes, qu'il y ait ou non un espace, la BDD accepte la requête (testé à l'instant).

Rep serait-il un répertoire ? Si oui, voir du côté des caractères d'échappement engendrés par les slashes.

Obtiens-tu des résultats différents avec "Piècesdétachées" et "Pièces détachées" ?

Peux-tu faire un MsgBox de la requête problématique juste avant son exécution et nous la copier ici ?
Merci





Manu


--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Arf zut ... pas vu ta réponse précédente.







Manu


--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Alors :
Sql = "DELETE FROM  " & MyTable & " WHERE  (" & _
 Trim('" & MyChamp & "'))  LIKE '" & Trim(Rep) & "'"

PS:
Rep est purement String >> "Pièces détachées
Pas forcément et pas évident car il peut tout aussi bien s' agir
d' un Identifiant de type autre que String...

<hr />® l l i n g , l' agité du bocal : 
   Etre une heure, une heure seulement..Rien qu' une heure,
   Vert, vert, vert et beau à la foooooooooooooooooooooooois. 
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Bonjour à tous,

Bon je n'aie pas pu essayer hier soir, car j'ai eu un petit souçi hier soir...

J'ai essayé et cela ne fonctionne pô ! Dés qu'il y a une espace il ne le trouve pas, voici ci-dessous complet de ma function, si vous pouvez m'aidé, merci d'avance...
Je continue aussi de mon côté à chercher, bien sur...

Private Function DeleteItem(MyTable As String, MyChamp As String, MyCombo As ComboBox)


    ' Variable définition texte
     Dim Msg As String


    ' On verifie les droits utilsateur
     If Not Var_Droits >= 3 Then
    
        ' Définition du text
         Msg = "Vous n'avez pas les droits nécessaire pour" & vbCrLf & _
               "effecuter cette action " & Var_Nom & " " & Var_Prénom & "." & vbCrLf & vbCrLf
             
        ' Affichage
         MessageBox Me.hwnd, Msg, "Information utilisateur", vbExclamation Or vbOKOnly
       
        ' On sort
         Exit Function
     End If


   
    ' Variable résultat boite de saisie(InputBox)
     Dim Rep As String
    
     Rep = StrConv(InputBox("Saisissez la société à supprimer..", "Supprimer une société dans base"), vbProperCase)
      
       ' Appui sur Annuler et ok sans aucune saisie       If Rep vbNullString And StrPtr(Rep) <> 0 Or Rep vbNullString And StrPtr(Rep) = 0 Then
          Exit Function
       End If
      
      ' Vérifie dans le combo si la société existe
       Dim Boucle As Integer, bFound As Boolean
       For Boucle = 0 To MyCombo.ListCount - 1           If Rep MyCombo.List(Boucle) Then bFound True: Exit For
       Next Boucle
   
       If bFound Then
          ' Préparation de la requête           Sql "DELETE FROM  " & MyTable & " WHERE  " & MyChamp & "  '" & Rep & "'"


          ' Lancement de la requête & mise à jour combo
           If Execute_Sql Then
              Msg = "Supprésion de : " & Rep & " réussie"
              MessageBox Me.hwnd, Msg, "Information utilisateur", vbInformation Or vbOKOnly
             
              ' On fait la mise à jour combo
              ' par rapport au choix de l'utilisateur
               Select Case MyTable
              
               Case "Société"
                    ChargeCombo ("Société"), Cmb_options(0), MnuSuppSoc
                   
               Case "Désignation"
                    ChargeCombo ("Désignation"), Cmb_options(1), MnuSuppDés
              
               Case "Transporteur"
                    ChargeCombo ("Transporteur"), Cmb_options(2), MnuSuppTra
              
               Case "délai"
                    ChargeCombo ("Délai"), Cmb_options(3), MnuSuppDél
              
               End Select
              
              ' On sort
               Exit Function
             
           Else
              Msg = "Une erreur est survenue pendant la tentative de suppression." & vbCrLf & _
                    "Suppression non effectuée !" & vbCrLf & vbCrLf
           End If
       Else
              Msg = "Interruption de la suppression." & vbCrLf & _
                    "Il se peut que la " & MyTable & " n'existe plus dans la base." & vbCrLf & vbCrLf
    End If
   
    ' Affichage message
    If LenB(Msg) Then MessageBox Me.hwnd, Msg, "Information utilisateur", vbExclamation Or vbOKOnly

End Function


A+
Exploreur

 Linux a un noyau, Windows un pépin


 
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Salut,

pour ma part, je te proposerais de remplacer le  = par 2 like. Un pour le "pieces" et l'autre pour "détachés" avec un opérateur AND.

Il est aussi possible de remplacer la clause WHERE par une clause GROUP BY et HAVING.
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Je viens de m'appercevoir d'un truc, c'est que déjà dans la boucle For..Next..il ne le trouve pas, donc ce n'est pas la requête...alors j'ai essayé avec un Trim, c'est pareil...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

bon je pense avoir trouvé...Je reviens vers vous pour vous le dire aprés mes essais....C'est encore un truc tout " Bip"....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Ne vous embêtez plus à chercher, j'ai trouver le problème qui est vraiment " Bip"....

J'ose même pas le dire tellement c'est bête..

C'est mon VbProperCase qui m'embêter...le vilain...

Merci à tous de votre participation..

A bientôt..

A+
Exploreur

 Linux a un noyau, Windows un pépin