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 fonction application.transpose sur Access


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Problème fonction application.transpose sur Access
    Bonjour,

    J'ai une ligne de code qui me pose problème, elle fonctionne sous Excel mais je souhaite l'adapter sur Access, et j'ai un message d'erreur sur <Transpose>, (Membre de méthode ou de données introuvable).

    La ligne de code d'Excel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuille.Range("A1").Resize(UBound(base_fichiers, 2), UBound(base_fichiers, 1)) = Application.Transpose(base_fichiers)

    Le but final de cette macro est de coller les informations des variables dans une table de la base de donnée.



    Mon code Access, tout fonctionne sauf à la fin de la procédure ou je souhaite coller les variables dans les champs d'une table :


    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Private Sub Commande183_Click()
     
    Dim base_fichiers()
     
    Dim oDb As DAO.Database
    Dim oRst As DAO.Recordset
    Dim Rep_Motam As String
     
     
    Set oDb = CurrentDb
    Set oRst = oDb.OpenRecordset("R_Repertoire")
     
    Rep_Motam = oRst![Rep_Motam]
     
    fichier = Dir(Rep_Motam)
     
    i = 1
    While fichier <> ""
    ReDim Preserve base_fichiers(5, i)
     
    If Right(fichier, 9) = "MOTAM.csv" Then
     
    base_fichiers(1, i) = fichier
    ma_date = DateSerial(Left(fichier, 4), Mid(fichier, 5, 2), Mid(fichier, 7, 2))
     
    base_fichiers(2, i) = Format(ma_date, "mm/dd/yyyy")
    base_fichiers(3, i) = Format(ma_date, "ww", vbMonday, vbFirstFullWeek)
     
    base_fichiers(5, i) = Rep_Motam & fichier
     
    'corrige 1ere semaine - de 4 jours
    correction = False
    If Month(ma_date) = 1 And Format(ma_date, "ww", vbMonday, vbFirstFourDays) > 50 Then
     mon_annee_corrigee = Year(ma_date) - 1
     correction = True
    End If
     
    'corrige 1ere semaine + de 4 jours
    If Month(ma_date) = 12 And Format(ma_date, "ww", vbMonday, vbFirstFourDays) < 5 Then
     mon_annee_corrigee = Year(ma_date) + 1
     correction = True
    End If
     
    If correction = False Then mon_annee_corrigee = Year(ma_date)
     
    base_fichiers(4, i) = mon_annee_corrigee
     
    i = i + 1
    End If
     
    oRst.Close: Set oRst = Nothing
    oDb.Close: Set oDb = Nothing
     
    fichier = Dir
     
    Wend
     
    Set oDb = CurrentDb
    Set oRst = oDb.TableDefs("Liste_Fichiers_Enova").OpenRecordset
     
    While Not oRst.EOF
     oRst.Delete
     oRst.MoveNext
     
     
    feuille.Range("A1").Resize(UBound(base_fichiers, 2), UBound(base_fichiers, 1)) = Application.Transpose(base_fichiers)
     
    Wend
     
    End Sub

  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 009
    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 009
    Points : 24 580
    Points
    24 580
    Par défaut
    Bonjour,

    Sauf automation, les méthodes et propriétés du modèles Excel ne fonctionnent qu'avec Excel.

    "Transpose" est une méthode Excel c'est donc normal qu'elle soit inconnue pour Access.

    Pour écrire des données dans une table il te faut utiliser soit SQL, soit DAO, comme tu le fais déjà dans ton code, soit encore ADO.

    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
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    bonjour

    merci beaucoup pour l'info,

    C'est pas gagné pour moi alors car je galère avec les recordset,

    j'ouvre déjà un recordset sur une requête au début de la procédure pour y relever le chemin du répertoire donc comment déclarer aussi la table en recordset, j'ai du mal à positionner les variables et surtout peur de ne pas les fermer au bon endroit dans le code.

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 009
    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 009
    Points : 24 580
    Points
    24 580
    Par défaut
    L'ajout dans une table via DAO (recordset) se fait selon cette syntaxe.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    dim rstDestination as dao.recordset
    set rstDestination = currentdb.openrecordset("SELECT * from tableDestination;",dbopendynaset)
    ...
     
    rstDestination.addnew
    rstDestination.fields("nomDuChamp1").value = valeurAAjouter1
    rstDestination.fields("nomDuChamp2").value = valeurAAjouter2
    ...
    rstDestination.update
     
    ...
     
    rstDestination.close
    set rstDestination = nothing
    Il y a un excellent tuto sur DAO n'hésite pas à le consulter.
    Sinon le MSDN DAO (site Microsoft) est d'un bon secours.

    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

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour la syntaxe et je vais de ce pas regarder ce tuto alors car mon code n’est que le début de la base que je souhaite développer, je me forme tout seul et je suis partit de 0 mais quel tripe quand ça fonctionne à la fin.

    Je vais devoir travailler ettentiellement en DAO puisque qu’après je vais traiter les données se trouvant dans ces exports mais en triant les lignes, collecte de certaines données qui ne se trouves pas au même ligne suivant l’export csv, c’est du lourd si on peut dire.

    Grand merci pour ton aide.

Discussions similaires

  1. [AC-2016] Problème avec un formulaire sur access
    Par fred delasse dans le forum Access
    Réponses: 1
    Dernier message: 22/06/2017, 10h21
  2. [XL-2003] probleme avec la fonction Application.Transpose()
    Par piewot dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/10/2011, 13h40
  3. Problème d'application interbase sur 3 PC
    Par barketmohamed dans le forum Bases de données
    Réponses: 1
    Dernier message: 04/07/2008, 07h55
  4. Problème de requête paramétrée sur Access
    Par patbeautifulday1 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 17/07/2007, 12h15
  5. Réponses: 2
    Dernier message: 20/08/2004, 17h10

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