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 :

Type d'argument Byref incompatible


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 86
    Par défaut Type d'argument Byref incompatible
    Bonjour,

    Au sein d'un Sub, j'appelle une fonction. Tout allait bien jusqu'à ce que je dusse ajouter un nouvel input pour cette fonction, un second DAO.Recorset. Là access me renvoie le message d'erreur "Type d'argument Byref incompatible". Je ne comprends pas pourquoi! Quelqu'un a une idée? Le bout de code suit.

    Merci!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Set rstT_Pays = db.OpenRecordset("SELECT Pays FROM T_Pays ORDER BY Pays")
     
        Do While Not rstT_Pays.EOF
        Set rstTemp = db.OpenRecordset("SELECT * FROM T_Prod_Prog Where T_Prod_Prog.Pays = '" & rstT_Pays.Fields(0).Value & "' ")
        Set rstTemp2 = db.OpenRecordset("SELECT DISTINCT Fourniture FROM T_EBC1 Where T_EBC1.Pays = '" & rstT_Pays.Fields(0).Value & "' ")
            ligne_fin = Bloc(xlSheet, rstTemp, rstTemp2, (ligne_fin), (num_date))
        rstT_Pays.MoveNext
        Loop
    Et la fonction Bloc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Private Function Bloc(xlSheet As Excel.Worksheet, rstTemp As DAO.Recordset, rstTemp2 As DAO.Recordset, ligne_debut As Long, num_date As Long) As Long

  2. #2
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Bonjour,

    Ligne_fin et num_date sont bien définis comme Long ?
    [Access] Les bases du débogage => ici

  3. #3
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 86
    Par défaut
    Oui! Je met le code entier pour faciliter la compréhension..

    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
    71
    72
    73
    74
    75
    76
     
    Private Sub Commande1_Click()
    On Error GoTo Err_Commande1_Click
     
    Dim XlApp As Excel.Application
        Dim xlSheet As Excel.Worksheet
        Dim xlBook As Excel.Workbook
        Dim i As Long, j As Long
        Dim t0 As Long, t1 As Long
        Dim Date_choisie As String
        Dim Chemin As String
        Dim ligne_fin, num_date, res As Long
     
        Dim db As DAO.Database
        Dim rstT_Pays, rstTemp, rstTemp2 As DAO.Recordset
     
       t0 = Timer
     
      'Initialisations
       Set XlApp = CreateObject("Excel.Application")
       Set xlBook = XlApp.Workbooks.Add
     
       Set db = CurrentDb
     
        'Ajouter une feuille de calcul
        Set xlSheet = xlBook.Worksheets.Add
        xlSheet.Activate
     
     
            'Création des blocs de BB
        Date_choisie = Me.Modifiable4
        ligne_fin = 5
        res = 0
     
       Mise_en_forme_haut xlSheet, Date_choisie
     
       'On cherche la date
     
       If Date_choisie = "Date Notification" Then num_date = 11
       If Date_choisie = "Date FAT" Then num_date = 8
        If Date_choisie = "Date SAT" Then num_date = 9
        If Date_choisie = "Date Prévisionnelle" Then num_date = 10
     
        'Boucle de création des blocs
        Set rstT_Pays = db.OpenRecordset("SELECT Pays FROM T_Pays ORDER BY Pays")
     
        Do While Not rstT_Pays.EOF
        Set rstTemp = db.OpenRecordset("SELECT * FROM T_Prod_Prog Where T_Prod_Prog.Pays = '" & rstT_Pays.Fields(0).Value & "' ")
        Set rstTemp2 = db.OpenRecordset("SELECT DISTINCT Fourniture FROM T_Prod_Prog Where T_Prod_Prog.Pays = '" & rstT_Pays.Fields(0).Value & "' ")
            ligne_fin = Bloc(xlSheet, rstTemp, rstTemp2, (ligne_fin), (num_date))
        rstT_Pays.MoveNext
        Loop
     
       ' code de fermeture et libération des objets
     
       Chemin = Application.CurrentProject.Path + "\ Radar " + Date_choisie + ".xls"
       xlBook.SaveAs Chemin
       MsgBox "Un fichier excel a été créé à l'adresse suivante : " & Chemin
           xlBook.WebPagePreview
     
       XlApp.Quit
       Set xlSheet = Nothing
        Set xlBook = Nothing
        Set XlApp = Nothing
     
        t1 = Timer
        Debug.Print i & " enregistrements", Format(t1 - t0, "0") & " secondes"
     
    Exit_Commande1_Click:
        Exit Sub
     
    Err_Commande1_Click:
        MsgBox Err.Description
        Resume Exit_Commande1_Click
     
    End Sub

  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 136
    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 136
    Par défaut
    ligne_fin est un variant...
    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
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    num_date aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim ligne_fin as long
    dim num_date as long
    dim res As Long
    [Access] Les bases du débogage => ici

  6. #6
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 86
    Par défaut
    Pour quelle raison? Ce que me renvoie la fonction "bloc" est un long. Ca m'interesserait de savoir!

    Bon sinon j'ai mis tous ces entiers en variant, ainsi que des parenthèses autour de mes input DAO.Recordset quand j'appelle la fonction Bloc, et la réponse que m'envoie access maintenant c'est "trop peu de paramètres, 1 attendu"... Peut etre que ma requête rstTemp2 est fausse

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

Discussions similaires

  1. [XL-2007] type d'arguments ByRef incompatible
    Par issoram dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 14/04/2019, 19h31
  2. [XL-2010] Erreur de compilation; Type d'argument ByRef incompatible
    Par Toug19 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/05/2015, 16h01
  3. Type d'argument ByRef incompatible
    Par caroto dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 22/09/2013, 13h45
  4. [AC-2007] Type d'argument ByRef incompatible dans un module
    Par KIK83 dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/12/2009, 15h01
  5. [VB]type d'arguments byref incompatibles
    Par kantelise dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 30/04/2006, 08h56

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