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 :

Question d'un débutant sur Access


Sujet :

Access

  1. #1
    Membre habitué
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Septembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 103
    Points : 151
    Points
    151
    Par défaut Question d'un débutant sur Access
    Voilà,
    un petit problème avec mon cher access chéri
    une petite présentation rapide du problème :
    on a un petit formulaire grâce auquel on désire mettre à jour une table,
    voilà le code utilisé :

    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
    Option Compare Database
    --------------------------------------------------
    Private Sub Commande8_Click()
    On Error GoTo Err_Commande8_Click
     
    Dim nomb_prd As Integer
    Dim quant As Integer
    Dim total As Integer
     
    quant = CInt(quantiter.Value)
    nomb_prd = CInt(nombreprod.Value)
    total = CInt(quant + nomb_prd)
    'MsgBox (total)
        'DoCmd.RunSQL "UPDATE produit SET nombreprod = ' " & total & " ' WHERE
    id_produit='" & id_produits & "';"
        DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
     
    Exit_Commande8_Click:
        Exit Sub
    Et l'erreur renvoyé est :
    Utilisation incorrect de NULL

    franchement on ne trouve pas d'ou cela vient, on aimerais bien passer au PHP mais bon ce cher ACCESS nous est imposé par nos professeurs .....

    Merci d'avance pour votre aide eventuelle
    Hervé
    -------

  2. #2
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Elle aparait à quelle ligne ton erreur? Est ce que tes deux champs sont rempli quand tu clique sur le bouton?
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  3. #3
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    bjr,

    mets des balises de codes SVP c'est illisibles (entre les guillemets et les apostrophes on ne voit rien)

    si tes champs ne sont pas renseignés ils ont une valeur Null
    et il n'est pas possible d'utiliser Null pour faire de telles conversions et calculs
    --> Utilise la fonction Nz

    sinon le Docmd.DoMenuItem il sert à quoi? Il y a peut-être une commande directe en VBA, il vaut mieux éviter d'utiliser les commandes par menu en VBA.

    PS : évite de dénigrer Access dans tes messages, ça ne donne pas envie de répondre...

  4. #4
    Membre habitué
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Septembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 103
    Points : 151
    Points
    151
    Par défaut
    voilà justement le problème c'est que aucune ligne n'est indiquée lors de l'erreur ...
    Sinon oui tout les champs sont complétés comme le montre le screen-shot ci-dessous

    http://i73.imagethrust.com/i/470121/erreur.jpg

    sinon le Docmd.DoMenuItem il sert à quoi? Il y a peut-être une commande directe en VBA, il vaut mieux éviter d'utiliser les commandes par menu en VBA.
    Oui,
    j'ai fait l'erreur de commencer avec un code auto-généré et de le modifier après, je crois bien que je vais reprendre depuis le début merci pour vos conseils.
    Hervé
    -------

  5. #5
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Essaye de faire afficher tes valeurs et tes variables dans des MsgBox pour voir laquelle vaut Null.
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut
    la balise de code est le # en fin de ligne, là ou il y a les options gras, italique, ect...
    ensuite pour ton pb

    remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    quant = CInt(quantiter.Value)
    nomb_prd = CInt(nombreprod.Value)
    total = CInt(quant + nomb_prd)
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    total = CInt(quantiter.value + nombreprod.Value)
    et si sa te donne la même chose, je pense que sa vient de "nombreprod.Value" après je suis pas expert donc avis au connaisseur
    ou plutôt d'un nom mal écrit, du style quantiter que tu aurais écrit dans les paramètre qunatiter ou un truc comme sa, c le problème si on écrit viet = vite ect... sa arrive et on cherche des heures pour rien vue que c une erreur c**
    règle numéro 12 : toujours s'offrir une entrée charismatique !

  7. #7
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    quantiter c'est normal comme nom de contrôle, ça me semble bizarre "er" à la fin?

    Rajoute Option Explicit en en-tête de module pour forcer la déclaration des variables, il te dira à la compilation si une variable est inconnue (c'est peut-être le cas si tu as écris quantiter au lieu quantite.

  8. #8
    Membre actif
    Avatar de Trini
    Homme Profil pro
    Dresseur de puce
    Inscrit en
    Juillet 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dresseur de puce

    Informations forums :
    Inscription : Juillet 2005
    Messages : 189
    Points : 264
    Points
    264
    Par défaut
    Bonjour,

    Moi je verrai plutôt NZ() avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    quant = Nz(quantiter)
    nomb_prd = Nz(nombreprod)
    total = quant + nomb_prd
    Cint() ne convertit pas une valeur/expression nulle.

    Salut,

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 49
    Points : 60
    Points
    60
    Par défaut Déterminer la ligne de l'erreur
    Pour pouvoir voir ou le programme plante, il faut supprimer la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    On Error GoTo Err_Commande8_Click
    de ton code.

    A partir de ce moment, toute erreur provoquera l'affichage d'un message d'avertissement et vous aurez la possibilité cliquer sur le bouton "Débogage" qui va vous positionner le curseur sur la ligne incriminée.

    D'une manière générale, je ne suis pas trop pour que l'on mette un "on error goto" en début de programme ... justement parceque cela maque toutes les erreur et limite les possibilités de diagnostic.

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

Discussions similaires

  1. [MVVM]Questions d'un débutant sur les views et view-models
    Par Takumi dans le forum Windows Presentation Foundation
    Réponses: 45
    Dernier message: 26/08/2010, 09h30
  2. Réponses: 4
    Dernier message: 19/07/2010, 11h24
  3. question d'un débutant sur la gestion des erreurs en VBA
    Par David1259 dans le forum VBA Access
    Réponses: 1
    Dernier message: 03/01/2009, 12h43
  4. Questions d'un débutant sur mysql
    Par laloupiote dans le forum Débuter
    Réponses: 1
    Dernier message: 27/03/2007, 20h16

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