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

VBA Access Discussion :

Problème de déclaration de variable et d'Insert into avec valeur null


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 302
    Points : 185
    Points
    185
    Par défaut Problème de déclaration de variable et d'Insert into avec valeur null
    Bonjour,

    Je rencontre 2 problèmes dans mon code.
    J'ai un formulaire ou l'on saisie des infos sur un projet puis lorsqu'on clic sur le bouton un fenêtre parcourir s'ouvre pour chercher le fichier excel nécessaire à l'importation des données.
    Jusque ici tout va bien.

    Dans se fichier excel j'ai bcp de colonne (30 environ) dont les données vont s'enregistrer dans plusieurs table.

    L'une de mes tables ("DATA") reçoit 6 valeurs:
    Unite, PU, Qte, peraleas, Remarque et Offreur.(le num auto s'enregistre automatiquement).

    Mon premier problème viens de la variable qui reçoit la valeur pour le champs Peraleas (qui est réel double en pourcentage).

    La variable s'appel "SAV".
    Lorsque je l'a déclare en double ca ne marche pas alors que lorsque je ne l'a déclare pas ca marche.
    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SAV = xlApp.Workbooks(strFilename).sheets("Feuil1").Cells(i, "Z")
    SAV = Replace(SAV, ",", ".")
    Je suis obligé de transformer les virgules d'excel en point pour que ca enregistre dans access.

    Lorsque "SAV" est déclaré en double j'ai le message d'erreur imcompatibilité de type alors que lorsque je ne la déclare pas ca marche.
    Comment dois-je déclarer "SAV"?

    Mon second problème viens de mon INSERT INTO.
    SI mes variables "RQ" ou "Offre" (respectivement pour les champs "Remarque" et "Offreur") sont null (càd qui ne sont pas renseigné dans Excel) ca ne s'enregistre pas alors que pour ses champs le null n'est pas interdit dans ma table.
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sSQL = "INSERT INTO [DATA] ([Unite], [PU], [Qte],[Peraleas],[Remarque],[Offreur]) VALUES ('" & unite & "'," & Pu & "," & Qte & "," & SAV & ",'" & RQ & "','" & Offre & "')"
    DoCmd.RunSQL (sSQL)
    Pouvez vous m'aider pour m'expliquer comment je peux enregistrer dans la table même si certain champs sont null.

    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 302
    Points : 185
    Points
    185
    Par défaut
    Bon j'ai trouvé la solution pour mon deuxième problème.
    Ce n'est pas la valeur null qu'il faut autoriser mais la chaine vide qu'il faut autoriser.

    Reste mon premier problème:
    Pourquoi lorsque je déclare SAV en double ca ne marche pas?

Discussions similaires

  1. Insert into avec valeur fixe et select
    Par Isalite dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 15/11/2013, 17h06
  2. INSERT INTO et valeurs Null
    Par Sefrou dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 12/11/2009, 13h36
  3. [Configuration] Problème de déclaration de variable en php5
    Par domray dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 11/04/2007, 01h22
  4. INSERT INTO avec valeurs optionnelles
    Par Terminator dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/02/2007, 15h24
  5. Réponses: 8
    Dernier message: 03/11/2006, 15h55

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