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

Macros et VBA Excel Discussion :

Caractère - dans une requête SQL


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 459
    Par défaut Caractère - dans une requête SQL
    Bonjour,

    J’exécute une requête SQL sur un classeur fermé avec la formule suivante:
    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
        Dim SheetName2 As String, texte_SQL2 As String
        Dim Cn2 As ADODB.Connection
        Dim Rst2 As ADODB.Recordset
        'MsgBox NoemieNumber
     
        '--- Nom de la feuille dans le classeur fermé ---
        SheetName2 = "Sorties stock et magasin"
        'MsgBox SheetName2
     
        '--- Connexion ---
        '--- Lorsque HDR=No, cela signifie que la première ligne du fichier Excel n'est pas le nom des champs ---
        '--- Il faut mettre [F1] par exemple pour la colonne A, [F2] pour la colonne B, etc... ---
        Set Cn2 = New ADODB.Connection
        With Cn2
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
            & InformationsFile & ";Extended Properties=""Excel 12.0;HDR=No;"""
            .Open
        End With
     
        '--- Définition la requête ---
        '--- /!\ Attention à ne pas oublier le symbole $ après le nom de la feuille. ---
        texte_SQL2 = "SELECT * FROM [" & SheetName2 & "$] WHERE [F1] = '" & NoemieNumber & "';"
        MsgBox texte_SQL2
        Set Rst2 = New ADODB.Recordset
        Set Rst2 = Cn2.Execute(texte_SQL2)
    .

    J'ai une erreur lors de l’exécution, je n'arrive pas à voir d'où vient l'erreur. Je pensais que cela provenait du nom qui contient un caractère spécial ("-"), mais j'ai renommé l'onglet en toto et j'ai le même problème...


    Nom : 2020-03-27_17h55_52.png
Affichages : 206
Taille : 4,4 Ko


    Merci par avance pour vos retours!!

  2. #2
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 549
    Par défaut
    Bonjour,
    Je pense que l'expression du critaire ça veut dire dans la close where!
    Si [F1] est numérique pas de ' pour encadrer le texte !
    WHERE [F1] = '" & NoemieNumber & "';

  3. #3
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 459
    Par défaut
    Bonjour,

    C'est bien ça, mais du coup si j'intègre chiffre et lettre j'ai une erreur... je souhaite la bonne méthode pour inclure chiffre et lettres si cela est possible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    texte_SQL = "SELECT [F3], [F11], [F12], [F13], [F14] FROM [" & SheetName & "$] WHERE [F1] =  " & NoemieNumber & ";"
    Merci par avance.

  4. #4
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 549
    Par défaut
    bonjour,
    il faut oublier que tu travail sur l'onglet d'un fichier Excel mais sur une table d'une base de données!
    c'est ADO qui fixe par apprentissage!

    si dans les 8 premières ligne tu as majoritairement des dates alors c'est un champ date et toutes autre format passera à la valeur NULL!

    si dans les 8 premières ligne tu as majoritairement du texte {moins de 255 caractères} alors c'est un champ texte et toutes autre format passera à la valeur NULL!

    si dans les 8 premières ligne tu as majoritairement des du texte {255 caractères ou plus} alors c'est un champ Mémo et toutes autre format passera à la valeur NULL!

    si dans les 8 premières ligne tu as majoritairement des integer alors c'est un champ numérique sen virgule et toutes autre format passera à la valeur NULL!

    si dans les 8 premières ligne tu as majoritairement des double alors c'est un champ numérique avec virgule et toutes autre format passera à la valeur NULL!

Discussions similaires

  1. [MySQL] Injecter une chaine de caractère dans une requête SQL
    Par Supernatural dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/02/2019, 12h20
  2. [AC-2010] mettre une condition sur une chaine de caractères dans une requête sql
    Par freeman3869 dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/06/2015, 12h45
  3. Réponses: 3
    Dernier message: 10/05/2014, 17h19
  4. Réponses: 8
    Dernier message: 27/08/2012, 17h05
  5. limitation de caractére dans une requête SQL sous Acces
    Par amka dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 18/08/2006, 16h15

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