IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Requête SQL : La méthode 'form' de l'objet '_subform' a échoué


Sujet :

VBA Access

  1. #1
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut Requête SQL : La méthode 'form' de l'objet '_subform' a échoué
    Bonjour, je développe actuellement une appli sous access, et j'ai un souci qui est apparu sur un formulaire alors que ça fonctionnait avant, je ne comprends pas ce qu'il me veut...
    j'ai un formulaire principal avec un sous formulaire.
    en entrant certains critères dans le formulaire principal, je génère une chaine qui sera ma requête SQL.
    mais access me plante au moment de l'exécution de la requête...

    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    Private Sub ok_Click()
     
    Dim ReqSql As String
    Dim CRITERES As String
    Dim CountStr As String
    Dim Count As Integer
    Dim CountStrTotal As String
     
    ReqSql = "SELECT * FROM R_Liste_UO "
    CRITERES = ""
     
    If Me.Cadre6.Value = 2 Then
        CRITERES = CRITERES + "WHERE hidden = 0 "
    End If
     
    If Me.Cadre6.Value = 1 Then
        CRITERES = CRITERES + "WHERE hidden = -1 "
    End If
     
    If Me.debut <> "" Then
        If CRITERES <> "" Then
            CRITERES = CRITERES + "AND code like '" + Me.debut + "*' "
        Else
            CRITERES = "WHERE code like '" + Me.debut + "*' "
        End If
    End If
     
    If Me.fin <> "" Then
        If CRITERES <> "" Then
            CRITERES = CRITERES + "AND code like '*" + Me.fin + "' "
        Else
            CRITERES = "WHERE code like '*" + Me.fin + "' "
        End If
    End If
     
    If Me.contient <> "" Then
        If CRITERES <> "" Then
            CRITERES = CRITERES + "AND code like '*" + Me.contient + "*' "
        Else
            CRITERES = "WHERE code like '*" + Me.contient + "*' "
        End If
    End If
     
    If Me.ncontient <> "" Then
        If CRITERES <> "" Then
            CRITERES = CRITERES + "AND code not like '*" + Me.ncontient + "*' "
        Else
            CRITERES = "WHERE code not like '*" + Me.ncontient + "*' "
        End If
    End If
     
    If Me.Lst_BD <> "" Then
        If CRITERES <> "" Then
            CRITERES = CRITERES + "AND buisnessdivision_id = " + Me.Lst_BD + " "
        Else
            CRITERES = "WHERE buisnessdivision_id = " + Me.Lst_BD + " "
        End If
    End If
     
    If Me.Lst_Produit <> "" Then
        If CRITERES <> "" Then
            CRITERES = CRITERES + "AND product_id = " + Me.Lst_Produit + " "
        Else
            CRITERES = "WHERE product_id = " + Me.Lst_Produit + " "
        End If
    End If
     
    ReqSql = ReqSql + CRITERES
    Me.F_Liste_UO_sf.Form.RecordSource = ReqSql + "ORDER BY code"
    ' c'est ici que ça plante !!!!
    Me.Refresh
     
    Call CompteTaches_cout(ReqSql)
     
    ReqSql = Empty
    CRITERES = Empty
     
    End Sub
    je ne comprends vraiment pas pourquoi il ne fonctionne plus, je n'ai rien changé sur ce form, j'ai juste rajouté des procédures au double-clic dans le sous-formulaire...

  2. #2
    Membre éprouvé Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    842
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Février 2005
    Messages : 842
    Points : 919
    Points
    919
    Par défaut
    Salut,
    rajoutes un debug.print après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReqSql = ReqSql + CRITERES
    ça te permettra de voir si ta requête est correcte

  3. #3
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut
    un debug print ??? c'est quoi ça ?

  4. #4
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut
    ah oui ok. oui oui la requête est bonne.
    c'est un truc de base, un select * from machintruc, donc pas de soucis là dessus

  5. #5
    Membre éprouvé Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    842
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Février 2005
    Messages : 842
    Points : 919
    Points
    919
    Par défaut
    c'est une commande VB qui te permet de visualiser des variables dans la fenêtre d'execution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ReqSql = ReqSql + CRITERES
    Debug.Print ReqSql
    et dans ta fenêtre d'execution tu vas avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM R_Liste_UO WHERE ...etc....

  6. #6
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut
    oui j'ai regardé, pratique le debug.print !
    bon, seul souci, je ne vois pas où est l'erreur, ma requête est juste !

  7. #7
    Membre éprouvé Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    842
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Février 2005
    Messages : 842
    Points : 919
    Points
    919
    Par défaut
    Et quel est ton message d'erreur ?

  8. #8
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut
    mon message d'erreur : La méthode 'form' de l'objet '_subform' a échoué

    bizarrement ça re-fonctionne.....

    je pense que je vais pas chercher à savoir le pourquoi du comment.
    ça s'est magiquement mis à fonctionner alors que je n'ai rien fait.

    en tout cas merci beaucoup, j'aurais au moins appris à me servir d'un debug.print !

    Bonne continuation à toi !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Requête SQL : "La méthode 'Execute' de l'objet '_Connection' a échoué "
    Par Blencastreur dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/05/2012, 13h06
  2. [AC-2003] Requête sql avec méthode DoCmd.Runsql bloqué dans une transaction
    Par rana dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 09/03/2010, 14h20
  3. erreur La méthode 'Range' de l'objet '_Global' a échoué
    Par mahboub dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/11/2006, 21h46
  4. la méthode 'connection' de l'objet '_currentProject' a échoué
    Par floysand dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 28/09/2006, 13h14
  5. [VBA-E]La méthode 'Range' de l'objet '_Global' a échoué
    Par repié dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/02/2006, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo