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

Access Discussion :

Y a-t-il des différences entre le langage VBA Français et la langage VBA Anglais (Office Access 2016)


Sujet :

Access

  1. #1
    Membre à l'essai Avatar de Neo3032
    Homme Profil pro
    Access
    Inscrit en
    Octobre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Access
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2018
    Messages : 19
    Points : 12
    Points
    12
    Par défaut Y a-t-il des différences entre le langage VBA Français et la langage VBA Anglais (Office Access 2016)
    Bonjour a tous
    Merci d'avance
    Mon problème et comme suite , j'ai recoupé une application totalement en Français dans un office Access Anglais
    toutes marche Bien ( les Table ; Les Formulaires ........?) mais quand j'ai recoupé les code Vba j'ai obtiens des erreur
    parme les codes comme suivant :

    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
    Private Sub liste_clients_Change()
    Dim ligne As Recordset: Dim base As Database
    
    Set base = Application.CurrentDb
    Set ligne = base.OpenRecordset('SELECT * FROM Clients WHERE N°_client=' & liste_clients.Value, dbOpenDynaset)
    
    ligne.MoveFirst
    n_client.Value = liste_clients.Value
    civilite.Value = ligne.Fields('civilite_client').Value
    nom_client.Value = ligne.Fields('nom_client').Value
    prenom_client.Value = ligne.Fields('prenom_client').Value
    
    ligne.Close
    base.Close
    Set ligne = Nothing
    Set base = Nothing
    End Sub
    =======
    et le 2° 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
    Private Sub creer_client_Click()
    Dim base As Database: Dim ligne As Recordset
    Dim nb_clients As Byte: Dim requete As String
    
    If (civilite.Value <> '' And nom_client.Value <> '' And prenom_client.Value <> '') Then
    Set base = Application.CurrentDb
    Set ligne = base.OpenRecordset('SELECT COUNT(N°_client) AS nb_client FROM Clients WHERE nom_client='' & nom_client.Value & '' AND prenom_client='' & prenom_client & ''', dbOpenDynaset)
    
    ligne.MoveFirst
    nb_clients = ligne.Fields('nb_client').Value
    If (Int(nb_clients > 0)) Then
    MsgBox ('Le client existe déjà, il ne peut donc être créé une deuxième fois')
    Else
    requete = 'INSERT INTO Clients (civilite_client,nom_client,prenom_client) VALUES ('' & civilite.Value & '','' & nom_client.Value & '','' & prenom_client.Value &'')'
    base.Execute requete
    
    MsgBox 'Le client a été créé avec succès'
    DoCmd.Requery
    liste_clients = liste_clients.ItemData(liste_clients.ListCount - 1)
    n_client.Value = liste_clients.Value
    
    ligne.Close
    base.Close
    Set ligne = Nothing
    Set base = Nothing
    End If
    
    Else
    MsgBox 'Pour créer un nouveau client, toutes les informations des champs doivent être renseignées'
    End If
    End Sub
    ======
    j'en sais pas s'il juste de modification de point ou des , ou d'autre chose
    Merci pour votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 323
    Points : 23 758
    Points
    23 758
    Par défaut
    Bonjour.

    Dans VBA, le délimiteur de texte est OBLIGATOIREMENT le guillemet (").

    Ici ton code corrigé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set ligne = base.OpenRecordset("SELECT * FROM Clients WHERE N°_client=" & liste_clients.Value, dbOpenDynaset)
    Dans SQL tu peux utiliser au choix le guillemet (") ou l'apostrophe (').
    Perso, je préfère le guillemet qui est moins fréquent que l'apostrophe en français.
    Attention, si tu as besoin d'un guillemet dans une chaîne en VBA, il faut le doubler.

    Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim critereTexte as string
    dim variableTexte as string
     
    critereTexte="[ChampTexte]=""" & VariableTexte & """"
    en passant pour rendre ton code plus lisible, indente les "blocs".

    Ça ressemble à cela :

    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
    Private Sub creer_client_Click()
        Dim base As Database: Dim ligne As Recordset
        Dim nb_clients As Byte: Dim requete As String
     
        If (civilite.Value <> "" And nom_client.Value <> "" And prenom_client.Value <> "") Then
                Set base = Application.CurrentDb
                Set ligne = base.OpenRecordset("SELECT COUNT(N°_client) AS nb_client FROM Clients WHERE nom_client=" & nom_client.Value & " AND prenom_client=" & prenom_client & "", dbOpenDynaset)
     
                ligne.MoveFirst
                nb_clients = ligne.Fields('nb_client').Value
                If (Int(nb_clients > 0)) Then
                        MsgBox ('Le client existe déjà, il ne peut donc être créé une deuxième fois')
                    Else
                        requete = "INSERT INTO Clients (civilite_client,nom_client,prenom_client) VALUES (""" & civilite.Value & """, """ & nom_client.Value & """, """ & prenom_client.Value &""")"
                        base.Execute requete
     
                        MsgBox 'Le client a été créé avec succès'
                        DoCmd.Requery
                        liste_clients = liste_clients.ItemData(liste_clients.ListCount - 1)
                        n_client.Value = liste_clients.Value
     
                        ligne.Close
                        base.Close
                        Set ligne = Nothing
                        Set base = Nothing
                End If
     
            Else
                MsgBox 'Pour créer un nouveau client, toutes les informations des champs doivent être renseignées'
        End If
    End Sub
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    bonsoir,
    n'oublie pas également de mettre les guillemets autour du nom des champs dans la propriété Fields du RecordSet et dans les MsgBox:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    nb_clients = ligne.Fields("nb_client").Value
                If (Int(nb_clients > 0)) Then
                        MsgBox ("Le client existe déjà, il ne peut donc être créé une deuxième fois")
    ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  4. #4
    Membre à l'essai Avatar de Neo3032
    Homme Profil pro
    Access
    Inscrit en
    Octobre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Access
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2018
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Bonjour
    Messieurs ;
    Vous avez tout mon respect et mon appréciation merci beaucoup
    Si je ne vous dérangeais pas
    j'ai des problème avec ce 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
    Dim ligne As Recordset: Dim base As Database
     
    Set base = Application.CurrentDb
    Set ligne = base.OpenRecordset('SELECT * FROM Catalogue WHERE code_article='' & ref_produit.Value & ''',dbOpenDynaset)
     
    ligne.MoveFirst
    Qte_stock.Value = ligne.Fields("Quantite").Value
    designation.Value = ligne.Fields("Designation").Value
    prix_unitaire.Value = ligne.Fields("Prix_unitaire_HT").Value
     
    ligne.Close
    base.Close
    Set ligne = Nothing
    Set base = Nothing
     
    qte_commandee.Value = 1
    Merci infirment

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    bonjour,
    on veut bien t'aider mais il faut savoir appliquer ce qu'on te dit de faire :
    Citation Envoyé par marot_r
    Dans VBA, le délimiteur de texte est OBLIGATOIREMENT le guillemet (").

    Attention, si tu as besoin d'un guillemet dans une chaîne en VBA, il faut le doubler.
    cela veut dire un double guillemet " et pas deux simples apostrophes ''
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Membre à l'essai Avatar de Neo3032
    Homme Profil pro
    Access
    Inscrit en
    Octobre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Access
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2018
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Merci Beaucoup
    Monsieur tee_grandbois
    J'ai bien comprendre que mon Problème rien que entre ( 'et ") Ok je revisserais les codes ensuite je vous déclare le résultat .
    merci

Discussions similaires

  1. Moyenne des différences entre 2 dates
    Par mirage28 dans le forum Requêtes
    Réponses: 3
    Dernier message: 05/08/2007, 14h44
  2. [BO XIr2] Tests sur des différences entre dates
    Par Enthau dans le forum Deski
    Réponses: 4
    Dernier message: 27/07/2007, 11h49
  3. Réponses: 17
    Dernier message: 05/07/2007, 15h33
  4. Réponses: 4
    Dernier message: 06/09/2006, 13h53
  5. Mise en évidence des différences entre 2 textes
    Par Dranor dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 19/07/2005, 23h53

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