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 :

Question sur variables & Recordset


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Jordmund
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 181
    Par défaut Question sur variables & Recordset
    Salut,

    J'ai 2 questions. Je code une procédure d'import feuille Excel vers ma base Access.

    1/ J'ai un champ qui peut contenir des valeurs String et Integer. Le problème est que les chaines de caractère passent bien, mais pas les chiffres. En gros, si c'est un Integer ma variable = Vide (si c'est un String ca passe bien).
    J'ai éssayé de faire le test avec l'instruction VarType (si VarType = 0 donc = Integer alors ma variable = Str(ma_valeur)) mais ma variable est tjrs = à vide.

    2/ Savez vous s'il est possible de trier un recordset (déclaré comme plage de valeur) ?

    Merci.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 137
    Par défaut
    Bonjour,

    On ne peut pas mélanger du string et de l'integer dans le même champ. Dans ton cas tu récupère du string, l'integer devient du string. C'est comme ça...

    Utilise l'assistant d'import d'ACCESS et fixe ta colonne en String.

    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
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 137
    Par défaut
    Pour le recordset regarde le tuto sur DAO. tout est dedans.

    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

  4. #4
    Membre confirmé Avatar de Jordmund
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 181
    Par défaut
    Merci pour ta réponse.

    Mais ca ne marche pas même si je déclare ma varialbe en String (donc elle n'est plus de type Variant par défaut).

    Dans ce cas la valeur du recordset est "Vide" (même si la VarType = 8 donc = Integer)

    C'est bizarre tout ca !!!

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 137
    Par défaut
    Je serais curieux de voir ton code...
    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

  6. #6
    Membre confirmé Avatar de Jordmund
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 181
    Par défaut
    Ci joint un bout du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ma_key_1 = rstotpexcel_1("Milestone Key")
    ma_var_type_1 = VarType(rstotpexcel_1("Milestone Key"))
    If (VarType(rstotpexcel_1("Milestone Key")) = 0) Then
      ma_key_1 = Str(rstotpexcel_1("Milestone Key"))
    End If
    ma_key_1 = "vide" donc problème...

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 137
    Par défaut
    Citation Envoyé par Jordmund
    Ci joint un bout du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ma_key_1 = rstotpexcel_1("Milestone Key")
    ma_var_type_1 = VarType(rstotpexcel_1("Milestone Key"))
    If (VarType(rstotpexcel_1("Milestone Key")) = 0) Then
      ma_key_1 = Str(rstotpexcel_1("Milestone Key"))
    End If
    ma_key_1 = "vide" donc problème...
    Je ne pense pas que l'on puisse t'aider avec ce que tu montre. C'est comme si tu voulais que je te donne la version d'un Airbus en me donnant sa couleur... Si tu vois ce que je veux dire.

    Ou est la partie déclarative ? Les assignation de variables ?

    Je ne suis pas extra-lucide...
    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

  8. #8
    Membre confirmé Avatar de Jordmund
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 181
    Par défaut
    Désolé pour l'imprécision Loufab :
    Ma seule déclaration est sur le recordset :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ' Ouvre le recordset Excel pour Key
    Set rstotpexcel_2 = New ADODB.Recordset
     
    rstotpexcel_2.CursorType = adOpenKeyset
    rstotpexcel_2.LockType = adLockOptimistic
    rstotpexcel_2.Open "milestones", cnx_excel, , , adCmdTable
    Les autres variables sont donc de type Variant par défaut.

    Je ne comprend pas que : les Entiers ne soient pas reconnus (problème résolu si je fais :

    => ma_cellule2 = CONCATENER (ma_cellule1; "") dans la feuille source Excel.

    Mais cette "bidouille" sur les données source, (même si elle fonctionne bien sur mes champs KEY (les Identifiants)) ne fonctionne pas sur les champs Date.
    Je ne comprend pas pourquoi les affectations ne marchent pas sur UNE SEULE colonne. J'importe 3 dates, seules 2/3 sont lues par mon recordset (sachant que je n'ai fait aucune déclaration). J'ai changé les formats, exporté le fichier en .txt, mais rien n'y fait...

    Ca t'aide ?

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 137
    Par défaut
    Il faut garder à l'esprit que lors de l'ouverture d'un recordset ACCESS est obligé de faire un choix de type. Dans ton cas tu as du string, de l'integer et apparement des dates, donc du double...

    Excel étant très permissif sur ce type de montage (normal c'est un tableur) ACCESS l'est moins et une fois le recordset ouvert le variant ne peut pas te sortir de cette impasse.

    Regarde ce tuto pour en savoir plus.

    http://cafeine.developpez.com/access/tutoriel/excel/

    Ps : un coup c'est rstotpexcel_2 un coup c'est rstotpexcel_1 ; c'est pas très clair comme code.
    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

  10. #10
    Membre confirmé Avatar de Jordmund
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 181
    Par défaut
    Un coup c'est rstotpexcel_2 et un coup c'est rstotpexcel_2 car j'ai 2 recordsets qui s'imbriquent !

    Ca doit venir de la merci Loufab je vais regarder ton lien

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

Discussions similaires

  1. Question sur Variable debutant.
    Par Pif_Paf_Pouf dans le forum Android
    Réponses: 9
    Dernier message: 17/06/2014, 22h38
  2. Questions sur variables
    Par JCMANSION dans le forum Android
    Réponses: 2
    Dernier message: 17/12/2010, 10h23
  3. [Singleton] question sur variable static
    Par ultimax dans le forum Langage
    Réponses: 6
    Dernier message: 13/01/2010, 11h43
  4. [C#] Question sur variable "protected"
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 11
    Dernier message: 22/06/2006, 15h12
  5. Réponses: 12
    Dernier message: 14/06/2006, 09h50

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