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

Requêtes et SQL. Discussion :

Requete VBA et champ memo


Sujet :

Requêtes et SQL.

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Points : 500
    Points
    500
    Par défaut Requete VBA et champ memo
    Bonjour

    Je reprends à zéro le développement de ma vidéothèque et je bute sur une requête et une table contenant un champ mémo !!!

    En effet, je crée une fonction d'importation de fichier texte contenant le résumé du film et il refuse car le texte contient des apostrophes !!

    Que faire pour pouvoir importer mon résumé ??

    Je suis sur que c'est bien ce champ qui bloque car ma requête fonctionne avec tous les autres !!

    Voici le 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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    Private Sub cmdImporter_Click()
    On Error GoTo Err_cmdImporter_Click
     
        'Importe un fichier .FILM téléchargé
        'sur le site MovieCovers.com
     
        Dim MonFilm As FilmMC 'Contient l'enregistrement du fichier à importer
        Dim RepFicFilm As String 'Répertoire contenant les fichiers .FILM
        Dim FicFilm As String  'Contient le nom du fichier choisi par l'utilisateur
        Dim Duree
     
        Dim NumFic As Integer 'Numéro du fichier
        Dim qdf As QueryDef
     
        'On récupère le répertoire contenant les fichiers .FILM dans le fichier ini de l'appli
        RepFicFilm = LitDansFichierIni("Répertoires", "RepFichiersFilm", CurrentProject.Path + "\VideoWin.ini")
     
        While RepFicFilm = ""
            AfficheErreur "Vous devez spécifier le répertoire contenant les fichiers .FILM." + Chr$(10) + "avant de pouvoir importer un film.", "Erreur de saisie"
            AfficheOptions
            RepFicFilm = LitDansFichierIni("Répertoires", "RepFichiersFilm", CurrentProject.Path + "\VideoWin.ini")
        Wend
     
         With ctlDialog
            .DialogTitle = "Sélectionnez un fichier .FILM" 'Titre de la boite
            .Filter = "Fichiers .FILM |*.FILM"
            .FileName = "*.FILM" 'On recherche un fichier d'extension .FILM
            .InitDir = RepFicFilm 'Répertoire par defaut
            .CancelError = False 'Pour ne pas partir en erreur si on click sur annuler
            .ShowOpen
        End With
     
     
        FicFilm = ctlDialog.FileName
     
        If FicFilm <> "*.FILM" Then
     
            'Ouverture du fichier sélectionné par l'utilisateur
            NumFic = FreeFile()
            Open FicFilm For Input As NumFic Len = Len(MonFilm)
     
            'On récupère le contenu du fichier
            Line Input #NumFic, MonFilm.FTitre
            Line Input #NumFic, MonFilm.FRéalisateurs
            Line Input #NumFic, MonFilm.FAnnée
            Line Input #NumFic, MonFilm.FPays
            Line Input #NumFic, MonFilm.FGenres
            Line Input #NumFic, MonFilm.FDurée
            Line Input #NumFic, MonFilm.FActeurs
            Line Input #NumFic, MonFilm.FRésumé
            Line Input #NumFic, MonFilm.FDistributeur
            Line Input #NumFic, MonFilm.FTitreVO
     
            Set db = CurrentDb()
     
           'On vérifie si le film existe
     
            MaRequete = "SELECT * FROM FILM WHERE [Titre Film]=" & Chr(34) & MonFilm.FTitre & Chr(34)
     
            Set rst = db.OpenRecordset(MaRequete, dbOpenDynaset)
     
            'S'il n'existe pas, on l'ajoute
     
            If rst.RecordCount = 0 Then
                Duree = Replace(MonFilm.FDurée, "H", ":")
                'MaRequete = "INSERT INTO FILM ([Titre Film])VALUES(" & "'" & MonFilm.FTitre & "'" & ")"
                CurrentDb.Execute "INSERT INTO FILM ([Titre Film],[Titre VO Film],[Durée Film],[Année Film],[Résumé Film]) VALUES(" & "'" & MonFilm.FTitre & "'" & " ," & "'" & MonFilm.FTitreVO & "'" & " ," & "'" & Duree & "'" & "," & "'" & MonFilm.FAnnée & "'" & "," & "'" & CStr(MonFilm.FRésumé) & "'" & ")"
     
     
     
     
            Else
                'On informe l'utilisateur de l'existence du film
                AfficheErreur "Ce film existe déjà dans la base de données.", "VidéoWin XP"
            End If
     
        Else
            'Si l'utilisateur clique sur annuler
            AfficheErreur "Importation du fichier annulée.", "VidéoWin XP"
        End If
     
     
        Close #NumFic
     
        Set db = Nothing
     
        Exit Sub
     
    Err_cmdImporter_Click:
        Close #NumFic
        MsgBox Err.Description
        Exit Sub
     
    End Sub
    Merci d'avance et toute personne qui m'aidera !!

    @++

    Bestall666

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Double les '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replace(CStr(MonFilm.FRésumé, "'", "''"))
    [Access] Les bases du débogage => ici

  3. #3
    Membre actif Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Points : 232
    Points
    232
    Par défaut
    Bonjour,

    Utilise la fonction Replace
    Ainsi tu pourra remplacer toutes tes apostrophes par des doubles apostrophes (pour que la requete les accepte...

    [Résumé Film] = Replace([Résumé Film], "'", "''")

    Je crois que la syntaxe est comme ca mais je suis pas sur
    Pense à
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Points : 500
    Points
    500
    Par défaut
    Merci j'avais pas pensé à replace alors que je l'utilise une ligne plus haut

    En tout cas merci beaucoup car votre soluce est parfaite

    Je mets donc le code de la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CurrentDb.Execute "INSERT INTO FILM ([Titre Film],[Titre VO Film],[Durée Film],[Année Film],[Résumé Film])" & _
                                  "VALUES(" & "'" & MonFilm.FTitre & "'" & " ," & _
                                          "'" & MonFilm.FTitreVO & " '" & "," & _
                                          "'" & Replace(MonFilm.FDurée, "H", ":") & "'" & "," & _
                                          "'" & MonFilm.FAnnée & "'" & "," & _
                                          "'" & Replace(MonFilm.FRésumé, "'", "''") & "'" & ")"
    Merci encore

    @++

    Bestall666

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

Discussions similaires

  1. [AC-2003] Problème Requete ACCESS avec un champ memo
    Par pio_killer dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/10/2009, 08h52
  2. [AC-2000] un champ Memo tronqué en VBA
    Par Slici dans le forum VBA Access
    Réponses: 10
    Dernier message: 17/04/2009, 17h03
  3. routine extration donnees en vba sur champ memo
    Par pascalourox dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/04/2008, 15h57
  4. requete champ memo dans access
    Par REGROS dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 17/07/2007, 06h28
  5. Ajout de texte à un champ MEMO en VBA
    Par dany007 dans le forum Access
    Réponses: 3
    Dernier message: 10/02/2007, 17h47

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