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 :

[AC-2016] Soucis sous Access 2016


Sujet :

Access

  1. #1
    Candidat au Club
    Femme Profil pro
    Manager
    Inscrit en
    juin 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Manager
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : juin 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut [AC-2016] Soucis sous Access 2016
    Bonjour,

    En général avec du temps je trouve toujours ce que je cherche. Mais voilà ça fait maintenant plus de 24 heures que je tourne en rond, sans trouver de solution, donc je m'en remet à vous.

    Mon soucis est le suivant, mes fonctions/procédure vba même les plus simples ne fonctionne pas. J'ai copié/collé des exemples du net et mêmes des exemples du F1 et au nom de variable prêt mais rien n'y fait.

    Ce qui est bizarre aussi, c'est qu'il ne trouve jamais les "sub" mais uniquement les "function".

    Voilà deux exemples:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function AfficherMessage(strMessage As String)
      MsgBox strMessage
    End Function
    ici il m'affiche le message correctement et ensuite il me met un message d'erreur :
    Visual Basic ne peut pas convertir le type de données d'une arguments entrés.
    Et je doit arrêter la macro manuellement

    Et pour le deuxième j'ai recopié un exemple trouvé sur le net, il m'affiche le message de fin correctement mais la fonction ne fait rien d'autre ... (j'ai juste retiré les me. devant certaines variables sinon la fonction plantait et j'ai remplacer le sub par function pour les mêmes raisons

    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
    Function btnOK_Click()
        ' Quelques variables
        Dim rst As DAO.Recordset
        Dim lngNum As Long
      '  Dim IngUsage As Long
     
     
        ' Ouvrir la table en lecture/écriture
        Set rst = CurrentDb.OpenRecordset("Attestations", dbOpenDynaset)
     
        ' Boucler sur le nombre d'attestations demandées
        For lngNum = 0 To txtNombreEnregistrements - 1
     
            ' Créer un enregistrement dans la table
            rst.AddNew
     
            ' Alimenter les champs
            rst("Numéro Attestation") = txtNumeroDepart + lngNum
            rst("Date Attestation") = txtDateAttestation
            rst("Usage") = txtUsage
            rst("Motif") = txtMotif
     
            ' Valider
            rst.Update
     
        Next
     
        rst.Close
        Set rst = Nothing
        MsgBox "Opération terminée !", vbInformation
    End Function
    Enfin voilà, je suis une débutante en VBA donc c'est surement moi qui me trompe à un moment mais je ne vois vraiment pas où... et je commence sérieusement à désespérer... (PS: les bibliothèques sont belle et bien intégré)

    Merci d'avance pour votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    rédacteur/modérateur
    Inscrit en
    avril 2005
    Messages
    11 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : rédacteur/modérateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2005
    Messages : 11 079
    Points : 22 426
    Points
    22 426
    Par défaut
    Bonjour,

    Quelle version de 2016 as-tu ?

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Candidat au Club
    Femme Profil pro
    Manager
    Inscrit en
    juin 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Manager
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : juin 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonjour Loufab,

    Access 2016 Preview
    (Office professionnel 2016 version : 16.0.4201.1006)

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    rédacteur/modérateur
    Inscrit en
    avril 2005
    Messages
    11 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : rédacteur/modérateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2005
    Messages : 11 079
    Points : 22 426
    Points
    22 426
    Par défaut
    J'ai la même version et aucun problème.

    Ce qui est étrange c'est le message que tu obtiens pour le premier code. Le code est correct pourtant. Comment fais-tu pour l'exécuter ?

    Concernant le 2ème, je ne comprend pas l'objet de ce code.
    Cependant, txtNombreEnregistrements n'est pas valorisée, donc probablement à 0. Il ne rentre pas dans la boucle For.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Candidat au Club
    Femme Profil pro
    Manager
    Inscrit en
    juin 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Manager
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : juin 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Le premier code c'est bon je sais pas comment j'ai fait pour passer a coté tant de fois, mais c'est moi qui ai fait une boulet quand j'ai crée la macro je sais pas comment j'ai pu passer à coté tant de fois >< désolé

    Pour le 2e code, pour tester ton exemple j'ai rajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim i As Integer 
    i = 4
    Et remplacer la boucle par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For lngNum = 0 To i - 1
    mais là le code ne se lance plus il bug sur
    Alors qu'avant il m'affichait le message de fin avant de me mettre un message d'erreur, je ne comprend plus :/

    Et je lance ce code avec une macro qui fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ExécuterCode
      Nom de la fonction : btnOK_click()

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    rédacteur/modérateur
    Inscrit en
    avril 2005
    Messages
    11 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : rédacteur/modérateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2005
    Messages : 11 079
    Points : 22 426
    Points
    22 426
    Par défaut
    Merci d'être extrêmement précise !

    Message d'erreur ?
    Mauvais comportement ?

    La programmation est une science exacte.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Candidat au Club
    Femme Profil pro
    Manager
    Inscrit en
    juin 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Manager
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : juin 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Oui tu as raison Loufab :p

    Message d'erreur :

    Erreur d'exécution '3022' :

    Modifications non effectuées : risque de doublons dans champs index,
    clé principale ou relation interdisant les doublons. Modifiez les données
    des champs contenant les doublons, enlevez ou redéfinissez l'index
    pour permrettre les doublons et recommencez
    le débogage pointe sur : rst.Update

    et les erreurs sont :
    arguments : btnOK_Clik()
    N° erreur : 2001

    Et je n'ai ni clef primaine, ni numéro automatique dans ma table :/, donc pas d'index vu que mon objectif c'est d'utilisé cette fonction pour changer toutes les données de toutes les enregistrements si jamais mes constantes devais changer (par exemple: si le temps pour scanner un article passe de 4 à 5 secondes)

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    rédacteur/modérateur
    Inscrit en
    avril 2005
    Messages
    11 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : rédacteur/modérateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2005
    Messages : 11 079
    Points : 22 426
    Points
    22 426
    Par défaut
    Pour les traitements de masse sur des données on utilise généralement une requête. Mais bon ce n'est pas interdit de procéder de la sorte.

    Sinon pour ton problème, peux-tu poster un fichier avec juste la table même vide ?
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Candidat au Club
    Femme Profil pro
    Manager
    Inscrit en
    juin 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Manager
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : juin 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    J'ai écouté ton conseil et j'ai recommencé dans une requête et ça m'enlève le message d'erreur et j'ai a nouveau mon message "Opération terminé" qui s'affiche, j'ai pas compris ce qui change mais tant que ca marche je suis contente merci ^^.
    Mais encore une fois le fonction ne marche pas, car il crée 4 nouveaux enregistrements il leurs donnent les numéros 0-1-2-3 mais tout les autres champs sont vide. Donc on dirais que la fonctionne donne juste la valeur de i mais ne récupéré aucune des informations de mon formulaire :/. Et access ne reconnais toujours pas les procédures sub :/
    Erreur : 2425

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    rédacteur/modérateur
    Inscrit en
    avril 2005
    Messages
    11 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : rédacteur/modérateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2005
    Messages : 11 079
    Points : 22 426
    Points
    22 426
    Par défaut
    Voici mon conseil :

    1) tu ouvres ton formulaire en mode création
    2) tu sélectionnes le bouton depuis lequel tu lances la function
    3) dans les propriétés sur choisi l'évènement Sur Clic.
    4) tu cliques sur le bouton ... situé à droite de la zone de texte.
    5) une fenêtre s'ouvre, tu sélectionnes Générateur de Code, tu cliques sur Ok
    6) la fenêtre de code VBA s'ouvre.
    7) entre les 2 lignes Sub et End Sub tu colles les lignes de ta procédure à l'exception des lignes Function et End Function
    donc ceci (avec tes modifs) :
    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
        ' Quelques variables
        Dim rst As DAO.Recordset
        Dim lngNum As Long
      '  Dim IngUsage As Long
     
     
        ' Ouvrir la table en lecture/écriture
        Set rst = CurrentDb.OpenRecordset("Attestations", dbOpenDynaset)
     
        ' Boucler sur le nombre d'attestations demandées
        For lngNum = 0 To txtNombreEnregistrements - 1
     
            ' Créer un enregistrement dans la table
            rst.AddNew
     
            ' Alimenter les champs
            rst("Numéro Attestation") = txtNumeroDepart + lngNum
            rst("Date Attestation") = txtDateAttestation
            rst("Usage") = txtUsage
            rst("Motif") = txtMotif
     
            ' Valider
            rst.Update
     
        Next
     
        rst.Close
        Set rst = Nothing
        MsgBox "Opération terminée !", vbInformation
    8) Devant tous les noms de contrôle (txtNumeroDepart, TxtDate...) tu rajoutes

    Là ça va fonctionner.

    si tu utilises du VBA fais tout en VBA, ne mélange pas Appel macro de code VBA, c'est totalement inutile.

    Les macros c'est pour les projet ADP et les macros spécifiques (autoexec, autokeys).
    Pour VBA :
    Le code spécifique à un formulaire ou un état doit être contenu dans le module de l'état ou du formulaire.
    Le code générique (fonctions...) ou général (démarrage) doit être placé dans les modules standard.
    Pour l'instant ne tente pas les modules de classe standard c'est un peu chaud pour un débutant.


    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  11. #11
    Candidat au Club
    Femme Profil pro
    Manager
    Inscrit en
    juin 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Manager
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : juin 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Super ça marche ! Merci beaucoup Loufab .

    C'est vrai que cette base de donnée c'est un gros morceau pour moi mais si j'arrive au bout ca m'aidera beaucoup dans mon boulot.

    Encore merci ^_^

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

Discussions similaires

  1. Update sous Access
    Par Sk8cravis dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/04/2009, 15h29
  2. Réponses: 2
    Dernier message: 04/06/2004, 12h11
  3. mise a jours des données sous access
    Par puyopuyo dans le forum ASP
    Réponses: 4
    Dernier message: 25/05/2004, 13h46
  4. QUESTION SUR AVG, Sous Access
    Par sylvaine dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/10/2003, 14h51
  5. [Optimisation] Rushmore sous Access
    Par P'tit Jean dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 02/07/2003, 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